{"version":3,"file":"main.js","mappings":"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S;AACH;AACP;AACL;AACoB;AACV;AACA;AACE;AACA;AACV;AACc;AACX;AACH;AACU;AACT;AACO;AACK;AACD;AACA;AACf;AACU;AACG;AACV;AACQ;AACP;AACU;AACG;AACI;AACV;AACG;AACP;AACW;AACG;AACR;AACA;AACU;AACG;AACV;AACC;AACG;AACK;AACG;AAChB;AACF;AACG;AACI;AACV;AACK;AACG;AACT;AACG;AACC;AACX;AACc;AACd;AACK;AACG;AACN;AACE;AACM;AACG;AACK;AACM;AAClB;AACW;AACR;AACY;AACG;AACf;AACL;AACQ;AACd;AACM;AACH;AACG;AACM;AACA;AACD;AACK;AACH;AACH;AACR;AACS;AACL;AACN;AACG;AACY;AACX;AACM;AACN;AACA;AACK;AACD;AACO;AACM;AACP;AACO;AACR;AACG;AACL;AACP;AACG;AACG;AACU;AACR;AACG;AACR;AACiB;AAChB;AACe;AACZ;AACU;AACL;AACS;AACH;AACG;AACX;;;;;;;;;;;;;ACrHrC;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;AEVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AGVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;AEVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;AEVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;AEVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;AEVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AIVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AGVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;;;;;;;;;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K;AACD;AACJ;AACF;AACR;AACG;AACH;AACU;AACG;AACD;AACK;AACO;AAChB;AACK;AACD;AACK;AACL;AACf;AACU;AACG;AACV;AACQ;AACP;AACU;AACG;AACI;AACN;AACJ;AACG;AACP;AACW;AACG;AACR;AACA;AACU;AACG;AACV;AACC;AACG;AACK;AACG;AAChB;AACA;AACA;AACF;AACG;AACI;AACV;AACK;AACG;AACP;AACA;AACF;AACG;AACC;AACH;AACR;AACc;AACd;AACK;AACG;AACN;AACE;AACM;AACG;AACF;AACO;AACM;AACP;AACR;AACA;AACK;AACV;AACU;AACF;AACd;AACM;AACG;AACN;AACG;AACM;AACH;AACG;AACG;AACJ;AACG;AACE;AACH;AACH;AACR;AACS;AACK;AACV;AACN;AACG;AACY;AACX;AACM;AACN;AACA;AACK;AACK;AACE;AACR;AACa;AACK;AACZ;AACO;AACV;AACE;AACG;AACL;AACP;AACG;AACG;AACU;AACR;AACG;AACR;AACK;AACY;AAChB;AACe;AACZ;AACU;AACL;AACS;AACH;AACG;AACX;;;;;;;;;;;;;ACxJrC;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;AEVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;AAUI,IAAU,iBAAiB,CAWjC;AAXD,WAAiB,iBAAiB;IAEjB,8BAAY,GAAG;QACxB,WAAW,EAAE,aAA6B;QAC1C,YAAY,EAAE,cAA8B;QAC5C,YAAY,EAAE,cAA8B;QAC5C,OAAO,EAAE,SAAyB;QAClC,OAAO,EAAE,SAAyB;QAClC,KAAK,EAAE,OAAuB;QAC9B,IAAI,EAAE,MAAsB;KAC/B,CAAC;AACN,CAAC,EAXgB,iBAAiB,KAAjB,iBAAiB,QAWjC;;;;;;;;;;;;;AC/BD;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;AEVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;AEVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;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;AACL;AACY;AAChB;AACY;AACV;AACS;AACR;AACU;AACD;AACH;AACI;AACE;AACJ;AACI;AACV;AACD;AACI;AACL;AACI;AACI;AACd;AACe;AACE;AACA;AACE;AACb;AACG;AACC;AACD;AACG;AACA;AACF;AACU;AACZ;AACH;AACC;AACN;AACU;AACE;AACC;AACV;AACa;AACN;AACI;AACb;AACQ;AACG;AACG;AACP;AACF;AACL;AACQ;AACP;AACc;AACT;AACG;AACI;AACT;AACI;AACA;AACM;AACb;AACC;AACK;AACG;AACL;AACF;AACM;AACJ;AACI;AACA;AACD;AACK;AACY;AACM;AACf;AACO;AAChB;AACI;AACP;AACI;AACH;AACG;AACI;AACA;AACH;AACC;AACD;AACW;AACI;AAChB;AACE;AACJ;AACF;AACS;AACV;AACM;AACN;AACM;AACD;AACF;AACA;AACA;AACK;AACC;AACS;AACf;AACG;AACF;AACK;AACV;AACW;AACN;AACD;AACL;AACU;AACN;AACc;AACP;AACG;AACL;AACC;AACI;AACF;AACN;AACD;AACH;AACH;AACK;AACD;AACP;AACI;AACC;AACU;AACN;AACW;AACH;AACd;AACO;AACE;AACV;AAC2B;AACR;AACX;AACK;AACV;AACO;AACX;AACQ;AACF;AACO;AACR;AACU;AACN;AACQ;AACR;AACT;AACY;AACC;AACH;AACH;AACL;AACA;AACK;AACJ;AACK;AACL;AACM;AACO;AACW;AACrB;AACgB;AACT;AACE;AACb;AACiB;AACN;AACG;AACH;AACX;AACF;AACG;AACM;AACG;AACQ;AACA;AACK;AACV;AACA;AACK;AACN;AACA;AACK;AACN;AACA;AACK;AACL;AACO;AACP;AACX;AACa;AACK;AACE;AACA;AACC;AACF;AACE;AACG;AACL;AACA;AACF;AACb;AACG;AACR;AACO;AACC;AACU;AACT;AACT;AACG;AACM;AACH;AACM;AACK;AACP;AACV;AACM;AACO;AACZ;AACD;AACK;AACL;AACQ;AACJ;AACM;AACH;AACE;AACL;AA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Ce;AACkB;AACP;AAC6B;AAClC;AACwB;AACxB;AACwB;AAChB;AACgC;AACjC;AAC+B;AAC9C;AACgB;AACX;AACqB;AAC3B;AACe;AACf;AACe;AACf;AACe;AACV;AACoB;AACrB;AACmB;AAChB;AACsB;AACb;AAC+B;AAC7C;AACiB;AACpB;AACc;AACV;AACkB;AACX;AACyB;AACrB;AAC6B;AAC7C;AACa;AACL;AACqB;AACV;AACgC;AAC9C;AACkB;AACV;AAC0B;AACvC;AACa;AACX;AACe;AACd;AACgB;AACR;AACwB;AAC9B;AACkB;AACT;AAC2B;AACjC;AACqB;AAC1B;AACgB;AACf;AACiB;AACb;AACqB;AACf;AAC2B;AACzC;AACa;AACZ;AACc;AACV;AACkB;AACf;AACqB;AACrB;AACqB;AACxB;AACkB;AACrB;AACe;AACd;AACgB;AACD;AAC+B;AACxC;AACsB;AACtB;AACsB;AACzB;AACmB;AACvB;AACe;AACD;AAC6B;AAC5C;AACc;AACH;AACyB;AAC7B;AACqB;AACtB;AACoB;AACvB;AACiB;AACb;AACqB;AACpB;AACsB;AACpB;AACwB;AACrB;AAC2B;AACxC;AACc;AACH;AACyB;AAChC;AACkB;AACpB;AACgB;AAChB;AACgB;AACb;AACmB;AACtB;AACgB;AACnB;AACa;AACN;AACoB;AACzB;AACe;AACb;AACiB;AACpB;AACc;AACF;AAC0B;AAChC;AACoB;AACvB;AACiB;AACT;AACyB;AAClB;AACgC;AACzC;AACuB;AAC5B;AACkB;AACf;AACqB;AACpB;AACsB;AACR;AACoC;AAClF,MAAM,IAAI,GAAG,CAAC,8DAAe,EAAE,oFAA0B,EAAE,0EAAqB,EAAE,0EAAqB,EAAE,0FAA6B,EAAE,wFAA4B,EAAE,0DAAa,EAAE,oEAAkB,EAAE,wDAAY,EAAE,wDAAY,EAAE,yDAAY,EAAE,mEAAiB,EAAE,iEAAgB,EAAE,uEAAmB,EAAE,yFAA4B,EAAE,6DAAc,EAAE,uDAAW,EAAE,+DAAe,EAAE,6EAA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;;;;;;AEV8B;AACG;AACC;AACD;AACT;AACM;AACH;AACU;AACE;AACH;AACI;AACP;AACI;AACJ;AACP;AACL;AACS;AACC;AACD;AACG;AACA;AACF;AACU;AACR;AACH;AACO;AACV;AACQ;AACZ;AACU;AACF;AACP;AACO;AACI;AACF;AACF;AACC;AACE;AACQ;AACP;AACb;AACG;AACS;AACC;AACT;AACI;AACO;AACF;AACD;AACV;AACU;AACN;AACC;AACA;AACA;AACA;AACA;AACA;AACgB;AACV;AACN;AACN;AACU;AACN;AACc;AACP;AACG;AACL;AACC;AACe;AACX;AACF;AACN;AACV;AACI;AACe;AACC;AACZ;AACC;AACR;AACI;AACG;AACK;AACR;AACC;AACJ;AACQ;AACK;AACd;AACiB;AACM;AACf;AACQ;AACI;AACG;AACX;AACJ;AACI;AACN;AACO;AACR;AACU;AACN;AACQ;AACJ;AACJ;AACC;AACI;AACN;AACO;AACG;AACnB;AACO;AACN;AACY;AACF;AACF;AACF;AACG;AACG;AACD;AACE;AACH;AACH;AACD;AACE;AACF;AACI;AACL;AACI;AACT;AACc;AACQ;AACpB;AACD;AACO;AACP;AACA;AACuB;AACb;AACF;AACU;AACI;AACtB;AACY;AACR;AACK;AACI;AACX;AACQ;AACO;AACA;AACJ;AACD;AACL;AACD;AACG;AACU;AACC;AACnB;AACc;AACZ;AACG;AACU;AACL;AACD;AACA;AACH;AACI;AACJ;AACc;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AE3K7C;;;;;;;;;;GAUG;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;ACVH;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AI2BI,IAAU,wBAAwB,CAOxC;AAPD,WAAiB,wBAAwB;IAExB,uCAAc,GAAG;QAC1B,YAAY,EAAE,cAAgC;QAC9C,KAAK,EAAE,OAAyB;QAChC,GAAG,EAAE,KAAuB;KAC/B,CAAC;AACN,CAAC,EAPgB,wBAAwB,KA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AEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kCAAkC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAA4B,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa,GAAG,+DAAwB,CAAC,sDAAW;AACvM,+BAA+B,+DAAwB,GAAG,wDAAwD,8GAA8G,aAAa,wgBAAwgB,sCAAsC,kEAA2B,gIAAgI;AACt7B,QAAQ,6DAAsB;AAC9B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,OAAO,wCAAwC;AAC/C;AACA,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,MAAM,iDAAM,EAAE;AACpB,MAAM,6BAA6B,MAAM,iDAAM,SAAS,sDAAW,IAAI;AACvE;AACA;AACA,eAAe,MAAM,gDAAK,EAAE;AAC5B,cAAc,MAAM,gDAAK,EAAE;AAC3B,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,eAAe,MAAM,gDAAK,EAAE;AAC5B,aAAa,MAAM,gDAAK,EAAE;AAC1B,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,sBAAsB,MAAM,iDAAM,EAAE;AACpC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,oBAAoB,MAAM,iDAAM,EAAE;AAClC,gBAAgB,MAAM,iDAAM,EAAE;AAC9B,mBAAmB,MAAM,iDAAM,EAAE;AACjC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,aAAa,MAAM,iDAAM,EAAE;AAC3B,yBAAyB,MAAM,iDAAM,EAAE;AACvC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,oBAAoB,MAAM,iDAAM,EAAE;AAClC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,iCAAiC,yEAA8B;AAC/D;AACA,+BAA+B,iEAAsB;AACrD,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI;AACtF,sBAAsB,iDAAM;AAC5B,uBAAuB,sDAAW;AAClC,aAAa,GAAG,IAAI,IAAI;AACxB,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAA+B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACjK,kCAAkC,+DAAwB,GAAG,iFAAiF;AAC9I;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,UAAU;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,oCAAoC,+CAA+C,4EAA4E,mEAA4B,mDAAmD;AACnS,uCAAuC,+DAAwB,GAAG,2GAA2G,wEAAiC,GAAG;AACjN,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,2BAA2B,iDAAe;AAC1C,2BAA2B,iDAAe;AAC1C,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa;AAC5B,kBAAkB,mDAAG;AACrB,kEAAkE,cAAc,0FAA0F;AAC1K;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B,yDAAS;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B,yDAAS;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAA4B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACxJ,+BAA+B,+DAAwB,GAAG,wDAAwD,wDAAwD,aAAa,gbAAgb,2BAA2B;AACloB;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,eAAe,MAAM,gDAAK,EAAE;AAC5B,eAAe,MAAM,gDAAK,EAAE;AAC5B,sBAAsB,MAAM,iDAAM,EAAE;AACpC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,mBAAmB,MAAM,iDAAM,EAAE;AACjC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,yBAAyB,MAAM,iDAAM,EAAE;AACvC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,cAAc,oFAAoF;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC5L,2CAA2C,+DAAwB,GAAG,iFAAiF,8CAA8C,aAAa,wCAAwC,kDAAkD,kEAA2B,GAAG;AAC1U;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,mBAAmB,MAAM,gDAAK,EAAE;AAChC,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,0BAA0B,MAAM,iDAAM,EAAE;AACxC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe;AAC3C,wBAAwB,iDAAe;AACvC,2BAA2B,iDAAe;AAC1C,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yDAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,yDAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC7K,sCAAsC,+DAAwB,GAAG,uEAAuE,0EAA0E,aAAa,kDAAkD,kCAAkC;AACnT;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,YAAY,MAAM,gDAAK,EAAE;AACzB,eAAe,MAAM,gDAAK,EAAE;AAC5B,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,oBAAoB,MAAM,iDAAM,EAAE;AAClC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,6BAA6B,iDAAe;AAC5C,4BAA4B,yCAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,uCAAuC,mDAAG;AACtE,kEAAkE,cAAc,iFAAiF;AACjK;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,4BAA4B,yDAAS;AACrC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC,+DAAwB,aAAa,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa;AACjN,mCAAmC,+DAAwB,GAAG,oGAAoG,0CAA0C,aAAa,sJAAsJ,+BAA+B;AAC9Y;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,iBAAiB,MAAM,gDAAK,EAAE;AAC9B,mBAAmB,MAAM,iDAAM,EAAE;AACjC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,wBAAwB,MAAM,iDAAM,EAAE;AACtC,sBAAsB,MAAM,iDAAM,EAAE;AACpC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAC/G,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,wBAAwB,iDAAe;AACvC,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,kCAAkC,mDAAG;AACjE,kEAAkE,cAAc,yBAAyB;AACzG;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,yDAAS;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC9J,iCAAiC,+DAAwB,GAAG,6DAA6D,gCAAgC,aAAa,wGAAwG,6BAA6B;AAC3S;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,YAAY,MAAM,gDAAK,EAAE;AACzB,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,+BAA+B,MAAM,iDAAM,EAAE;AAC7C,sBAAsB,MAAM,iDAAM,EAAE;AACpC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAiE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mQAAmQ;AACnR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,cAAc,2lDAA2lD;AACtpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yDAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACnL,wCAAwC,+DAAwB,GAAG,iJAAiJ;AACpN,QAAQ,4DAAqB;AAC7B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,0fAA0f,aAAa,kGAAkG,+CAA+C,kEAA2B,yGAAyG;AAC/yB,QAAQ,6DAAsB;AAC9B,QAAQ,0DAAmB;AAC3B,OAAO,wCAAwC;AAC/C;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,oBAAoB,MAAM,gDAAK,EAAE;AACjC,sBAAsB,MAAM,gDAAK,EAAE;AACnC,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,oBAAoB,MAAM,gDAAK,EAAE;AACjC,mBAAmB,MAAM,gDAAK,EAAE;AAChC,qBAAqB,MAAM,gDAAK,EAAE;AAClC,0BAA0B,MAAM,gDAAK,EAAE;AACvC,iBAAiB,MAAM,gDAAK,EAAE;AAC9B,qBAAqB,MAAM,gDAAK,EAAE;AAClC,uBAAuB,MAAM,gDAAK,EAAE;AACpC,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,mBAAmB,MAAM,gDAAK,EAAE;AAChC,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,2BAA2B,MAAM,gDAAK,EAAE;AACxC,eAAe,MAAM,gDAAK,EAAE;AAC5B,cAAc,MAAM,gDAAK,EAAE;AAC3B,eAAe,MAAM,gDAAK,EAAE;AAC5B,oBAAoB,MAAM,gDAAK,EAAE;AACjC,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,wBAAwB,MAAM,iDAAM,EAAE;AACtC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,iBAAiB,MAAM,0DAAe,sBAAsB,mBAAmB,IAAI;AACnF;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,iCAAiC,yEAA8B;AAC/D;AACA,+BAA+B,iEAAsB;AACrD,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAe;AACjC,gCAAgC,mBAAmB;AACnD,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,0BAA0B,iDAAe;AACzC,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,oCAAoC,mDAAG;AACnE,kEAAkE,cAAc,+BAA+B;AAC/G;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,yDAAS;AAClC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6BAA6B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC3J,gCAAgC,+DAAwB,GAAG,0DAA0D,oCAAoC,aAAa,sYAAsY,4BAA4B;AACxkB;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,cAAc,MAAM,gDAAK,EAAE;AAC3B,qBAAqB,MAAM,iDAAM,EAAE;AACnC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,oBAAoB,MAAM,iDAAM,EAAE;AAClC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,0BAA0B,MAAM,iDAAM,EAAE;AACxC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,yBAAyB,iDAAe;AACxC,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,mCAAmC,mDAAG;AAClE,kEAAkE,cAAc,4BAA4B;AAC5G;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB,yDAAS;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC9J,iCAAiC,+DAAwB,GAAG,4DAA4D,kCAAkC,aAAa,4ZAA4Z,6BAA6B;AAChmB;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,aAAa,MAAM,gDAAK,EAAE;AAC1B,sBAAsB,MAAM,iDAAM,EAAE;AACpC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,qBAAqB,MAAM,iDAAM,EAAE;AACnC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,wBAAwB,MAAM,iDAAM,EAAE;AACtC,2BAA2B,MAAM,iDAAM,EAAE;AACzC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAe,GAAG;AAC9C,2BAA2B,iDAAe;AAC1C,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAa,qCAAqC,mDAAG;AACpE,kEAAkE,cAAc,kCAAkC;AAClH;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yDAAS;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B,yDAAS;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAA+B,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AACjK,kCAAkC,+DAAwB,GAAG,8DAA8D,sCAAsC,aAAa,kdAAkd,8BAA8B;AAC9pB;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,eAAe,MAAM,gDAAK,EAAE;AAC5B,sBAAsB,MAAM,iDAAM,EAAE;AACpC,uBAAuB,MAAM,iDAAM,EAAE;AACrC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,sBAAsB,MAAM,iDAAM,EAAE;AACpC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,2BAA2B,MAAM,iDAAM,EAAE;AACzC,2BAA2B,MAAM,iDAAM,EAAE;AACzC,2BAA2B,MAAM,iDAAM,EAAE;AACzC,0BAA0B,MAAM,iDAAM,EAAE;AACxC,2BAA2B,MAAM,iDAAM,EAAE;AACzC,yBAAyB,MAAM,iDAAM,EAAE;AACvC,4BAA4B,MAAM,iDAAM,EAAE;AAC1C;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAe;AAC/C,8BAA8B,yCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAI;AAC5C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mDAAG;AACzC,sCAAsC;AACtC;AACA,SAAS;AACT;AACA;AACA,oCAAoC,yDAAS;AAC7C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC1K,qCAAqC,+DAAwB,GAAG,qEAAqE,4BAA4B,iCAAiC;AAClM;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,oBAAoB,MAAM,gDAAK,EAAE;AACjC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kCAAkC,6CAA6C,wEAAwE,mEAA4B,+CAA+C;AACrR,qCAAqC,+DAAwB,GAAG,qGAAqG,wEAAiC,GAAG;AACzM,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,cAAc,6FAA6F;AACxJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,aAAa,+DAAwB,CAAC,iDAAa;AAC1K,qCAAqC,+DAAwB,GAAG,qEAAqE,kCAAkC,4CAA4C,kEAA2B,GAAG;AACjP;AACA,MAAM,iBAAiB;AACvB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,aAAa,MAAM,gDAAK,EAAE;AAC1B,gBAAgB,MAAM,gDAAK,EAAE;AAC7B;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,iBAAiB,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAClF,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;AAChE,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,qBAAqB,qgBAAqgB,IAAI;;AAEznB;AACA;AACA;AA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D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ,GAAG,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ,EAAE,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,qDAAqD,sEAAqB;AAC1E;AACA;AACA,sBAAsB,mDAAG;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,8DAA8D,mBAAmB;AACjF,kBAAkB,mDAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sEAAqB,6CAA6C,yEAAwB;AAC/I,sBAAsB,8EAA6B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sFAAqC,0BAA0B,yEAAuB;AAClG;AACA,mBAAmB,yCAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yCAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAE;AAC7B;AACA;AACA,uBAAuB,yCAAE;AACzB;AACA,mBAAmB,yCAAE;AACrB,SAAS,GAAG,2DAAU;AACtB;AACA,oEAAoE,cAAc;AAClF;AACA;AACA;AACA;AACA,kDAAkD,wDAAa;AAC/D;AACA,uBAAuB,yCAAE;AACzB;AACA,mBAAmB,yCAAE;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAA4B,sDAAe,qBAAqB,sDAAe,wBAAwB,sDAAe,eAAe,sDAAe,CAAC,qDAAe,GAAG,sDAAe,CAAC,oDAAa;AACrP,gCAAgC,gEAAyB,GAAG,2CAA2C;AACvG;AACA,MAAM,gCAAgC,MAAM,iDAAM,8BAA8B,GAAG;AACnF,MAAM,4BAA4B;AAClC,MAAM,mBAAmB;AACzB,MAAM,MAAM,qDAAQ,EAAE;AACtB,MAAM,MAAM,oDAAM;AAClB;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU;AAChC,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,4BAA4B,IAAI,mBAAmB,IAAI,MAAM,qDAAe,EAAE,IAAI,MAAM,oDAAa,EAAE,IAAI,UAAU;;AAEzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sEAAqB,mDAAmD,yEAAwB;AAC3J,sBAAsB,8EAA6B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kBAAkB;AAChG,4CAA4C,6CAA6C,SAAS;AAClG,2DAA2D,eAAe;AAC1E,+DAA+D,OAAO,qBAAqB,QAAQ;AACnG;AACA,iFAAiF,kBAAkB,iBAAiB;AACpH,kBAAkB,2DAAU;AAC5B;AACA;AACA,SAAS,GAAG,0DAAS;AACrB;AACA;AACA;AACA;AACA,mBAAmB,yCAAE;AACrB,SAAS,GAAG,0DAAS;AACrB;AACA;AACA,gDAAgD,mBAAmB;AACnE,6CAA6C,SAAS;AACtD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sEAAqB;AAChF;AACA,oFAAoF,kBAAkB,QAAQ;AAC9G;AACA;AACA;AACA,4EAA4E,kBAAkB,2BAA2B;AACzH,eAAe,wCAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAS;AAC/C,yEAAyE,2BAA2B,GAAG,0BAA0B;AACjI;AACA;AACA,uBAAuB,0EAAwB;AAC/C;AACA;AACA;AACA,uBAAuB,0EAAwB,6BAA6B,0EAAwB;AACpG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,sDAAe,2BAA2B,sDAAe,eAAe,sDAAe,CAAC,qDAAe;AACtM,sCAAsC,gEAAyB,GAAG,uDAAuD;AACzH;AACA,MAAM,gCAAgC,MAAM,iDAAM,oCAAoC,GAAG;AACzF,MAAM,mBAAmB;AACzB,MAAM,MAAM,qDAAQ;AACpB;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,qDAAU;AACxB,KAAK,iBAAiB,UAAU;AAChC,sBAAsB,iDAAM;AAC5B;AACA,aAAa,GAAG,IAAI,mBAAmB,IAAI,MAAM,qDAAe,EAAE,IAAI,UAAU;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAwC,+DAAwB;AACzI,2CAA2C,+DAAwB,GAAG,6IAA6I,oBAAoB;AACvO;AACA,MAAM;AACN;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,mBAAmB,IAAI,UAAU;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,gCAAgC,8DAAuB,GAAG,kBAAkB;AAC5E,gCAAgC,8DAAuB,GAAG;AAC1D;AACA;AACA;AACA,YAAY,yDAAY;AACxB,YAAY;AACZ,eAAe,mDAAmD,+D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ACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4DAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yFAAiC;AAClD,iBAAiB,2FAAmC;AACpD;AACA;AACA,+BAA+B,8DAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0FAAkC;AAC3E,mBAAmB,4DAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yFAAiC;AAClD,iBAAiB,2FAAmC;AACpD;AACA;AACA,+BAA+B,8DAAc,CAAC,2FAAmC;AACjF;AACA;AACA;AACA;AACA;AACA,iBAAiB,0FAAkC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sEAAsB,SAAS,4EAA4B;AACpF,4BAA4B,sEAAsB,SAAS,+EAA+B;AAC1F,uBAAuB,sEAAsB,SAAS,yEAAyB;AAC/E,2BAA2B,sEAAsB,SAAS,8EAA8B;AACxF;AACA;AACA;AACA;AACA;AACA,6BAA6B,4EAA4B,EAAE,+EAA+B,EAAE,yEAAyB,EAAE,8EAA8B;AACrJ,2DAA2D,0DAA0D;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6EAA6B;AAC5D;AACA;AACA,eAAe,qEAAqB,KAAK,6DAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6EAA6B;AAC5D;AACA;AACA;AACA;AACA,eAAe,qEAAqB,KAAK,6DAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qFAAqC;AACxE;AACA;AACA;AACA;AACA,eAAe,qEAAqB,KAAK,iEAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uFAAuC;AAC3E;AACA;AACA;AACA;AACA,eAAe,qEAAqB,KAAK,kEAAkB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sFAAqC;AACrE;AACA;AACA;AACA;AACA,eAAe,qEAAqB,KAAK,kEAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8FAA6C;AAC7E;AACA;AACA;AACA;AACA,eAAe,qEAAqB,KAAK,sEAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kGAAiD;AAC/E;AACA,mBAAmB,qEAAqB,KAAK,wEAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oFAAmC;AAC1E;AACA;AACA;AACA;AACA,eAAe,qEAAqB,KAAK,iEAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yFAAiC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2DAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,wIAAwI,sEAAsB;AAC9J;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,OAAO;AAC1G;AACA;AACA,qDAAqD;AACrD;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAsB;AACjD,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uEAAsB,MAAM,sEAAsB,KAAK,uEAAsB,MAAM,iFAAiC;AACpI;AACA;AACA,mBAAmB,sEAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAA+B;AACrD,qCAAqC,oFAA4B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAA+B;AACrD,qCAAqC,wFAAgC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAA+B;AACrD,qCAAqC,wFAAgC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAmB;AAChC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yFAAiC;AAC/E,8CAA8C,qFAA6B;AAC3E,8CAA8C,mFAA2B;AACzE,8CAA8C,iGAAyC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wFAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4GAA+C;AAC7E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,yFAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yFAAiC;AAC1F;AACA,kBAAkB,wGAA+C;AACjE;AACA;AACA;AACA,kBAAkB,mHAA0D;AAC5E;AACA,8CAA8C,yFAAiC;AAC/E;AACA,YAAY,oEAAmB;AAC/B;AACA;AACA;AACA,sBAAsB,sGAA6C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4DAAY;AACd;AACA;AACA,uBAAuB,0FAAkC;AACzD;AACA;AACA;AACA,2DAA2D,8EAA6B;AACxF;;AAE8D;;;;;;;;;;;;;;;;;;AClsB9D;AACa;AAC6E;AACtB;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yFAAiC,sBAAsB,2FAAmC;AACxH,kBAAkB,iIAA4D;AAC9E;AACA;AACA;AACA,kBAAkB,iIAA4D;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEyB;;;;;;;;;;;;;;;;;;ACzC1B;AACa;AACkD;AACC;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,4EAA4E,uBAAuB;AACnG,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mGAA2C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,2EAA2E,mBAAmB;AAC9F,yBAAyB;AACzB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mGAA2C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,2EAA2E,mBAAmB;AAC9F,yBAAyB;AACzB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;;AAE0B;;;;;;;;;;;;;;;;AClH3B;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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ACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,4BAA4B,gGAAsC;AAClE;AACA;AACA,yDAAyD,sEAAc;AACvE,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB,mBAAmB,8DAAW;AAC9B;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB,mBAAmB,8DAAW;AAC9B;AACA,8EAA8E,sEAAc;AAC5F;AACA;AACA,+CAA+C,4FAAkC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,8EAA8E,sEAAc;AAC5F;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEwB;;;;;;;;;;;;;;;;;;;;;;;;;ACtRzB;AACa;AACkD;AACZ;AACM;AACA;AACN;AACA;AACW;AACM;AACN;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4DAAa;AAC9C,6BAA6B,iEAAY;AACzC,6BAA6B,iEAAY;AACzC,iCAAiC,4DAAa;AAC9C,iCAAiC,4DAAa;AAC9C,yBAAyB,sEAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB,mBAAmB,8DAAW;AAC9B;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yEAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yEAA0B;AACvE;AACA;AACA,kCAAkC,sEAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gGAAsC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEoB;;;;;;;;;;;;;;;;;ACtJrB;AACa;AACqC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,mBAAmB,uEAAsB,cAAc,uEAAsB;AAC7E,kBAAkB,uEAAsB,cAAc,uEAAsB;AAC5E,wBAAwB,uEAAsB,cAAc,uEAAsB;AAClF,wBAAwB,uEAAsB,cAAc,uEAAsB;AAClF,wBAAwB,uEAAsB,cAAc,uEAAsB;AAClF,wBAAwB,uEAAsB,eAAe,uEAAsB;AACnF,kBAAkB,uEAAsB,eAAe,uEAAsB;AAC7E,kBAAkB,uEAAsB,eAAe,uEAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,GAAG;AACjG;AACA;AACA;AACA,CAAC;;AAEwB;;;;;;;;;;;;;;;;;;;AC1FzB;AACa;AACkD;AACC;AACP;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iEAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oGAA4C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oGAA4C;AAC1E;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;;AAEwB;;;;;;;;;;;;;;;;;ACrFzB;AACa;AACuD;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4FAAkC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,iBAAiB;AACxG;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEuB;;;;;;;;;;;;;;;;;AC/ExB;AACa;AACuD;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4FAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,aAAa;AAC3F;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEuB;;;;;;;;;;;;;;;;;;;;ACrFxB;AACa;AACqC;AACU;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,yDAAS;;AAE0C;;;;;;;;;;;;;;;;;;;AChXrD;AACa;AACqC;AACH;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,yDAAS;;AAEoE;;;;;;;;;;;;;;;;;;ACtG/E;AACa;AAC8B;AACuC;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAqB;AACtC,uBAAuB,+EAAuB;AAC9C,iBAAiB,qEAA0B;AAC3C,uBAAuB,mFAA2B;AAClD,iBAAiB,wEAA6B;AAC9C,gDAAgD,gFAAwB,gCAAgC,6EAAqB;AAC7H,2BAA2B,sFAA8B;AACzD;AACA;AACA,iBAAiB,0EAA+B;AAChD,uBAAuB,wFAAgC;AACvD,iBAAiB,iEAAsB;AACvC,uBAAuB,gFAAwB;AAC/C,iBAAiB,kEAAuB;AACxC,iBAAiB,uEAA4B;AAC7C,iBAAiB,wEAA6B;AAC9C,iBAAiB,kEAAuB;AACxC,iBAAiB,uEAA4B;AAC7C,iBAAiB,+DAAoB;AACrC,uBAAuB,8EAAsB;AAC7C,iBAAiB,0EAA+B;AAChD,iBAAiB,0EAA+B;AAChD,gDAAgD,gFAAwB,gCAAgC,6EAAqB;AAC7H,2BAA2B,8EAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAE4B;;;;;;;;;;;;;;;;AClD7B;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;;AAEV;;;;;;;;;;;;;;;;;;;;;AC3BrB;AACa;AACkD;AACqB;AACpB;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,4BAA4B,mEAAmB;AAC/C,kCAAkC,6FAAqC;AACvE;AACA;AACA;AACA;AACA,kCAAkC,wFAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,6CAA6C,yFAAyC;AACtF;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;;AAE6B;;;;;;;;;;;;;;;;;;;;;;;;AC/E9B;AACa;AACqC;AACU;AACC;AACG;AACoB;AAChC;AACI;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA,+BAA+B,4DAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mEAAmB;AAChC;AACA,kDAAkD,iGAAyC,EAAE,sGAA8C;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sGAA8C;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAsB;AAClC;AACA;AACA,sBAAsB,6FAAqC;AAC3D;AACA,gBAAgB,qFAAqC;AACrD;AACA;AACA;AACA,sBAAsB,qHAA6D;AACnF;AACA,SAAS;AACT;AACA;AACA,CAAC,CAAC,sEAAkB;;AAEI;;;;;;;;;;;;;;;;;;;;;;;ACtExB;AACa;AAC6D;AACS;AACnB;AAC2B;AAC9B;;AAE7D;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,8BAA8B,mEAAmB;AACjD;AACA;AACA;AACA,kEAAkE,qFAA6B;AAC/F;AACA;AACA,8DAA8D,iGAAyC,EAAE,sGAA8C;AACvJ;AACA;AACA;AACA,mCAAmC,kFAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sGAA8C;AAC5E;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA,4BAA4B,mEAAmB;AAC/C,kCAAkC,6FAAqC;AACvE;AACA;AACA,4FAA4F,iGAAyC;AACrI;AACA;AACA;AACA,kCAAkC,wFAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC,CAAC,sEAAkB;;AAEO;;;;;;;;;;;;;;;;;;;;;;;;AC9H3B;AACa;AAC6D;AACH;AACV;AACG;AACA;AACO;;AAEvE;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA,4BAA4B,mEAAmB;AAC/C;AACA;AACA,kCAAkC,sGAA8C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+EAAyB;AACnD,4JAA4J,+EAAyB;AACrL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wGAAgD;AAC3E;AACA;AACA,2BAA2B,sEAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,sEAAsB;AAC/F;AACA;AACA,oBAAoB,mEAAmB;AACvC;AACA;AACA,gFAAgF,sEAAsB;AACtG,oBAAoB,qFAAqC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,yFAAiC;AAChD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sEAAkB;;AAEK;;;;;;;;;;;;;;;;ACjKzB;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;;;;AC9C5B;AACa;AACkD;AACC;AACC;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA,wCAAwC,6EAAqB;AAC7D;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oGAA4C;AAC9E;AACA;AACA,kCAAkC,yGAAiD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gHA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,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,SAAS,CAAC;IACpD,IAAIC,UAAU,GAAG,CAAC,CAAC;IACnBH,SAAS,CAAC5F,OAAO,CAAC,UAAUgG,KAAK,EAAE;MAC/B,IAAIC,KAAK,GAAGD,KAAK,CAACF,KAAK,CAAC,IAAI,CAAC;MAC7B,IAAII,UAAU,GAAGD,KAAK,CAACE,KAAK,CAAC,CAAC;MAC9B,IAAIC,SAAS,GAAGH,KAAK,CAACI,IAAI,CAAC,IAAI,CAAC;MAChC,IAAIH,UAAU,IAAIE,SAAS,EAAE;QACzBL,UAAU,CAACG,UAAU,CAAC,GAAGE,SAAS;MACtC;IACJ,CAAC,CAAC;IACF,OAAOL,UAAU;EACrB,CAAC;EACD,OAAO3C,SAAS;AACpB,CAAC,CAAC,CAAE;;;;;;;;;;;;;;;;;ACtIJ;AACa;AACb;AACA;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;;;;;;;;ACNzB;AACa;AAC4C;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA,YAAY,mEAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;;AAEgJ;;;;;;;;;;;;;;;;;;;;ACnJjL;AACa;AAC+E;;AAE5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAmB;AAC/B;AACA;AACA;AACA,kCAAkC,+EAA+B;AACjE;AACA;AACA;AACA,kBAAkB,uFAAuC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yDAAS;AACzC,eAAe,6EAA6B;AAC5C;AACA;AACA,CAAC;;AAE+B;;;;;;;;;;;;;;;;AC1ChC;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAE6B;;;;;;;;;;;;;;;;;;;;;;AC/G9B;AACa;AAC6C;AACF;AACJ;AACY;AACU;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sEAAsB;AAC5D;AACA;AACA,qDAAqD,sEAAsB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yDAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gEAAW;AAClC;AACA;AACA,uBAAuB,4DAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qFAAqC;AAClE;AACA;AACA,kBAAkB,6GAAqD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0EAAwB;AACxD;AACA,kBAAkB,oGAA4C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,oFAAkC;AAClJ,kBAAkB,6GAAqD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yGAAiD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEuB;;;;;;;;;;;;;;;;AC9HxB;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEoB;;;;;;;;;;;;;;;;;;;;AC3BrB;AACa;AAC+C;AACI;AAC8B;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sGAA8C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,2FAAyC;AACzH,kBAAkB,+FAAuC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8EAA4B;AAC3E,+CAA+C,+EAA6B;AAC5E,8DAA8D,8EAA4B,iBAAiB,+EAA6B;AACxI;AACA;AACA;AACA;AACA;AACA,0DAA0D,uEAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,2FAAyC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iGAAyC;AACpE;AACA;AACA,2BAA2B,sEAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAmB;AACvC;AACA;AACA;AACA;AACA,aAAa,EAAE,mFAAiC;AAChD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oFAAkC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oFAAkC;AACjD;AACA;AACA,CAAC;;AAEqB;;;;;;;;;;;;;;;;;;;;AC5JtB;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;;AAEuE;;;;;;;;;;;;;;;;;;ACxFvE;AACa;AACiD;AACR;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B,kBAAkB,kGAA2C;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8FAAuC;AACzD;AACA;AACA;AACA,CAAC;;AAEoB;;;;;;;;;;;;;;;;ACzCrB;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;;AAElB;;;;;;;;;;;;;;;;;;;;ACZ7B;AACa;AACiD;AACR;AACQ;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAmB;AAC3B,cAAc,iGAA0C;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oGAA6C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAmB;AAC3B,cAAc,oGAA6C;AAC3D;AACA,8CAA8C,iFAAgC;AAC9E;AACA;AACA,2CAA2C,uEAAsB;AACjE;AACA;;AAE6D;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1C7D;AACa;AAC4D;AACtB;AACgB;AACnB;AACc;AACsC;AACpB;AAC/B;AACsC;AACA;AAChC;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gEAAe;AAClD,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,yEAAyE,+DAAc;AACvF,uBAAuB,iEAAkB;AACzC;AACA,mBAAmB,oEAAqB;AACxC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2CAA2C,wDAAS;AACpD;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6GAAsD;AAC5E;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6GAAsD;AAC5E;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6GAAsD;AAC5E;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6GAAsD;AAC5E;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6GAAsD;AAC5E;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO,EAAE,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wDAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iEAAkB,0BAA0B,+DAAiB;AACpG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA,iDAAiD,+FAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8EAA6B,uBAAuB,8EAA6B;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,kDAAkD,+EAA8B;AAChF;AACA;AACA;AACA,kDAAkD,8EAA6B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,0FAAyC;AAC9I;AACA;AACA,2FAA2F,0FAAyC;AACpI;AACA,gCAAgC,4GAA2D;AAC3F,gCAAgC,wGAAuD;AACvF;AACA;AACA;AACA;AACA,oCAAoC,oGAAmD;AACvF,oCAAoC,gGAA+C;AACnF;AACA;AACA,8EAA8E,qGAAoD;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gFAA+B;AAC7E,kCAAkC,yGAAkD;AACpF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wDAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4HAA4D;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gFAAsB;AACpE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,kDAAkD,+EAA8B;AAChF;AACA;AACA;AACA;AACA,kDAAkD,8EAA6B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gFAA+B;AACjF;AACA;AACA;AACA,kCAAkC,sHAAsD;AACxF;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iIAAiE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA,yDAAyD,uFAAsC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qGAAgC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAA0B;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6GAAsD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sFAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wDAAS;AAChD;AACA;AACA;AACA;AACA,6CAA6C,4FAA2C;AACxF;AACA;AACA,kBAAkB,wFAAyC,CAAC,2DAAQ,CAAC,2DAAQ,GAAG,8CAA8C,kCAAkC;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEoB;;;;;;;;;;;;;;;;;;;;;AC5jBrB;AACa;AACkD;AACpB;AACqC;AAC1B;AACQ;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6GAAsD;AACpF;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B,kBAAkB,4GAA4C;AAC9D;AACA,mBAAmB,oDAAS;AAC5B;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;ACnE5B;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEd;;;;;;;;;;;;;;;;ACfzB;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4C;;;;;;;;;;;;;;;;ACX5C;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEkC;;;;;;;;;;;;;;;;ACblC;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;AAEb;;;;;;;;;;;;;;;;;;ACfxB;AACa;AACkD;AAC0B;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,uEAAsB;AAC1F;AACA;AACA,gEAAgE,0EAAyB;AACzF;AACA,oEAAoE,4EAA2B;AAC/F;AACA,kEAAkE,6EAA4B;AAC9F;AACA;AACA;AACA;AACA,oEAAoE,6FAA4C;AAChH;AACA;AACA;AACA;AACA;AACA,kEAAkE,0EAAyB;AAC3F;AACA,oEAAoE,4EAA2B;AAC/F;AACA;AACA;AACA;AACA;AACA,gEAAgE,6FAA4C;AAC5G;AACA;AACA;AACA,gEAAgE,4FAA2C;AAC3G;AACA;AACA;AACA;AACA,oEAAoE,6FAA4C;AAChH;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB,mBAAmB,8DAAW;AAC9B,gFAAgF,wEAAuB,6EAA6E,uEAAsB;AAC1M,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,uFAAuF,wEAAuB;AAC9G;AACA;AACA;AACA,gDAAgD,6EAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,qCAAqC,WAAW;AAChD;AACA,CAAC;;AAE0B;;;;;;;;;;;;;;;;;;;;;;;;;ACrH3B;AACa;AACqC;AACkH;AAClG;AAChB;AACU;AACV;AACY;AACV;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,qCAAqC;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,qEAAa;AAC3E;AACA;AACA;AACA,oDAAoD,4DAAS;AAC7D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uGAAgD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B,qEAAmB;AAC/C,mGAAmG,6CAA6C;AAChJ;AACA;AACA,oCAAoC,qEAAmB;AACvD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,4BAA4B;AAC5B,6BAA6B;AAC7B;AACA;AACA;AACA,2BAA2B,6FAAkC;AAC7D,6BAA6B,sEAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wEAAuB;AAC5C;AACA;AACA,qBAAqB,4EAA2B;AAChD,qBAAqB,6FAA4C;AACjE;AACA;AACA,qBAAqB,6EAA4B;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gGAAyC;AAC3D;AACA,kFAAkF,wEAAuB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6FAAkC;AAC7D,6BAA6B,sEAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2EAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6EAA4B;AACvE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4DAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6FAAqC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAuB;AACnD;AACA;AACA;AACA;AACA,kFAAkF,uCAAuC;AACzH;AACA;AACA;AACA;AACA;AACA,kBAAkB,+GAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yEAAwB,IAAI,6FAA4C,GAAG,4EAA2B;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,2CAA2C;AACrI;AACA;AACA;AACA;AACA;AACA,kBAAkB,+GAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAa;AACzC;AACA;AACA;AACA,4BAA4B,6EAA4B;AACxD;AACA;AACA;AACA;AACA,4FAA4F,4CAA4C;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,0BAA0B;AACzG;AACA;AACA;AACA;AACA;AACA,kBAAkB,oHAA6D;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,8DAAa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,4EAA2B,8BAA8B,6FAA4C;AACzK;AACA;AACA;AACA,6BAA6B,qEAAmB;AAChD,oCAAoC,qEAAmB;AACvD;AACA,sDAAsD;AACtD;AACA;AACA,8CAA8C,+EAA8B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uFAAsC;AACjE;AACA;AACA;AACA;AACA;AACA,eAAe,uFAAsC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wEAAuB;AACxC;AACA;AACA,iBAAiB,4EAA2B;AAC5C,iBAAiB,6FAA4C;AAC7D;AACA;AACA,iBAAiB,6EAA4B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C;AACA;AACA,CAAC;;AAE4C;;;;;;;;;;;;;;;;;;;;;;;ACvsB7C;AACa;AACwC;AACI;AACuB;AAC3B;AACI;AACF;AACU;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4EAA2B;AAC7D;AACA,0BAA0B,qEAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAmB,cAAc,4EAA2B;AACzF;AACA,mCAAmC,yEAAwB;AAC3D,sCAAsC,6FAA4C;AAClF;AACA,8BAA8B,+EAA4B;AAC1D;AACA,sBAAsB,qGAA8C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4EAA2B,iCAAiC,6FAA4C;AAClJ;AACA;AACA,CAAC,CAAC,kEAAgB;;AAEW;;;;;;;;;;;;;;;;;;;;;AC7G7B;AACa;AACiF;AAChC;AACL;AACQ;AACA;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+EAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mFAAkC;AACnD,uBAAuB,+DAAc;AACrC,iBAAiB,oFAAmC;AACpD,uBAAuB,8DAAa;AACpC,iBAAiB,oFAAmC;AACpD,uBAAuB,gEAAe;AACtC,iBAAiB,sFAAqC;AACtD,uBAAuB,kEAAiB;AACxC;AACA,sBAAsB,uGAAgD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+EAA8B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oFAAmC;AACnE;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B,kBAAkB,yGAAkD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,2EAAkB,IAAI,mFAAkC,GAAG,sFAAqC;AAC7J;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B,kBAAkB,yGAAkD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qKAAqK,uEAAsB;AAC3L;AACA,yBAAyB,2EAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA,iCAAiC,uEAAe;AAChD,qBAAqB,sEAAmB,qBAAqB,sEAAmB;AAChF,iDAAiD,iFAAgC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,8DAA8D;AAC9D,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEwB;;;;;;;;;;;;;;;;;AChPzB;AACa;AACuD;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAY;AACxB;AACA;AACA;AACA,wCAAwC,+EAA8B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6DAAY;AACxC;AACA;AACA;AACA;AACA,CAAC;;AAE4B;;;;;;;;;;;;;;;;;;ACxE7B;AACa;AAC2D;AACnB;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qEAAoB,KAAK,kGAAiD;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qEAAoB,KAAK,kGAAiD;AACnG;AACA;AACA;AACA;AACA;AACA,iCAAiC,qEAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uFAAsC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEkC;;;;;;;;;;;;;;;;AC/EnC;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEsB;;;;;;;;;;;;;;;;;;ACjBvB;AACa;AAC+E;AAC3B;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wEAAuB;AACxC,uBAAuB,mEAAkB;AACzC,iBAAiB,4EAA2B;AAC5C,uBAAuB,uEAAsB;AAC7C,iBAAiB,6EAA4B;AAC7C,uBAAuB,wEAAuB;AAC9C;AACA,sBAAsB,0GAAmD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wFAAuC;AAC/D;AACA,4BAA4B,yGAAwD;AACpF,uBAAuB,6FAA4C;AACnE;AACA,mBAAmB,4EAA2B;AAC9C;AACA,6BAA6B,oFAAmC;AAChE,mBAAmB,wEAAuB;AAC1C;AACA,6BAA6B,yFAAwC;AACrE,mBAAmB,6EAA4B;AAC/C;AACA,eAAe,sEAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+EAA8B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+EAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6EAA4B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+EAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;;;;AC5I5B;AACa;AACwC;AACI;AACC;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wEAAuB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wEAAuB;AAChE;AACA;AACA,CAAC,CAAC,kEAAgB;;AAEO;;;;;;;;;;;;;;;;;;;ACrEzB;AACa;AACwC;AACI;AACC;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6EAA4B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6EAA4B;AACrE;AACA;AACA,CAAC,CAAC,kEAAgB;;AAEY;;;;;;;;;;;;;;;;;ACvE9B;AACa;AACqD;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iFAAgC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEgC;;;;;;;;;;;;;;;;;ACjCjC;AACa;AACkD;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sFAAqC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;AC9B5B;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAE4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrC7B;AACa;AACuF;AACvD;AACmC;AACiB;AAChC;AACX;AACQ;AACd;AACmB;AACa;AACb;AACjB;AAC2C;AAC7B;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,sCAAsC,0EAA2B;AACjE,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,wCAAwC,sEAAmB;AAC3D,kCAAkC,0GAAmD;AACrF;AACA,uCAAuC,qEAAoB;AAC3D;AACA;AACA;AACA,8CAA8C,yEAAe;AAC7D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yEAAe;AACjD;AACA,gCAAgC,wDAAS;AACzC;AACA,2BAA2B,4EAA6B;AACxD;AACA;AACA;AACA;AACA,kBAAkB,4GAAqD;AACvE;AACA,eAAe,2DAAQ,CAAC,2DAAQ,GAAG;AACnC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sHAAsD;AACxE;AACA;AACA;AACA,4CAA4C,mGAAqC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uEAAe;AAC5D;AACA,sEAAsE,iFAAgC;AACtG,0CAA0C,yFAAiC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sEAAmB;AACtD;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yFAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA,+CAA+C,yFAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,mFAAkC;AACxF;AACA,+DAA+D,yEAAwB;AACvF,gDAAgD,4EAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAsB;AACnD;AACA;AACA;AACA;AACA;AACA,6CAA6C,uEAAe;AAC5D;AACA,sEAAsE,iFAAgC;AACtG,0CAA0C,yFAAiC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yFAAiC;AACtE;AACA,qDAAqD,wFAAgC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6EAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yFAAuB;AAC1D;AACA,4BAA4B,iEAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2EAA0B;AACzD;AACA,kDAAkD,iEAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iEAAgB;AACrE;AACA;AACA;AACA;AACA,yCAAyC,wFAAgC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wFAAgC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yFAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,uDAAU;;AAEuB;;;;;;;;;;;;;;;;;;;;;;;;;AClYnC;AACa;AACkD;AACa;AACd;AACjB;AACkB;AACT;AACQ;AACE;AACY;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wFAAwB;AAC9C;AACA,0BAA0B,qDAAM,4BAA4B,qDAAI,EAAE,wDAAO;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yEAAwB,IAAI,gFAA+B;AAC3E;AACA;AACA,qBAAqB,wFAAiC;AACtD;AACA,yCAAyC,wFAAgC;AACzE,gCAAgC,uEAAsB;AACtD;AACA;AACA;AACA;AACA;AACA,qBAAqB,4EAAqB;AAC1C,4BAA4B,uEAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,kHAAkH,qCAAqC;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6GAAsD;AACxE;AACA;AACA;AACA;AACA,CAAC;;AAEqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnGtB;AACa;AACuE;AACvC;AACmC;AACA;AACf;AACE;AACb;AAC0B;AACM;AAChC;AACJ;AACF;AACgB;AACY;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA,uCAAuC,qEAAoB;AAC3D;AACA;AACA;AACA,8CAA8C,yEAAe;AAC7D;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA,0BAA0B,qHAAqD;AAC/E;AACA,2FAA2F;AAC3F;AACA,0BAA0B,0GAAmD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,sEAAe,oBAAoB,qGAA8C;AAC1I,uEAAuE,8DAAW,oBAAoB,2EAA0B,mBAAmB,6EAA4B;AAC/K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,iGAAiG;AACjG;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,0BAA0B,+FAAwC;AAClE;AACA,sCAAsC,2DAAQ,CAAC,2DAAQ,GAAG,cAAc,yFAAyF,4EAA2B;AAC5L;AACA,8BAA8B,wFAAiC;AAC/D,uBAAuB;AACvB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0EAA2B;AAC9D;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wFAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA,+CAA+C,wFAAuB;AACtE;AACA;AACA,sDAAsD,8EAA6B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,yEAAwB;AACvF,gDAAgD,4EAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAsB;AACnD;AACA;AACA;AACA;AACA,qCAAqC,wFAAiC;AACtE;AACA,qDAAqD,yFAAgC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4EAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC,CAAC,uDAAU;;AAEkB;;;;;;;;;;;;;;;;;;;;;;;;;;;AClN9B;AACa;AAC6D;AAC7B;AACK;AACE;AACF;AACW;AACyB;AACN;AACf;AACU;AACrB;;AAEtD;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sEAAe,sBAAsB,uGAAgD;AAChI,qDAAqD,sEAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA,kCAAkC,qHAAqD;AACvF;AACA,mGAAmG;AACnG;AACA,kCAAkC,0GAAmD;AACrF;AACA,4CAA4C,0DAAQ;AACpD;AACA,qEAAqE,4EAA2B;AAChG;AACA;AACA;AACA,uHAAuH,2EAA0B;AACjJ,kCAAkC,iGAA0C;AAC5E;AACA;AACA;AACA,uHAAuH,oFAAmC;AAC1J,kCAAkC,iGAA0C;AAC5E;AACA,iCAAiC,6EAA4B;AAC7D,4BAA4B,yEAAwB;AACpD;AACA,uHAAuH,yFAAwC;AAC/J,kCAAkC,iGAA0C;AAC5E;AACA,sEAAsE,yEAAwB;AAC9F;AACA,uHAAuH,yFAAwC;AAC/J,kCAAkC,iGAA0C;AAC5E;AACA,kCAAkC,yEAAsB;AACxD;AACA,kCAAkC,iGAA0C;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,6CAA6C,4DAAS;AACtD;AACA,6CAA6C,sGAA4C;AACzF;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC,CAAC,uDAAU;;AAEgB;;;;;;;;;;;;;;;;;;;;;;;;AClI5B;AACa;AAC4D;AACJ;AACnB;AACH;AACG;AACF;AACe;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,4DAAa;AAC3B;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,sBAAsB,gFAA+B;AACrD,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,sBAAsB,gFAA+B;AACrD,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS,8DAAa;AACtB,aAAa,wDAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2DAAQ,CAAC,2DAAQ,GAAG;AAC3C,uBAAuB,2DAAQ,CAAC,2DAAQ,GAAG;AAC3C,uDAAuD,uEAAmB,2BAA2B,6EAA6B;AAClI;AACA,iDAAiD,6EAA6B;AAC9E;AACA,qBAAqB,2DAAQ,CAAC,2DAAQ,GAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,2DAAQ,GAAG,wBAAwB;AAC9C;;AAE4D;;;;;;;;;;;;;;;;;;ACzF5D;AACa;AACkD;AACb;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gFAA+B;AAC7C,KAAK;AACL;AACA;AACA,cAAc,gFAA+B;AAC7C,KAAK;AACL;AACA;AACA,cAAc,gFAA+B;AAC7C,KAAK;AACL;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,sBAAsB,gFAA+B;AACrD,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,sBAAsB,gFAA+B;AACrD,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA,sBAAsB,gFAA+B;AACrD,aAAa;AACb,SAAS;AACT;AACA;;AAEyC;;;;;;;;;;;;;;;;;;;;;ACnDzC;AACa;AACkD;AACX;AACF;AACF;AACc;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA,sCAAsC,+EAA4B;AAClE;AACA,uEAAuE,wDAAS;AAChF;AACA;AACA,kCAAkC,qGAA8C;AAChF;AACA;AACA;AACA,oCAAoC,qEAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;;AAE4B;;;;;;;;;;;;;;;;;;;ACtE7B;AACa;AACqC;AACA;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA,uCAAuC,uEAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEsC;;;;;;;;;;;;;;;;;;;AC5CvC;AACa;AACqC;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,oDAAS;;AAEwC;;;;;;;;;;;;;;;;;;;ACtcnD;AACa;AACqC;AACK;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;;AAEoD;;;;;;;;;;;;;;;;;;;;AChNrE;AACa;AACqC;AACH;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC,CAAC,wDAAW;;AAEwG;;;;;;;;;;;;;;;;;;AC9CrH;AACa;AACqC;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,oDAAS;;AAEY;;;;;;;;;;;;;;;;;;;ACvBvB;AACa;AACyC;AACJ;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uEAAsB;AAChE,gDAAgD,uEAAsB;AACtE;AACA;AACA;AACA;AACA;AACA,4BAA4B,yJAAyJ;AACrL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAmB;AAChC;AACA;AACA,kBAAkB,sEAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2BAA2B,EAAE,iCAAiC,EAAE,sBAAsB,gBAAgB,OAAO;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;;ACrL5B;AACa;AACqC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gFAA+B;AAC7D,KAAK;AACL;AACA;AACA,8BAA8B,gFAA+B;AAC7D;AACA;;AAEgC;;;;;;;;;;;;;;;;;;;;ACnBhC;AACa;AACkD;AACR;AACO;AACZ;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA,wBAAwB,2EAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0DAAS;AACpD;AACA;AACA;AACA,kCAAkC,yFAAkC;AACpE;AACA;AACA,wBAAwB,4EAA2B;AACnD;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;;AAEyB;;;;;;;;;;;;;;;;;;ACtD1B;AACa;AACwF;AAC/C;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sFAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,2EAA0B;AACvE;AACA;AACA,sBAAsB,8DAAW,gFAAgF,uEAAsB;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F,wEAAuB;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wEAAuB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kGAAiD,oBAAoB,sGAAqD;AACvL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2EAA0B;AACtE;AACA;AACA,CAAC;;AAE0B;;;;;;;;;;;;;;;;;AC7F3B;AACa;AACb;AACA;AACA;;AAEyB;;;;;;;;;;;;;;;;;;;;;;ACNzB;AACa;AAC0C;AAC4K;AAC1L;AACuC;AACvB;AACH;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAgC,qBAAqB,6EAA4B;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAgC,qDAAqD,mEAAkB;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,4CAA4C,iEAAc,eAAe,oEAAmB;AAC5F,2BAA2B,kDAAQ;AACnC,4BAA4B,yEAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6EAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sFAAoC;AAC5C,4BAA4B,gFAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sFAAoC;AAC5C,4BAA4B,mFAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uEAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uEAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iFAA+B;AACvC,4BAA4B,0EAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qFAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gFAA+B;AAC3D,4BAA4B,gFAA+B;AAC3D,4BAA4B,+EAA8B;AAC1D,4BAA4B,gFAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iFAA+B;AACvC,iCAAiC,0EAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAmB;AAChC,gCAAgC,yEAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yEAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8FAA4C;AACpD;AACA,gCAAgC,kFAAiC;AACjE,gCAAgC,yFAAwC;AACxE;AACA;AACA,kBAAkB,8HAA8D;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+EAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oFAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yFAAwC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uFAAsC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mFAAiC;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wHAAwD;AAC9E;AACA;AACA;AACA,6CAA6C,+EAA8B;AAC3E;AACA,6BAA6B,+EAA8B;AAC3D;AACA;AACA,yBAAyB,+EAA8B,EAAE,yEAAwB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gFAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gFAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAmB;AAChC,gCAAgC,8EAA6B,EAAE,yEAAwB;AACvF,gCAAgC,2EAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uFAAsC;AAClE,4BAA4B,uFAAsC;AAClE;AACA;AACA;AACA;AACA;AACA,4BAA4B,uFAAsC,EAAE,8FAA6C;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;;AAEkC;;;;;;;;;;;;;;;;;;;AClVnC;AACa;AACyC;AAC0B;AACD;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B,kBAAkB,oHAAoD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAW;AACrC,8BAA8B,4DAAW;AACzC;AACA;AACA,kBAAkB,iHAAiD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wHAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB,mBAAmB,sEAAmB;AACrE,kBAAkB,8HAA8D;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gFAA+B;AAC3C,YAAY,+EAA8B;AAC1C;AACA,kBAAkB,8HAA8D;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;;AAE2B;;;;;;;;;;;;;;;;;;;;;AC1F5B;AACa;AAC0C;AACyB;AAC1B;AACQ;AACV;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+EAA4B,CAAC,iEAAc;AAChF,uCAAuC,0FAAuC;AAC9E;AACA;AACA,iCAAiC;AACjC,iDAAiD,iCAAiC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,kBAAkB,oHAAoD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,oCAAoC;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAmB;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qCAAqC;AACzF;AACA;AACA,kBAAkB,gGAAyC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B,kBAAkB,yGAAkD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAmB;AAC3B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oGAA6C;AAC/D;AACA,qCAAqC;AACrC,sDAAsD,8CAA8C;AACpG,+CAA+C,8CAA8C;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oGAA6C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9LpB;AACa;AACkD;AACJ;AACG;AACR;AACA;AACF;AACF;AACiB;AACL;AACK;AACQ;AACE;AACW;AACzB;AACL;AAC6B;AACpB;AACQ;AACG;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+FAAwC,mBAAmB,+FAAwC;AACjJ;AACA;AACA,kBAAkB,+FAAwC;AAC1D;AACA;AACA;AACA,gBAAgB,2HAAuD;AACvE,0BAA0B,gGAA4B,6BAA6B,uEAAsB;AACzG;AACA,sBAAsB,8DAAW,6BAA6B,uEAAsB;AACpF;AACA;AACA,YAAY,uEAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2HAAuD;AACvE,0BAA0B,gGAA4B;AACtD;AACA;AACA,sBAAsB,8DAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA,6CAA6C,4DAAS,iCAAiC,uEAAsB;AAC7G;AACA,oDAAoD,sEAAmB;AACvE;AACA,0CAA0C,+FAAwC;AAClF;AACA;AACA;AACA;AACA,qDAAqD,iGAAmC,oCAAoC,uEAAsB;AAClJ;AACA,8CAA8C,oFAA+B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uFAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B,kBAAkB,yGAAkD;AACpE;AACA;AACA;AACA;AACA,aAAa,sEAAmB;AAChC,4BAA4B,gGAAiC,kEAAkE,uEAAsB,0CAA0C,uEAAsB;AACrN;AACA;AACA;AACA;AACA,aAAa,sEAAmB;AAChC;AACA,6DAA6D,sEAAmB,kCAAkC,2DAAQ;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4GAAyC,sEAAsE,uEAAsB,uDAAuD,uEAAsB;AAClP;AACA;AACA;AACA,aAAa,sEAAmB;AAChC,iCAAiC,+GAA2C,uEAAuE,uEAAsB;AACzK;AACA;AACA;AACA,aAAa,sEAAmB;AAChC,gCAAgC,4GAAyC;AACzE;AACA,mBAAmB,wEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4EAAkB;AAChD;AACA,mBAAmB,gGAAkC;AACrD;AACA;AACA,YAAY,sEAAmB;AAC/B,kBAAkB,iGAA0C;AAC5D;AACA;AACA,YAAY,yFAA2B;AACvC,YAAY,gGAAkC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAS;AACxB;AACA,mBAAmB,8DAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,mCAAmC,uEAAsB;AACzD;AACA,oEAAoE,yEAAwB;AAC5F,gDAAgD,4EAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA,4EAA4E,8DAAa,GAAG,8DAAa,GAAG,uEAAsB;AAClI;AACA,oMAAoM,uEAAsB;AAC1N,iHAAiH,uEAAsB;AACvI;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,uEAAsB;AAClG,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA,iIAAiI,uEAAsB;AACvJ,sFAAsF,uEAAsB;AAC5G,+IAA+I,uEAAsB;AACrK,iIAAiI,uEAAsB;AACvJ,6BAA6B;AAC7B;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;;AAE0B;;;;;;;;;;;;;;;;;;;ACvR3B;AACa;AAC0F;AACjB;AAC7B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0EAAyB;AACrD;AACA;AACA;AACA,yDAAyD,uEAAsB;AAC/E,yDAAyD,uEAAsB;AAC/E,iCAAiC,iFAAgC,GAAG,+EAA8B;AAClG;AACA;AACA;AACA;AACA;AACA,wCAAwC,uFAAsC;AAC9E,qEAAqE,uFAAsC;AAC3G;AACA,qFAAqF,uFAAsC;AAC3H,gBAAgB,sFAAqC,yDAAyD,0FAAyC;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,uFAAsC;AAC5H,kEAAkE,uFAAsC;AACxG;AACA;AACA,gDAAgD,qFAAoC,GAAG,sFAAqC;AAC5H,yDAAyD,uFAAsC;AAC/F,gBAAgB,sFAAqC,uEAAuE,0FAAyC;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yFAAwC;AAClF;AACA,iDAAiD;AACjD,iDAAiD;AACjD;AACA;AACA;AACA,aAAa,sEAAmB;AAChC;AACA;AACA,kBAAkB,sEAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qFAAoC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2FAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2FAAqB;AAC7D,wGAAwG;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,uEAAuE,uEAAsB;AAC7F,mFAAmF,uEAAsB;AACzG,+DAA+D,uEAAsB;AACrF;AACA;AACA,2BAA2B,6FAA4C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEiC;;;;;;;;;;;;;;;;;;;;ACtKlC;AACa;AACmE;AAClB;AACR;AACmB;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B;AACA,kBAAkB,4GAA4C;AAC9D;AACA,YAAY,sEAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uEAAoB;AACpC;AACA;AACA,qBAAqB,uEAAoB;AACzC;AACA;AACA,iBAAiB,uEAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4GAA4C;AAC9D;AACA;AACA;AACA,kBAAkB,4GAA4C;AAC9D;AACA;AACA;AACA,kBAAkB,wHAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,6EAA4B,qBAAqB,oFAAmC;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4GAA4C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,+BAA+B,GAAG;AAC9F;AACA,aAAa,sEAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4GAA4C;AAC9D;AACA;AACA;AACA;AACA,+BAA+B,wEAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA,+BAA+B,kFAA+B,CAAC,sEAAmB;AAClF;AACA;AACA,kBAAkB,qGAA8C;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7NrB;AACa;AAC0C;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iEAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,CAAC,4CAA4C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;AAEyhB;;;;;;;;;;;;;;;;;;;ACxW9jB;AACa;AACkC;AACJ;AACmB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAmB,kCAAkC,mEAAwB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gGAAyC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gGAAyC;AAC3D;AACA,YAAY,gEAAmB;AAC/B,kBAAkB,8FAAuC;AACzD;AACA;AACA;AACA,yCAAyC,mEAAwB;AACjE;AACA,6EAA6E,mEAAwB;AACrG;AACA;AACA;AACA,mCAAmC,gEAAmB;AACtD;AACA;AACA;AACA;AACA,kBAAkB,8FAAuC;AACzD;AACA;AACA;AACA,CAAC;;AAEwB;;;;;;;;;;;;;;;;;AC3EzB;AACa;AACiD;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kGAA2C;AAC7D;AACA;AACA;AACA;AACA,kBAAkB,8FAAuC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEsB;;;;;;;;;;;;;;;;AC9HvB;AACa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gCAAgC,wBAAwB,OAAO;AAC/G;AACA;AACA,CAAC;;AAEoB;;;;;;;;;;;;;;;;;;;;;;;ACnDwF;AAC/E;;AAEU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,qBAAqB,gDAAK;AAC1B,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iCAAiC,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB;AACjK,oCAAoC,+DAAwB,GAAG,4DAA4D,sWAAsW,aAAa,8BAA8B,aAAa,kEAA2B,6EAA6E,oBAAoB;AACrpB;AACA,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM;AACN;AACA;AACA,uBAAuB,MAAM,gDAAK,EAAE;AACpC,qBAAqB,MAAM,gDAAK,EAAE;AAClC,mBAAmB,MAAM,gDAAK,EAAE;AAChC,YAAY,MAAM,gDAAK,EAAE;AACzB,YAAY,MAAM,gDAAK,EAAE;AACzB,cAAc,MAAM,gDAAK,EAAE;AAC3B,cAAc,MAAM,gDAAK,EAAE;AAC3B,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,mBAAmB,MAAM,gDAAK,EAAE;AAChC,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,uBAAuB,MAAM,gDAAK,EAAE;AACpC,mBAAmB,MAAM,gDAAK,EAAE;AAChC,cAAc,MAAM,gDAAK,EAAE;AAC3B,iBAAiB,MAAM,gDAAK,EAAE;AAC9B,0BAA0B,MAAM,gDAAK,EAAE;AACvC,qBAAqB,MAAM,iDAAM,EAAE;AACnC;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,qBAAqB,IAAI,IAAI;AAC1F,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB,0BAA0B,yDAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qDAAqD;AACrD,iCAAiC,8DAAuB,GAAG,mBAAmB;AAC9E,iCAAiC,8DAAuB,GAAG;AAC3D,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,gBAAgB,2DAA2D,IAAI;;AAE1K;AACA;AACA;;AAEkG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpN/D;AACY;;AAEP;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAM;AAChC,gCAAgC,QAAQ;AACxC,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sBAAsB;AACpE;AACA;AACA,qDAAqD;AACrD,kCAAkC,0DAAmB,GAAG,gDAAgD;AACxG;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6CAA6C;AAC7C,8BAA8B,0DAAmB,GAAG,wCAAwC;AAC5F;AACA;AACA,6DAA6D;AAC7D,qCAAqC,8DAAuB,GAAG,uBAAuB;AACtF,qCAAqC,8DAAuB,GAAG;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6CAA6C;AAC7C,8BAA8B,0DAAmB,GAAG,wCAAwC;AAC5F;AACA;AACA,6DAA6D;AAC7D,qCAAqC,8DAAuB,GAAG,uBAAuB;AACtF,qCAAqC,8DAAuB,GAAG;;AAE/D;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,8BAA8B,0DAAmB,GAAG,wCAAwC;AAC5F;AACA;AACA,6DAA6D;AAC7D,qCAAqC,8DAAuB,GAAG,uBAAuB;AACtF,qCAAqC,8DAAuB,GAAG;;AAE/D;AACA;AACA,2EAA2E;AAC3E,4CAA4C,8DAAuB,GAAG,8BAA8B;AACpG,4CAA4C,8DAAuB,GAAG,uGAAuG;;AAE7K;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gCAAgC,0DAAmB,GAAG,4CAA4C;AAClG;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,0DAAmB,GAAG,gDAAgD;AACxG;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,0DAAmB,GAAG,gDAAgD;AACxG;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,8BAA8B,0DAAmB,GAAG,wCAAwC;AAC5F;AACA;AACA,6DAA6D;AAC7D,qCAAqC,8DAAuB,GAAG,uBAAuB;AACtF,qCAAqC,8DAAuB,GAAG;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gCAAgC,0DAAmB,GAAG,4CAA4C;AAClG;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,yCAAyC,0DAAmB,GAAG,8DAA8D;AAC7H;AACA;AACA,mFAAmF;AACnF,gDAAgD,8DAAuB,GAAG,kCAAkC;AAC5G,gDAAgD,8DAAuB,GAAG;;AAE1E;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gCAAgC,0DAAmB,GAAG,4CAA4C;AAClG;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iDAAiD;AACjD,gCAAgC,0DAAmB,GAAG,4CAA4C;AAClG;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,0DAAmB,GAAG,gDAAgD;AACxG;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,0DAAmB,GAAG,gDAAgD;AACxG;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG;;AAEnE;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gCAAgC,0DAAmB,GAAG,4CAA4C;AAClG;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gCAAgC,0DAAmB,GAAG,4CAA4C;AAClG;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,0DAAmB,GAAG,gDAAgD;AACxG;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+BAA+B,0DAAmB,GAAG,0CAA0C;AAC/F;AACA;AACA,+DAA+D;AAC/D,sCAAsC,8DAAuB,GAAG,wBAAwB;AACxF,sCAAsC,8DAAuB,GAAG;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iDAAiD;AACjD,gCAAgC,0DAAmB,GAAG,4CAA4C;AAClG;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,0DAAmB,GAAG,gDAAgD;AACxG;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,uCAAuC,0DAAmB,GAAG,0DAA0D;AACvH;AACA;AACA,+EAA+E;AAC/E,8CAA8C,8DAAuB,GAAG,gCAAgC;AACxG,8CAA8C,8DAAuB,GAAG;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,gCAAgC,0DAAmB,GAAG,4CAA4C;AAClG;AACA;AACA,iEAAiE;AACjE,uCAAuC,8DAAuB,GAAG,yBAAyB;AAC1F,uCAAuC,8DAAuB,GAAG;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oCAAoC,0DAAmB,GAAG,oDAAoD;AAC9G;AACA;AACA,yEAAyE;AACzE,2CAA2C,8DAAuB,GAAG,6BAA6B;AAClG,2CAA2C,8DAAuB,GAAG;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oCAAoC,0DAAmB,GAAG,oDAAoD;AAC9G;AACA;AACA,yEAAyE;AACzE,2CAA2C,8DAAuB,GAAG,6BAA6B;AAClG,2CAA2C,8DAAuB,GAAG;;AAErE;AACA;AACA,mEAAmE;AACnE,wCAAwC,8DAAuB,GAAG,0BAA0B;AAC5F,wCAAwC,8DAAuB,GAAG;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,kCAAkC,0DAAmB,GAAG,8CAA8C;AACtG;AACA;AACA,qEAAqE;AACrE,yCAAyC,8DAAuB,GAAG,2BAA2B;AAC9F,yCAAyC,8DAAuB,GAAG;;AAEnE;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,2CAA2C,0DAAmB,GAAG,gEAAgE;AACjI;AACA;AACA,uFAAuF;AACvF,kDAAkD,8DAAuB,GAAG,oCAAoC;AAChH,kDAAkD,8DAAuB,GAAG;;AAE5E;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,oCAAoC,0DAAmB,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AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAqB;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,eAAe,6DAAK;AACpB,2BAA2B,6DAAK;AAChC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAO;AAChB,iBAAiB,6DAAO;AACxB;AACA;AACA,mBAAmB,yDAAO,gBAAgB,gEAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6DAAO;AACxB,mBAAmB,6DAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA,6DAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qCAAqC,mEAAkB;AACvD,kEAAiB;AACjB;AACA;AACA;AACA,CAAC;AACD,6DAAY;AACZ;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,kEAAiB;AACjB;AACA,CAAC;AACD,6DAAY;AACZ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAQ;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,6DAAO;AACd;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY,gCAAgC;AAC3F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAQ;AACd;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAc,+CAA+C,6DAAI,YAAY,6DAAI;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,GAAG,cAAc,GAAG,wBAAwB;AACtE;AACA;AACA,SAAS,kCAAkC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0BAA0B;AACnC,qDAAqD;AACrD,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,WAAW,gCAAgC;AAC3C,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6DAAc;AAC7C,+BAA+B,6DAAc;AAC7C,+BAA+B,6DAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAQ;AAChB;AACA,MAAM;AACN;AACA,QAAQ,6DAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,6DAAO;AACjB;AACA,QAAQ,SAAS,6DAAQ;AACzB;AACA,QAAQ;AACR;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,gCAAgC;AAC3C;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA,wBAAwB,6DAAgB;AACxC,wBAAwB,6DAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,WAAW,8BAA8B;AACzC;AACA;AACA;AACA;AACA,cAAc,6DAAc;AAC5B;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA,UAAU,6DAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6DAAO;AACvD;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA,8BAA8B,kEAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,UAAU;AAC1D;AACA;AACA,wBAAwB,6DAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAO;AACf;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAa;AACnB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAO;AACb;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAkC;AAC3C;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,gCAAgC;AAC3C;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA,uCAAuC,6DAAgB;AACvD,6BAA6B,6DAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,+BAA+B,6DAAa,yBAAyB,kBAAkB;AACvF;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc,iBAAiB,YAAY,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6DAAI,YAAY,6DAAI;AAC7C;AACA;AACA;AACA;AACA,wBAAwB,6DAAa;AACrC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6DAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,0BAA0B,6DAAc;AACxC;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,0BAA0B,6DAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yDAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6DAAa;AAClD,qCAAqC,6DAAa;AAClD;AACA,yBAAyB,yDAAO;AAChC,yBAAyB,yDAAE;AAC3B,yBAAyB,yDAAE,GAAG,yDAAO;AACrC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,UAAU,6DAAQ;AAClB,eAAe,eAAe;AAC9B,yBAAyB,6DAAgB;AACzC;AACA;AACA,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAS;AACpB;AACA;AACA,WAAW,6DAAS;AACpB;AACA;AACA,cAAc,yDAAG;AACjB,eAAe,yDAAG;AAClB,oBAAoB,qCAAqC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA,4BAA4B,6DAAY;AACxC;AACA,WAAW,yBAAyB;AACpC,WAAW,kCAAkC;AAC7C;AACA;AACA;AACA,wBAAwB,6DAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,yDAAG;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6DAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,6DAAO;AACrB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4CAA4C;AACvD;AACA,SAAS,cAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,yBAAyB,6DAAQ;AACjC;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA,uBAAuB,6DAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,WAAW,kCAAkC;AAC7C;AACA,cAAc,6DAAW;AACzB,QAAQ,6DAAY;AACpB,0CAA0C,6DAAY;AACtD;AACA;AACA;AACA,cAAc,6DAAW;AACzB,QAAQ,6DAAY;AACpB,iCAAiC,6DAAY;AAC7C;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,8BAA8B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yDAAE;AAC/D;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,QAAQ,6DAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAqB;AAC9B;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD,MAAM,aAAa;AACnB,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2BAA2B;AACpC;AACA;AACA,iDAAiD,yDAAa,GAAG,yDAAY;AAC7E;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,6DAAc;AACrB;AACA;AACA;AACA;AACA,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,OAAO,EAAE,6DAAiB,WAAW,6BAA6B;AAC7E,QAAQ,6DAAa;AACrB,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAc;AACtC;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA,MAAM;AACN,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,6DAAc;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yCAAyC;AAClE;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,sBAAsB,yCAAyC;AAC/D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qCAAqC,wCAAwC;AAC7E,KAAK;AACL;AACA,qCAAqC,wCAAwC;AAC7E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA,MAAM,yBAAyB,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA,sDAAsD,wCAAwC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAA6B;AACtC;AACA,qCAAqC,UAAU;AAC/C;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB;AACA,OAAO,6DAAQ;AACf;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,UAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM;AACb;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,UAAU,6DAAO;AACjB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,UAAU,6DAAO;AACjB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,oBAAoB,6DAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uCAAuC;AACvC,iCAAiC,6DAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA;AACA,4CAA4C,qCAAqC;AACjF,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6DAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,4BAA4B,6DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yDAA4B,IAAI,eAAe;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM,EAAE,6DAAqB;AACtC;AACA;AACA;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,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6DAAc;AAC5C;AACA;AACA;AACA,iBAAiB,6DAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6DAAS;AACzB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,6DAAa;AACvB;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAc;AACzB;AACA;AACA,sBAAsB,6DAAc;AACpC;AACA;AACA;;AAEA;AACA,OAAO,6DAAe;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA,WAAW,6DAAQ,YAAY,6DAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,6DAAO;AAClB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAK;AAC1B;AACA,qBAAqB;AACrB;AACA,WAAW,6DAAY;AACvB,GAAG;AACH;AACA;AACA;AACA;AACA,wDAAwD,6DAAK;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb,6DAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+DAAc;AACd,+DAAc;AACd,+DAAc;AACd,+DAAc;AACd,kEAAiB;AACjB;AACA;AACA;AACA,CAAC;AACD,kEAAiB;AACjB;AACA,CAAC;AACD,kEAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6DAAa;AAChD,4CAA4C,UAAU;AACtD;AACA;AACA,yCAAyC,6DAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAU;AAC5B,6CAA6C,UAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6DAAc;AAC9B,uBAAuB,6DAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,6DAAI;AACN;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAM;AACrB,kBAAkB,6DAAS;AAC3B,gBAAgB,6DAAO;AACvB;AACA;AACA;AACA,SAAS,6DAAa;AACtB;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,6DAAa;AACtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,YAAY,6DAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iCAAiC;AAC1C,SAAS,mBAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAc;AAC3B,QAAQ,6DAAQ;AAChB;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ,QAAQ,6DAAQ;AAChB;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,aAAa,8DAAc;AAC3B,sCAAsC,yDAAO,GAAG,yDAAO;AACvD;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kDAAkD;AAC3D,eAAe,6DAAe;AAC9B,eAAe,6DAAe;AAC9B,oBAAoB,6DAAe;AACnC,oBAAoB,6DAAe;AACnC;AACA,WAAW,6DAAe;AAC1B,WAAW,6DAAe;AAC1B,kBAAkB,6DAAc;AAChC,kBAAkB,6DAAc;AAChC;AACA;AACA;AACA,SAAS,kCAAkC;AAC3C;AACA;AACA,cAAc;AACd;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAe,MAAM,6DAAe;AAC/C,WAAW,6DAAe,MAAM,6DAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA,WAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6DAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA,mBAAmB,6DAAQ;AAC3B;AACA;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6DAAS;AAC/B,kBAAkB,6DAAW;AAC7B,kBAAkB,6DAAW,mDAAmD,6DAAW;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB,oDAAoD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;AACA,6BAA6B,6DAAS;AACtC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ,eAAe,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAQ;AACZ;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C,UAAU,6DAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA,WAAW,6DAAa,YAAY,6DAAO;AAC3C,gBAAgB,6DAAY;AAC5B;AACA,QAAQ,SAAS,6DAAO;AACxB,yCAAyC,UAAU;AACnD;AACA,eAAe,6DAAa,kBAAkB,6DAAO;AACrD,oBAAoB,6DAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mDAAmD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAW,uBAAuB,6DAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6DAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6DAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ,SAAS,6DAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ,SAAS,6DAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAc;AAChC;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6DAAW;AACpC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8BAA8B;AACzC;AACA;AACA,WAAW,oCAAoC;AAC/C;AACA;AACA;AACA,sBAAsB,6DAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ,SAAS,6DAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ,SAAS,6DAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,sBAAsB,6DAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,MAAM;AACN,cAAc;AACd;AACA;AACA;AACA,WAAW,eAAe,gBAAgB,4BAA4B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA,aAAa,uBAAuB;AACpC,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;AACA,aAAa,yBAAyB;AACtC,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAW;AACtB,WAAW,6DAAW;AACtB;AACA,MAAM;AACN,WAAW,6DAAW;AACtB,WAAW,6DAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAQ;AACd;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAU;AAChB;AACA;AACA,MAAM,6DAAU;AAChB;AACA;AACA;AACA,WAAW,eAAe,2BAA2B;AACrD;AACA;AACA;AACA,iBAAiB,6DAAM;AACvB,oBAAoB,6DAAS;AAC7B;AACA;AACA,0DAA0D,6DAAQ;AAClE;AACA,UAAU,6DAAO;AACjB;AACA;AACA,MAAM;AACN;AACA;AACA,WAAW,oCAAoC;AAC/C,IAAI,6DAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAM;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kEAAiB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yDAAQ;AAC/B,aAAa,yDAAQ;AACrB;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,uBAAuB,8DAAK;AAC5B,kBAAkB,6DAAY,kBAAkB;AAChD,IAAI,6DAAY;AAChB;AACA;AACA,EAAE,6DAAY;AACd;AACA;AACA;AACA;AACA,IAAI,kEAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+DAAc;AAClB,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,QAAQ,6DAAI;AACZ;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,wBAAwB,8DAAW;AACnC,IAAI,6DAAQ;AACZ;AACA,IAAI,6DAAQ;AACZ;AACA;AACA,oBAAoB,kCAAkC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,6DAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6DAAc,6CAA6C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,mDAAmD;AAC1G;;AAEA;AACA,0BAA0B,kEAAiB;AAC3C,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAS,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAQ;AACjB,qEAAqE,GAAG;AACxE;AACA;AACA,4EAA4E,GAAG;AAC/E;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAO,wBAAwB,KAAK;AACrD,GAAG;AACH;AACA;AACA;AACA,4BAA4B,0DAAS;AACrC;AACA;AACA;AACA;AACA;AACA,MAAM,8DAAO,eAAe,KAAK;AACjC,KAAK;AACL,GAAG;AACH;AACA;AACA,IAAI,8DAAO,SAAS,gEAAe,cAAc,+DAAc;AAC/D,GAAG;AACH;AACA;AACA;AACA,wDAAwD;AACxD,oBAAoB,6DAAc,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA,yBAAyB,YAAY,cAAc,WAAW;AAC9D;AACA;AACA,sBAAsB,YAAY,eAAe,WAAW;AAC5D,yBAAyB,WAAW;AACpC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY,GAAG,YAAY;AACpD;AACA,oBAAoB,YAAY,YAAY,YAAY;AACxD,oBAAoB,YAAY;AAChC,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK,UAAU,GAAG;AAC3C;AACA,mBAAmB,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0DAAS,YAAY;AAClE,6CAA6C,yDAAQ;AACrD,6CAA6C,0DAAW;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B;AACA;AACA,MAAM,0DAAS,YAAY;AAC3B,MAAM,kEAAiB,YAAY;AACnC,OAAO,KAAK;AACZ,MAAM,yDAAQ;AACd,MAAM,0DAAW;AACjB;AACA;AACA;AACA,oBAAoB;AACpB,WAAW,uBAAuB;AAClC;AACA;AACA;AACA,gBAAgB,8DAAU;AAC1B;AACA,gBAAgB,8DAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,6DAAQ;AACnB,QAAQ,8DAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8DAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAAQ;AACrC,mEAAmE,8DAAU;AAC7E;AACA,SAAS,2BAA2B,EAAE,8DAAY;AAClD;AACA;AACA;AACA;AACA,wBAAwB,8DAAU;AAClC,uBAAuB,6DAAO;AAC9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,6DAAQ;AACV;AACA;AACA;AACA;AACA,EAAE,6DAAQ;AACV;AACA;AACA,MAAM,6DAAe;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8DAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8DAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU,iCAAiC,+BAA+B;AACrF,SAAS,6DAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,MAAM,8DAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,8DAAW;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAW;AACpB;AACA;AACA,kCAAkC,cAAc;AAChD,IAAI,6DAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,IAAI,6DAAI;AACR;AACA;AACA;AACA,wBAAwB,6DAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL,IAAI,6DAAI;AACR;AACA;AACA;AACA,KAAK;AACL,IAAI,6DAAI;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4BAA4B,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,eAAe,qCAAqC,EAAE,kEAAiB;AACvE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAuB;AACnE;AACA;AACA;AACA;AACA;AACA,sDAAsD,UAAU;AAChE,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAI;AACV;AACA,OAAO;AACP;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA,WAAW,qBAAqB;AAChC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAS;AAClB;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,WAAW,8DAAS;AACpB;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oDAAoD,uBAAuB;AAC3E;AACA;AACA,sDAAsD,UAAU;AAChE;AACA;AACA,sDAAsD,UAAU;AAChE,6BAA6B,8DAAU,eAAe,gBAAgB;AACtE;AACA,+CAA+C,KAAK;AACpD;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iBAAiB;AACnE;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAQ;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,MAAM,6DAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,6DAAa,QAAQ,2BAA2B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAO;AACf;AACA;AACA,MAAM;AACN;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,UAAU;AAC5D;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,MAAM,8DAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA,KAAK;AACL;AACA,IAAI,6DAAI;AACR;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,8DAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6DAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C;AACA;AACA,oBAAoB,8DAAa;AACjC;AACA;AACA;AACA,MAAM,6DAAQ;AACd;AACA,QAAQ,6DAAQ;AAChB;AACA;AACA,qBAAqB,8DAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAI;AACpC;AACA;AACA;AACA;AACA,WAAW,yDAAQ;AACnB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,WAAW,0DAAS;AACpB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,SAAS,yDAAyD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,0CAA0C,yDAAO,eAAe,yDAAO;AACvE;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAW;AACtB;AACA;AACA;AACA;AACA,gBAAgB,6DAAW;AAC3B,cAAc,6DAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2DAA2D;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,yDAAE;AAChE;AACA;AACA;AACA,SAAS,4CAA4C;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,yDAAO;AACrF;AACA;AACA;AACA;AACA;AACA,uDAAuD,yDAAO;AAC9D;AACA;AACA;AACA;AACA,8FAA8F,yDAAO;AACrG;AACA;AACA;AACA;AACA;AACA,2DAA2D,yDAAO;AAClE;AACA;AACA;AACA;AACA,SAAS,wCAAwC;AACjD;AACA;AACA,wDAAwD,yDAAG;AAC3D,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA,8CAA8C,yDAAG;AACjD,0BAA0B,yDAAG;AAC7B,oBAAoB,yDAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAA4C;AACrD;AACA;AACA;AACA;AACA,uCAAuC,yDAAG;AAC1C;AACA;AACA,0CAA0C,yDAAG;AAC7C,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,sDAAsD,yDAAG;AACzD,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB,SAAS,8BAA8B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB,EAAE,6DAAiB,SAAS,qBAAqB;AAC7E,WAAW,+DAA+D;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6DAAc;AACzC,4CAA4C,yDAAG,IAAI,6DAAa;AAChE,yBAAyB,8DAAU;AACnC;AACA;AACA;AACA,WAAW,sDAAsD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA,uCAAuC,yDAAG,8BAA8B,yDAAG;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yDAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,6DAAc;AAC9B,kBAAkB,6DAAc;AAChC,uBAAuB,6DAAc;AACrC,iBAAiB,6DAAc;AAC/B,kBAAkB,6DAAc;AAChC,oBAAoB,6DAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0DAAc;AACzB;AACA;AACA,WAAW,0DAAc;AACzB;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,SAAS,oDAAoD;AAC7D,SAAS,sCAAsC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB;AAC1B,SAAS,0BAA0B;AACnC;AACA,OAAO,sBAAsB;AAC7B;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0DAAqB;AAChC;AACA;AACA,WAAW,0DAAoB;AAC/B;AACA,SAAS,0DAAY;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB;AAC5B;AACA;AACA;AACA;AACA,2CAA2C,8BAA8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8DAA0B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8DAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8DAAc,QAAQ,mCAAmC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8BAA8B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,eAAe;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6DAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,IAAI,8DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,2BAA2B;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,oBAAoB,6DAAW;AAC/B;AACA;AACA;AACA;AACA,YAAY,8DAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA,YAAY,8DAAa;AACzB;AACA;AACA,6CAA6C,6DAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAU;AACzB,eAAe,8DAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB,+BAA+B;AACnE,WAAW,cAAc;AACzB,kDAAkD,0DAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,WAAW,6DAAa,eAAe,6DAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAY;AACxD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB,SAAS,kCAAkC;AAC3C;AACA,YAAY,6DAAW,CAAC,6DAAY;AACpC;AACA;AACA,YAAY,6DAAW,CAAC,6DAAY;AACpC,IAAI;AACJ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA,UAAU,6DAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA,UAAU,6DAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kBAAkB;AAC/E;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6DAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAQ;AACd;AACA;AACA;AACA,MAAM,6DAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,QAAQ;AAC3B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI,SAAS,6DAAQ;AACrB;AACA,IAAI;AACJ;AACA;AACA,MAAM,6DAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,wBAAwB,eAAe,yDAAG;AAC1C;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI,SAAS,6DAAQ;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,aAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC,mBAAmB,aAAa;AAChC,MAAM;AACN,mBAAmB,cAAc;AACjC,mBAAmB,aAAa;AAChC;AACA,GAAG;AACH;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA;AACA;AACA;AACA,sCAAsC,yBAAyB;AAC/D,kBAAkB,qBAAqB;AACvC;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA,WAAW,oBAAoB;AAC/B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA,QAAQ,8DAAU;AAClB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,mBAAmB;AAC5B,MAAM,6DAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAO;AACb;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAe;AAC3B,UAAU,8DAAe;AACzB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,2BAA2B,8DAAc;AACzC;AACA;AACA,0BAA0B,8DAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAsC;AAC/C;AACA,cAAc,sCAAsC;AACpD,WAAW,QAAQ,yBAAyB,MAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,yDAAyD,8BAA8B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yCAAyC;AAClD;AACA;AACA;AACA;AACA,gBAAgB,4CAA4C;AAC5D;AACA;AACA;AACA;AACA,cAAc,4CAA4C;AAC1D;AACA;AACA;AACA;AACA,SAAS,mBAAmB;AAC5B;AACA;AACA;AACA,SAAS,8BAA8B;AACvC;AACA,IAAI,6DAAQ;AACZ,iBAAiB,8CAA8C;AAC/D,IAAI,6DAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,2CAA2C;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6DAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA,sBAAsB,6DAAM;AAC5B;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB,SAAS,WAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,0BAA0B,SAAS,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iDAAiD;AAC3E;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,KAAK;AACL;AACA,sBAAsB,iDAAiD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oCAAoC,gBAAgB,QAAQ,QAAQ;AAC/E,sBAAsB,8DAAa;AACnC;AACA;AACA,iBAAiB,8DAAc;AAC/B;AACA;AACA;AACA,iBAAiB,8DAAc;AAC/B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,gBAAgB,8DAAc;AAC9B;AACA;AACA;AACA,gBAAgB,8DAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAQ;AACd;AACA,MAAM,6DAAU;AAChB;AACA;AACA;AACA,WAAW,6CAA6C;AACxD,WAAW,0BAA0B;AACrC,yBAAyB,+DAAc;AACvC,sBAAsB,8DAAa;AACnC,sBAAsB,6DAAM;AAC5B,WAAW,2BAA2B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAc;AACtC,sBAAsB,6DAAc;AACpC,oBAAoB,6DAAc;AAClC,2BAA2B,6DAAc;AACzC,qBAAqB,6DAAc;AACnC;AACA,wBAAwB,6DAAc;AACtC,sBAAsB,6DAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAS;AACjB,QAAQ;AACR;AACA;AACA,6BAA6B,8DAAa;AAC1C;AACA;AACA,UAAU,8DAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAU;AAChB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,8DAAc;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,WAAW,8DAAc;AACzB;AACA;AACA;AACA,IAAI,8DAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAc;AACvC;AACA,QAAQ;AACR;AACA;AACA,uBAAuB,8DAAc;AACrC;AACA;AACA;AACA,UAAU,8DAAM;AAChB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,IAAI,8DAAoB;AACxB;AACA;AACA;AACA;AACA,sBAAsB,6DAAM;AAC5B,yBAAyB,6DAAS;AAClC;AACA;AACA;AACA,sBAAsB,8DAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAc;AAC3B,MAAM;AACN;AACA,uCAAuC,8DAAc;AACrD;AACA,cAAc,8DAAc;AAC5B,wCAAwC,6DAAkB;AAC1D;AACA;AACA;AACA;AACA,IAAI,6DAAU;AACd;AACA;AACA;AACA,sBAAsB,6DAAM;AAC5B,yBAAyB,6DAAS;AAClC;AACA;AACA;AACA;AACA,QAAQ,8DAAU;AAClB,SAAS,8DAAU;AACnB;AACA,kBAAkB,eAAe;AACjC;AACA,YAAY,8DAAU;AACtB,aAAa,8DAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAQ;AAChB;AACA;AACA;AACA,QAAQ,6DAAQ;AAChB;AACA,MAAM;AACN,MAAM,6DAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+BAA+B;AAC7E;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS,8CAA8C;AACtE;AACA;AACA,8BAA8B,6DAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6DAAO;AAC7B,oBAAoB,6DAAS;AAC7B,iCAAiC,6DAAM;AACvC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C;AACA;AACA;AACA;AACA,eAAe,8DAAc;AAC7B;AACA;AACA,MAAM;AACN;AACA;AACA,iBAAiB,8DAAc;AAC/B,mBAAmB,yDAAE;AACrB,QAAQ;AACR;AACA,iBAAiB,8DAAc;AAC/B,mBAAmB,yDAAE;AACrB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAM;AAC3B;AACA;AACA,WAAW,oCAAoC;AAC/C,IAAI,6DAAU;AACd;AACA;AACA;AACA,iBAAiB,6DAAkB;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA,kBAAkB,8DAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAO;AACf;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8BAA8B;AACvC;AACA,SAAS,cAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,mBAAmB,6DAAM;AACzB,oBAAoB,6DAAM;AAC1B,qBAAqB,6DAAM;AAC3B;AACA;AACA;AACA,kBAAkB,6DAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,6DAAI;AACN;AACA,EAAE,6DAAI;AACN;AACA,EAAE,6DAAI;AACN,IAAI,6DAAI;AACR,IAAI,6DAAI;AACR,IAAI,6DAAI;AACR,GAAG;AACH;AACA;AACA,EAAE,6DAAI;AACN;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,WAAW;AACpB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB,SAAS,+BAA+B,cAAc;AACtD;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,UAAU;AACjB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,OAAO,WAAW;AAClB;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,uCAAuC;AAChD,SAAS,gBAAgB;AACzB;AACA,SAAS,4CAA4C,EAAE,8DAAa;AACpE;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,OAAO,6DAAW;AAClB,OAAO,6DAAW;AAClB;AACA;AACA;AACA,kBAAkB,6DAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAa;AACtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA,IAAI,6DAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,yBAAyB;AACpC,WAAW,4CAA4C,EAAE,8DAAa;AACtE,WAAW,gBAAgB;AAC3B,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAa;AACrC;AACA;AACA;AACA,kBAAkB,6DAAM;AACxB;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,qBAAqB,6DAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8DAAS;AACf;AACA;AACA,MAAM,8DAAS;AACf,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8DAAa;AACxC;AACA;AACA;AACA,QAAQ,8DAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,8DAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,wEAAwE;AACnF,qBAAqB,6DAAM;AAC3B;AACA;AACA,sBAAsB,8DAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA,MAAM,6DAAI;AACV;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA,MAAM,6DAAI;AACV;AACA;AACA;AACA,IAAI,6DAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAa;AACrC;AACA;AACA;AACA;AACA,mBAAmB,6DAAM;AACzB;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B,WAAW,4CAA4C,EAAE,8DAAa;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6DAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,MAAM,8DAAqB;AAC3B;AACA;AACA;AACA;AACA,MAAM,8DAAoB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,8DAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8DAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB,0DAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,OAAO;AACP,kBAAkB,0DAAI;AACtB,kBAAkB,0DAAI;AACtB,mBAAmB,0DAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6DAAa;AAC1B;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,kBAAkB,0DAAI;AACtB,iBAAiB,0DAAI;AACrB,oBAAoB,0DAAI;AACxB,cAAc,0DAAI;AAClB,mBAAmB,0DAAI;AACvB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,6DAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAa;AACrB;AACA;AACA;AACA;AACA,oCAAoC,6DAAc;AAClD;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,8EAA8E;AACvF;AACA;AACA,SAAS,sBAAsB;AAC/B,sBAAsB,6DAAa;AACnC,sBAAsB,6DAAa;AACnC,wBAAwB,6DAAa;AACrC;AACA,gBAAgB,8DAAO;AACvB;AACA;AACA,aAAa,YAAY,GAAG,YAAY;AACxC;AACA;AACA;AACA,cAAc,8DAAO;AACrB;AACA,OAAO,6DAAa;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,0CAA0C,8DAAW;AACrD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,QAAQ,8DAAY;AACpB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI,8DAAc;AAClB,IAAI,8DAAc;AAClB;AACA,wBAAwB,6DAAa;AACrC;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA,UAAU,8DAAY;AACtB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,SAAS,eAAe;AACxB,gBAAgB,6DAA6D;AAC7E;AACA;AACA,wBAAwB,8DAAY;AACpC;AACA,MAAM;AACN,kBAAkB,WAAW;AAC7B;AACA,IAAI;AACJ,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE,cAAc,6DAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,wBAAwB;AACnC,SAAS,UAAU;AACnB;AACA;AACA;AACA,sBAAsB,6DAAI;AAC1B,sBAAsB,6DAAI;AAC1B;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,mBAAmB,UAAU,gCAAgC,UAAU;AAC9G;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8DAAkB;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAY;AACvB;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,eAAe,6DAAc;AAC7B,eAAe,6DAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oDAAoD,6DAAK;AACzD;AACA;AACA;AACA,4BAA4B,6DAAK;AACjC;AACA;AACA,gBAAgB,6DAAe,gDAAgD,6DAAK;AACpF,uBAAuB,6DAAK;AAC5B;AACA;AACA;AACA,gBAAgB,wCAAwC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,mBAAmB,6DAAe;AAClC,cAAc,yCAAyC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAc;AACzB;AACA;AACA,WAAW,UAAU;AACrB,eAAe,6DAAc;AAC7B,eAAe,6DAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA,kDAAkD,6DAAK;AACvD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8DAAkB;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAY;AACpB;AACA;AACA;AACA;AACA,uBAAuB,6DAAK;AAC5B,uBAAuB,6DAAK,aAAa,6DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,6DAAS;AAC7B,WAAW,6DAAc,sCAAsC,mEAAkB;AACjF;AACA;AACA;AACA;AACA,UAAU,6DAAO;AACjB;AACA,OAAO,8DAAY;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,6DAA6D,yDAAE;AAC/D,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,mBAAmB,6DAAM;AACzB;AACA;AACA,yBAAyB,8DAAe;AACxC,6BAA6B,6DAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,yDAAE;AACjE,kBAAkB,gBAAgB;AAClC;AACA,6BAA6B,6DAAS,CAAC,8DAAe,4BAA4B,yDAAO;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,cAAc;AACtC,+BAA+B,QAAQ;AACvC;AACA,mBAAmB,6DAAM;AACzB,WAAW,2CAA2C;AACtD,WAAW,eAAe;AAC1B,SAAS,6DAAa;AACtB,sBAAsB,6DAAS;AAC/B;AACA;AACA;AACA,IAAI,6DAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK;AACd;AACA,qDAAqD,yDAAG;AACxD,IAAI;AACJ;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAa;AACtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6DAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,eAAe,6DAAc;AAC7B,eAAe,6DAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6DAAQ;AAC9B;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yDAAG;AAC/B;AACA,WAAW,8DAAe,2BAA2B,6DAAS;AAC9D;AACA;AACA,QAAQ,6DAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yDAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAM;AAC7B;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAU;AAChB;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mCAAmC;AACnD,WAAW,oCAAoC;AAC/C,WAAW,qCAAqC;AAChD,SAAS,uCAAuC;AAChD,QAAQ,wCAAwC;AAChD,SAAS,yCAAyC;AAClD,UAAU,uCAAuC;AACjD,YAAY,uCAAuC;AACnD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAa;AACnB;AACA;AACA;AACA,SAAS,2BAA2B;AACpC;AACA;AACA;AACA;AACA,OAAO,6DAAc;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6DAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,WAAW,QAAQ,EAAE,8DAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,IAAI,8DAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAkC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,6DAAc;AACxB,UAAU,6DAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8DAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,YAAY,6DAAW;AACvB,UAAU,6DAAW;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAc;AACnC;AACA,uBAAuB,6DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAQ;AAC/B;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAY;AACvB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ,EAAE,6DAAY;AAC9B;AACA,MAAM,mCAAmC;AACzC,MAAM,mCAAmC;AACzC,IAAI;AACJ;AACA,QAAQ,QAAQ,EAAE,6DAAY;AAC9B;AACA,MAAM,mCAAmC;AACzC,MAAM,mCAAmC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB;AAC3B,SAAS;AACT;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEosB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/2UpsB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,MAAM;AACN,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS;AAC9C,YAAY,IAAI,IAAI,IAAI,IAAI,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,SAAS;AACzC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA,MAAM;AACN,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAoB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6CAA6C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sCAAsC,sCAAsC;AAC5E;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yCAAyC,kCAAkC;AAC3E,SAAS,iGAAiG;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wDAAwD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qCAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wDAAwD;AACjE;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,UAAU;AACnC,yBAAyB,UAAU;AACnC;AACA;AACA;AACA,yBAAyB,UAAU;AACnC,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,iCAAiC;AAC1C;AACA;AACA;AACA;AACA,SAAS,WAAW;AACpB;AACA;AACA,OAAO,eAAe;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAA4C;AACrD,SAAS,oBAAoB;AAC7B;AACA,OAAO,kBAAkB;AACzB;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,SAAS,4CAA4C;AACrD;AACA,SAAS,6BAA6B;AACtC,SAAS,yBAAyB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4CAA4C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8CAA8C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY;AACrB;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,uCAAuC,WAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qDAAqD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4tE;;;;;;;;;;;ACt8E5tE,+GAAe,GAAG,IAAqC,CAAC,iCAAO,EAAE,oCAAC,CAAC;AAAA;AAAA;AAAA,kGAAC,CAAC,KAAK,EAA6E,CAAC,kBAAkB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K,iBAAiB,aAAa,YAAY,sBAAsB,mDAAmD,UAAU,GAAG;;;;;;;;;;;ACA74Y;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,sBAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,sBAAsB;;AAEvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uHAAuH,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AAClN,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,YAAY;AACvD;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA,2BAA2B,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACzK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,2BAAe,IAAW,OAAO,CAAC;AAClD;AACA,cAAc;AACd;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C,EAAE,IAAI,EAAE;AACnD,wCAAwC,EAAE,IAAI,EAAE;AAChD;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,mCAAmC,iBAAiB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACriLD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA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J;EAAA,QAAAiD,SAAA,oBAAAA,SAAA,KA7UiG1D,+DAAE,CA6UR2N,cAAc,EAAc,CAAC;IAC5GpP,IAAI,EAAEgC,mDAAQ;IACdqD,IAAI,EAAE,CAAC;MACCqK,OAAO,EAAE,CAACxN,yDAAY,CAAC;MACvByN,YAAY,EAAE,CAACrJ,QAAQ,EAAE3B,cAAc,EAAEY,eAAe,EAAEE,aAAa,EAAEE,aAAa,CAAC;MACvF3L,OAAO,EAAE,CAACsM,QAAQ,EAAE3B,cAAc,EAAEY,eAAe,EAAEE,aAAa,EAAEE,aAAa;IACrF,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACnXqG;AAChE;AACqC;;AAE1E;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACwC;AACxC;AACA,eAAe,GAAG;AAClB;AACA,eAAe,GAAG;AAClB;AACA;AACA,mBAAmB,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA,kDAAkD,0BAA0B;AAC5E;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA,0BAA0B,qBAAqB;AAC/C,yCAAyC,gDAAgD;AACzF;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA,yCAAyC,eAAe,WAAW;AACnE;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,YAAY,4BAA4B;AACxC,YAAY,mCAAmC;AAC/C;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA,eAAe,GAAG;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA,eAAe,GAAG;AAClB;AACA,eAAe,GAAG;AAClB;AACA,aAAa;AACb;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA,mCAAmC,2BAA2B;AAC9D,YAAY,mCAAmC;AAC/C;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB;AACA,eAAe,GAAG;AAClB;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;;AAEA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;;AAEA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;;AAEA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;;AAEA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;;AAEA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,YAAY,mDAAmD;AAC/D,eAAe,GAAG;AAClB;AACA;AACA;AACA,KAAK;AACL,eAAe,GAAG;AAClB;AACA;AACA,KAAK;AACL,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA,2CAA2C,wDAAQ;AACnD,gBAAgB;AAChB;AACA,UAAU,wCAAE,wCAAwC,mDAAG;AACvD,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,0GAA0G,mDAAG;AAC7G,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,OAAO,OAAO,sEAAsE,sDAAM;AAC1F,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,OAAO,2BAA2B,iBAAiB,mHAAmH,mDAAG;AACzK,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,OAAO,qBAAqB,iBAAiB;AAC7C;AACA,KAAK,IAAI,mDAAG;AACZ;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,GAAG;AAClB,cAAc,+CAAS;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAY;AACnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,YAAY,qBAAqB,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA,4BAA4B,uDAAY;AACxC,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,kBAAkB,yEAAyE;AAC3F,mBAAmB,GAAG;AACtB;AACA,mBAAmB,GAAG;AACtB;AACA,mBAAmB,GAAG;AACtB;AACA,mBAAmB,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,2BAA2B,GAAG;AAC9B,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0CAA0C,+DAAwB,CAAC,qDAAiB,GAAG,+DAAwB,CAAC,iDAAa;AAC1M,6CAA6C,+DAAwB,GAAG,iJAAiJ,kZAAkZ,aAAa,gDAAgD,aAAa,kEAA2B,GAAG;AACntB;AACA;AACA,MAAM,MAAM,qDAAU,EAAE;AACxB,MAAM,MAAM,iDAAM;AAClB;AACA;AACA,iBAAiB,MAAM,iDAAM,EAAE;AAC/B,mBAAmB,MAAM,iDAAM,EAAE;AACjC,+BAA+B,MAAM,gDAAK,EAAE;AAC5C,iCAAiC,MAAM,gDAAK,EAAE;AAC9C,+BAA+B,MAAM,gDAAK,EAAE;AAC5C,+BAA+B,MAAM,gDAAK,EAAE;AAC5C,gCAAgC,MAAM,gDAAK,EAAE;AAC7C,qBAAqB,MAAM,gDAAK,EAAE;AAClC,uBAAuB,MAAM,gDAAK,EAAE;AACpC,mBAAmB,MAAM,gDAAK,EAAE;AAChC,uBAAuB,MAAM,gDAAK,EAAE;AACpC,iBAAiB,MAAM,gDAAK,EAAE;AAC9B;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,qDAAiB,EAAE,IAAI,MAAM,iDAAa,EAAE,IAAI,IAAI;AAC1F,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,iDAAM;AACxB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA;AACA,uEAAuE;AACvE,0CAA0C,8DAAuB,GAAG,4BAA4B;AAChG,0CAA0C,8DAAuB,GAAG,8BAA8B;AAClG,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,yBAAyB,6EAA6E,IAAI;;AAErM;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,wHAAwH;AACtI;AACA;AACA;AACA;;AAEyD;;;;;;;;;;;;;AC9zB5C;;AAEb;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;;;;;;;;;;;;ACrHA;;AAEb;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACrCoC;AAC7B,8BAA8B,6CAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzBO;AACA;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACb0D;AACV;AACsB;AAC1B;AACV;AACa;AACI;AAC5C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,uDAAc;AAC7F,QAAQ,gEAAY;AACpB,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uDAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK,0DAAiB;AACtB;AACA;AACA;AACA,eAAe,yDAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,mDAAc;AAC9F;AACA;AACA,oBAAoB,4DAAU,gBAAgB,4DAAU,iBAAiB,4DAAU;AACnF;AACA;AACA,sCAAsC,mDAAU,2BAA2B,6DAAc;AACzF;;;;;;;;;;;;;;;;;;AC3FoC;AACsC;AACnE,4BAA4B,6CAAO;AAC1C,qFAAqF,mFAAqB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2EAA2E;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAgE;AAChF;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChD0E;AACnE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uFAAyB;;;;;;;;;;;;;;;;;;;;;;ACVC;AACwB;AACO;AAC5B;AACM;AAC5C,sBAAsB,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA,QAAQ,gEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,gEAAY;AACpB;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,gEAAY;AACpB;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA,cAAc,6DAAkB;AAChC,+CAA+C,uDAAY,OAAO,0DAAS;AAC3E;AACA;AACA,gBAAgB,mCAAmC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wIAAwI,6DAAkB;AAC1J;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC3H+C;AACe;AAC5B;AACiC;AAChC;AACkE;AACvC;AACX;AAC5C,yBAAyB,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA,gBAAgB,6DAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wEAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yEAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yEAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA,eAAe,wBAAwB;AACvC;AACA,wBAAwB,oEAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4CAAI;AAChE;AACA,wEAAwE,4CAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAA4C;AAC5D,gBAAgB,gEAAY;AAC5B;AACA;AACA,gBAAgB,gFAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAwB,EAAE,2CAAM;AAC5C,6BAA6B,kFAA0B;AACvD;AACO;AACP;AACA,UAAU,4CAAI;AACd;AACA,cAAc,4CAAI;AAClB;;;;;;;;;;;;;;;;;;;;;ACrI+C;AACkB;AACpB;AACtC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,gBAAgB,4DAAU;AAC1B;AACA;AACA;AACA;AACA,0CAA0C,0EAAmB;AAC7D;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0EAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0EAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,YAAY,0DAAS;AACrB;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,sBAAsB,0DAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACA;AACP;AACA,uCAAuC,4DAAU,kBAAkB,4DAAU,eAAe,4DAAU;AACtG;AACA;AACA,QAAQ,4DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrHO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACN2C;AACI;AACyB;AACH;AAC9B;AAChC,oCAAoC,mDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mDAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uDAAY;AAC5D;AACA,qDAAqD,6EAAkB;AACvE;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,6BAA6B,6DAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAmB;AAClC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACvD2C;AACyB;AACtC;AACc;AACgB;AACG;AACX;AACiB;AACX;AACnD;AACP,sBAAsB,wDAAY;AAClC,2BAA2B,6DAAiB;AAC5C,YAAY,0BAA0B,EAAE,gFAAoB;AAC5D;AACA,eAAe,2CAAI;AACnB;AACA,uBAAuB,mDAAU;AACjC;AACA,wBAAwB,gEAAY;AACpC;AACA,YAAY,oDAAQ;AACpB,wCAAwC,wEAAgB;AACxD;AACO,oEAAoE,oDAAQ;AACnF;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA,mCAAmC,2CAAI;AACvC;AACA,yCAAyC,6EAAkB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,sEAAe;AACvB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5DmD;AACP;AACd;AACvB;AACP,WAAW,+DAAS,GAAG,2CAAI,OAAO,wDAAY;AAC9C;;;;;;;;;;;;;;;;;;ACL2C;AACH;AACjC;AACP,eAAe,mDAAU;AACzB,QAAQ,qDAAS;AACjB,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;ACN0D;AACZ;AACA;AACI;AACE;AACpD;AACA;AACA;AACA;AACA;AACA,kJAAkJ,8BAA8B;AACzK,+BAA+B,sDAAgB;AACtD;AACA;AACA;AACA,yCAAyC,mDAAU;AACnD;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,+BAA+B,6CAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yDAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yDAAa;AAChD;AACA,2BAA2B,6CAAO;AAClC;AACA;AACA;AACA,mBAAmB,mDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,2CAA2C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,+BAA+B,0DAAiB;AAChD;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0CAA0C,yDAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChNsD;AAC/C;AACP,eAAe,+DAAgB;AAC/B;;;;;;;;;;;;;;;;;;ACH2C;AACpC,kBAAkB,mDAAU;AAC5B;AACP;AACA;AACA;AACA,eAAe,mDAAU;AACzB;;;;;;;;;;;;;;;;;;;;;;;ACP2C;AACyB;AAC5B;AACS;AACoB;AACT;AACR;AAC7C;AACP,2BAA2B,6DAAiB;AAC5C,YAAY,sBAAsB,EAAE,gFAAoB;AACxD,uBAAuB,mDAAU;AACjC,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD;AACA,YAAY,qDAAS,qCAAqC,6EAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AAC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ACA;AACnD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gEAAS,wCAAwC,mEAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yBAAyB,mEAAkB;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACxD4B;AACwB;AACb;AACW;AACF;AACzC;AACP,QAAQ,4DAAU;AAClB,kCAAkC,yCAAG,yCAAyC,gEAAS;AACvF;AACA;AACA;AACA;AACA,WAAW,mDAAO,yBAAyB,+DAAc;AACzD;;;;;;;;;;;;;;;;;;;ACb0D;AACnB;AACmB;AACnD;AACP,WAAW,mDAAO;AAClB,6BAA6B,mEAAkB,wBAAwB,sEAAe,oEAAoE,sEAAe,sEAAsE,sEAAe;AAC9P,KAAK;AACL;;;;;;;;;;;;;;;;;;ACPuC;AACmB;AACnD;AACP,WAAW,mDAAO;AAClB;AACA;AACA,6BAA6B,mEAAkB;AAC/C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;ACbuC;AACmB;AACnD;AACP,WAAW,mDAAO;AAClB;AACA;AACA,+BAA+B,mEAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;ACxBuC;AACS;AACzC;AACP,WAAW,mDAAO,CAAC,6DAAa;AAChC;;;;;;;;;;;;;;;;;ACJ0D;AACnD;AACP;AACA;AACA;AACA;AACA,6BAA6B,mEAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;;;;;;;;;;;;;;;;;;;;;ACpB0C;AACD;AACJ;AACU;AACR;AAChC,2BAA2B;AAClC,YAAY,sBAAsB,6CAAO,8EAA8E;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iCAAiC,uDAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,sDAAI;AACpB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qDAAI;AAClB;AACA;;;;;;;;;;;;;;;;;;ACzEiD;AACjB;AACzB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6CAAK;AAChB,6BAA6B,yDAAa;AAC1C;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;ACrBkC;AAC3B;AACP,WAAW,+CAAM;AACjB;;;;;;;;;;;;;;;;;;;ACH8C;AACF;AACL;AAChC;AACP,sBAAsB,wDAAY;AAClC,WAAW,mDAAO;AAClB,qBAAqB,0DAAM,8BAA8B,0DAAM;AAC/D,KAAK;AACL;;;;;;;;;;;;;;;;;ACRuC;AAChC;AACP,WAAW,mDAAO;AAClB;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;ACLoD;AACb;AACmB;AACnD;AACP,WAAW,mDAAO;AAClB;AACA;AACA;AACA;AACA,6BAA6B,mEAAkB;AAC/C;AACA;AACA;AACA,YAAY,gEAAS,8DAA8D,mEAAkB;AACrG;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;ACtB4C;AACL;AACmB;AACnD;AACP;AACA;AACA,kBAAkB,oDAAK;AACvB,UAAU,mDAAO;AACjB;AACA,iCAAiC,mEAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;;;;;;;;;;;;;;;;;;;AClB4C;AACL;AACmB;AACnD;AACP;AACA,gBAAgB,oDAAK;AACrB,UAAU,mDAAO;AACjB;AACA,iCAAiC,mEAAkB;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT;;;;;;;;;;;;;;;;;;;;ACpBuC;AACmB;AACN;AAChB;AAC7B;AACP,WAAW,mDAAO;AAClB,QAAQ,gEAAS,yBAAyB,mEAAkB,0CAA0C,4CAAI;AAC1G;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;ACTgD;AACT;AACmB;AACd;AACrC;AACP,wBAAwB,4DAAU;AAClC;AACA,cAAc;AACd;AACA;AACA,UAAU,mDAAO;AACjB;AACA;AACA;AACA,iCAAiC,mEAAkB;AACnD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,YAAY,oDAAQ;AACpB;;;;;;;;;;;;;;;;;;;;ACtCuC;AACmB;AACN;AAC7C;AACP;AACA;AACA;AACO;AACP,WAAW,mDAAO;AAClB,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gEAAS,wCAAwC,mEAAkB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAkB;AAC/C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;AC7CoD;AACS;AACjB;AACrC,SAAS4M,YAAYA,CAAC5M,QAAQ,EAAEiL,SAAS,GAAGJ,4DAAc,EAAEjyB,MAAM,GAAG8zB,4DAAqB,EAAE;EAC/F,MAAMG,SAAS,GAAG/B,wDAAK,CAAC9K,QAAQ,EAAEiL,SAAS,CAAC;EAC5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2C;AACvD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzBkD;AAC3C,sCAAsC,2DAAc;AAC3D;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtB4C;AACY;AACjD,yBAAyB,qDAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,8EAA8B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gFAAgC;AAC5C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzBkD;AAC3C,4BAA4B,2DAAc;AACjD;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACtBkC;AACoB;AACR;AACvC,0BAA0B,2CAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2EAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,QAAQ,6EAA8B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC,oBAAoB,UAAU;AAC9B;AACA;AACA,YAAY,0DAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7EyC;AAClC,6BAA6B,iDAAS;AAC7C,uCAAuC,qDAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC7B8D;AACM;AAC7D,oCAAoC,6EAAuB,CAAC,uEAAoB;AAChF;;;;;;;;;;;;;;;;;ACHwC;AACxC;AACP;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,uDAAY;AAC/B,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;ACzB0C;AACM;AACzC,0BAA0B,yDAAa,CAAC,mDAAU;AAClD;;;;;;;;;;;;;;;;;;;ACHqC;AACM;AAC3C,MAAMgZ,cAAc,GAAG,IAAIwC,2DAAc,CAACD,qDAAW,CAAC;AACtD,MAAMlC,KAAK,GAAGL,cAAc;;;;;;;;;;;;;;;ACH5B;AACP;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACL8C;AAC9C,QAAQ,+BAA+B,EAAE,sDAAS;AAC3C;AACP;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACZO;AACP;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACVO;AACP;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA,gBAAgB,WAAW;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACVO;AACP;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;ACNA;;;;;;;;;;;;;;;;;ACA+C;AAC/C,mBAAmB,mEAAgB;AAC1C;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACLD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5BsD;AAC/C,gCAAgC,mEAAgB;AACvD;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACLqD;AAC/C,4BAA4B,mEAAgB;AACnD;AACA;AACA,aAAa,eAAe;AAC5B,EAAE,0BAA0B,MAAM,IAAI,eAAe,gBAAgB;AACrE;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;ACTyC;AACE;AAC5C;AACA;AACA;AACO;AACP,WAAW,uDAAU;AACrB;AACO;AACP,WAAW,yDAAW;AACtB;AACO;AACP;AACA;;;;;;;;;;;;;;;;ACbA,QAAQ,UAAU;AAClB,QAAQ,wDAAwD;AACzD;AACP;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpBA,QAAQ,UAAU;AACX;AACP;AACA;;;;;;;;;;;;;;;;ACHO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACTO;AACP,kFAAkF;AAClF;;;;;;;;;;;;;;;;;;ACFmC;AACnC;AACO;AACP,QAAQ,iFAA4C;AACpD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,QAAQ,iFAA4C;AACpD;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1BO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACdO;AACP;AACA;;;;;;;;;;;;;;;;ACFO;;;;;;;;;;;;;;;;;ACAmC;AACnC,SAASpC,eAAeA,CAACgB,GAAG,EAAE;EACjC,OAAOyD,MAAM,CAACC,aAAa,IAAIrX,uDAAU,CAAC2T,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,KAA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ACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7Da;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,YAAY,mBAAO,CAAC,mBAAS;AAC7B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;ACda;;AAEb,YAAY,mBAAO,CAAC,kBAAO;AAC3B,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1Ba;;AAEb,eAAe,mBAAO,CAAC,wBAAa;AACpC,iBAAiB,mBAAO,CAAC,0BAAe;AACxC,YAAY,mBAAO,CAAC,kBAAO;AAC3B,eAAe,mBAAO,CAAC,qBAAU;AACjC,yBAAyB,mBAAO,CAAC,mCAAwB;AACzD,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,UAAU,mBAAO,CAAC,uBAAY;AAC9B;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACrGa;;AAEb,mBAAmB,sDAA8B;AACjD,eAAe,mBAAO,CAAC,qBAAU;AACjC,YAAY,mBAAO,CAAC,kBAAO;AAC3B,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,mBAAmB,sDAA8B;AACjD,YAAY,mBAAO,CAAC,kBAAO;AAC3B,qBAAqB,mBAAO,CAAC,yCAA8B;AAC3D,eAAe,mBAAO,CAAC,wBAAa;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCa;;AAEb,mBAAmB,sDAA8B;AACjD,eAAe,mBAAO,CAAC,qBAAU;AACjC,YAAY,mBAAO,CAAC,kBAAO;AAC3B,YAAY,mBAAO,CAAC,0BAAe;AACnC,sBAAsB,mBAAO,CAAC,+BAAoB;AAClD,yBAAyB,mBAAO,CAAC,mCAAwB;AACzD;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpEa;;AAEb,mBAAmB,sDAA8B;AACjD,eAAe,mBAAO,CAAC,qBAAU;AACjC,eAAe,mBAAO,CAAC,wBAAa;AACpC,UAAU,mBAAO,CAAC,mCAAwB;AAC1C,cAAc,mBAAO,CAAC,wCAA6B;AACnD,eAAe,mBAAO,CAAC,yCAA8B;AACrD,cAAc,mBAAO,CAAC,wCAA6B;AACnD,iBAAiB,mBAAO,CAAC,0BAAe;AACxC,eAAe,mBAAO,CAAC,wBAAa;AACpC;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;ACxFa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTa;;AAEb,mBAAO,CAAC,oBAAS;;AAEjB,UAAU,mBAAO,CAAC,sBAAW;AAC7B,eAAe,mBAAO,CAAC,qBAAU;AACjC,YAAY,mBAAO,CAAC,kBAAO;AAC3B,aAAa,mBAAO,CAAC,2BAAgB;AACrC,aAAa,mBAAO,CAAC,2BAAgB;AACrC,eAAe,mBAAO,CAAC,wBAAa;AACpC,iBAAiB,mBAAO,CAAC,0BAAe;AACxC,gBAAgB,mBAAO,CAAC,8BAAmB;AAC3C,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,cAAc,mBAAO,CAAC,4BAAiB;AACvC,UAAU,mBAAO,CAAC,wBAAa;AAC/B,YAAY,mBAAO,CAAC,yBAAe;AACnC,kBAAkB,mBAAO,CAAC,gCAAqB;AAC/C,UAAU,mBAAO,CAAC,uBAAY;AAC9B,iBAAiB,mBAAO,CAAC,0BAAe;AACxC,4BAA4B,mBAAO,CAAC,kCAAuB;AAC3D,mBAAmB,mBAAO,CAAC,4BAAiB;AAC5C;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,qBAAW;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA,EAAE,mBAAO,CAAC,+BAAoB;AAC9B;AACA;;;;;;;;;;;;ACpYA;AACA;AACa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA,MAAM,YAAY;AAClB;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,EAAE;AACF;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,uCAAuC;;AAE9H;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,qEAAqE;AACrE;AACA;AACA,wDAAwD;AACxD,8EAA8E;AAC9E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,kBAAkB;;;AAG5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,SAAS;;AAET;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;;AAE/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,mDAAmD;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACncY;;AAEb;AACA;AACA,EAAE,mBAAO,CAAC,kCAAuB;AACjC,EAAE,mBAAO,CAAC,sCAA2B;AACrC,EAAE,mBAAO,CAAC,sCAA2B;AACrC,EAAE,mBAAO,CAAC,oCAAyB;AACnC,EAAE,mBAAO,CAAC,uCAA6B,EAAE,mBAAO,CAAC,oCAAyB;;AAE1E;AACA,EAAE,mBAAO,CAAC,iCAAsB;AAChC,EAAE,mBAAO,CAAC,uCAA6B,EAAE,mBAAO,CAAC,iCAAsB;AACvE,EAAE,mBAAO,CAAC,oCAAyB;AACnC,EAAE,mBAAO,CAAC,oCAAyB;AACnC,EAAE,mBAAO,CAAC,uCAA6B,EAAE,mBAAO,CAAC,oCAAyB;AAC1E,EAAE,mBAAO,CAAC,sCAA2B;AACrC;;;;;;;;;;;;ACjBa;;AAEb,mBAAmB,sDAA8B;AACjD,eAAe,mBAAO,CAAC,qBAAU;AACjC,YAAY,mBAAO,CAAC,8BAAmB;AACvC,eAAe,mBAAO,CAAC,4BAAiB;AACxC;AACA;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;;;;;;;;;;;AChMA;;;;;;;;;;;;ACAa;;AAEb;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;ACTa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD,0BAA0B,mBAAO,CAAC,mCAAwB;AAC1D,oBAAoB,mBAAO,CAAC,8BAAmB;AAC/C,wBAAwB,mBAAO,CAAC,wBAAa;AAC7C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC1Ba;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,uBAAuB,mBAAO,CAAC,gCAAqB;AACpD,qBAAqB,mBAAO,CAAC,+BAAoB;AACjD,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACxBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,qBAAU;AACjC,YAAY,mBAAO,CAAC,kBAAO;AAC3B,mBAAmB,sDAA8B;AACjD,cAAc,mBAAO,CAAC,sBAAY;AAClC,eAAe,mBAAO,CAAC,yBAAc;AACrC,kBAAkB,mBAAO,CAAC,4BAAiB;AAC3C,iBAAiB,mBAAO,CAAC,2BAAgB;AACzC,aAAa,mBAAO,CAAC,4BAAiB;AACtC;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC5Ia;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,qBAAU;AACjC,qBAAqB,mBAAO,CAAC,kCAAuB;AACpD,oBAAoB,mBAAO,CAAC,6BAAkB;AAC9C,kBAAkB,mBAAO,CAAC,0BAAgB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,eAAe,mBAAO,CAAC,4BAAiB;AACxC,qBAAqB,mBAAO,CAAC,8BAAmB;AAChD;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;AChDa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,mBAAmB,sDAA8B;AACjD;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtFa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,sBAAsB,mBAAO,CAAC,sBAAW;AACzC,kBAAkB,mBAAO,CAAC,+BAAoB;AAC9C;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,0CAA0C;AAC1C;AACA;AACA;;AAEA;AACA;AACA,0FAA0F;;AAE1F;;AAEA;AACA;;;;;;;;;;;;AChC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AEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrEa;;AAEb,aAAa,mBAAO,CAAC,+BAAoB;AACzC,eAAe,mBAAO,CAAC,4BAAiB;AACxC;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClGa;;AAEb,mBAAmB,sDAA8B;AACjD,eAAe,mBAAO,CAAC,qBAAU;AACjC,iBAAiB,mBAAO,CAAC,8BAAmB;AAC5C,cAAc,mBAAO,CAAC,gCAAqB;AAC3C,eAAe,mBAAO,CAAC,4BAAiB;AACxC;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACtGa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;;;;;;;;;;;ACda;;AAEb,mBAAmB,sDAA8B;AACjD,eAAe,mBAAO,CAAC,qBAAU;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;ACvBa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,gBAAgB,mBAAO,CAAC,0BAAe;AACvC;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;;AAEA;;;;;;;;;;;;AChBa;;AAEb,YAAY,mBAAO,CAAC,2BAAgB;AACpC,eAAe,mBAAO,CAAC,yBAAc;AACrC,eAAe,mBAAO,CAAC,qBAAU;AACjC,mBAAmB,sDAA8B;AACjD,sBAAsB,mBAAO,CAAC,+BAAoB;AAClD;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClGa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD,4BAA4B,mBAAO,CAAC,4BAAiB;AACrD,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,gBAAgB,mBAAO,CAAC,yBAAc;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oCAAoC;;AAEpC;;;;;;;;;;;;ACtBa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,gBAAgB,mBAAO,CAAC,yBAAc;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;;;;;;;;;;;;AC/Ba;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,oBAAoB,mBAAO,CAAC,8BAAmB;AAC/C,qBAAqB,mBAAO,CAAC,+BAAoB;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;;AAEpC;;;;;;;;;;;;AChCa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;AACjC,yBAAyB,mBAAO,CAAC,6BAAkB;AACnD,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,oBAAoB,mBAAO,CAAC,8BAAmB;AAC/C,qBAAqB,mBAAO,CAAC,+BAAoB;AACjD,cAAc,mBAAO,CAAC,6BAAkB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCa;;AAEb;AACA,EAAE,0BAA0B;AAC5B;AACA;AACA;AACA;AACA,EAAE;AACF,EAAE,0BAA0B;AAC5B;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;;AC1Ba;;AAEb,YAAY,mBAAO,CAAC,kBAAO;;AAE3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACjDa;;AAEb,aAAa,mBAAO,CAAC,qBAAU;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxEa;;AAEb,iBAAiB,mBAAO,CAAC,oBAAS;AAClC,YAAY,mBAAO,CAAC,kBAAO;AAC3B,cAAc,mBAAO,CAAC,sBAAW;AACjC;;AAEA;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA,EAAE,4BAA4B;AAC9B;AACA;;;;;;;;;;;;ACzLa;;AAEb;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,IAAI,oCAAoC;AACxC,CAAC;;AAED;;;;;;;;;;;;ACjBa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvBa;;AAEb,aAAa,mBAAO,CAAC,mBAAQ;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3Ba;;AAEb;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;;;;;;;;;;;ACjDa;;AAEb,UAAU,mBAAO,CAAC,sBAAW;;AAE7B;AACA,IAAI,IAAqC;AACzC,UAAU,mBAAO,CAAC,kBAAO;AACzB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,IAAI,UAAU,IAAI,UAAU,IAAI;AACzD;AACA;;;;;;;;;;;AClDA;;;;;;;;;;;;ACAa;;AAEb,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU;;AAEA;AACA;AACA;AACA,WAAW;AACX,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;;;AAGA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI,eAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,IAAI,iBAAiB;AACrB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe;AACnB;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,qBAAU;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;AClLa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAO,CAAC,eAAI;AACrC;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,eAAe;AAC5B;AACA;;AAEA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,0EAA0E,aAAa;AACvF;AACA;;AAEA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;;AAEA;AACA,OAAO,GAAG;;AAEV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa;AACb;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;;AAEA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa;AACb;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvPA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,YAAY,mBAAO,CAAC,2BAAgB;AACpC,gBAAgB,mBAAO,CAAC,gCAAqB;;AAE7C;AACA,sBAAsB;AACtB,qBAAqB;;;;;;;;;;ACdrB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,UAAU,mBAAO,CAAC,oBAAS;;AAE3B,QAAQ,mBAAO,CAAC,gBAAK;;AAErB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,sBAAsB,oDAA2B;AACjD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,EAAE,eAAe;;AAEjB,EAAE,cAAc;;AAEhB,CAAC;;;;;;;;;;;AC3GD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,kDAAkD,0CAA0C;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA,MAAM,KAA8B;AACpC,IAAI,aAAa;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,CAAC;;;;;;;;;;;ACveD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA,GAAG;AACH,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;;;;;;;;;;AClCD;AACA;AACA;AACA,EAAE;AACF;AACA,gBAAgB,mBAAO,CAAC,0BAAgB;AACxC,GAAG;AACH,GAAG;AACH,uDAAuD;AACvD,sBAAsB;AACtB;AACA;;AAEA;AACA,wBAAwB,mBAAO,CAAC,sBAAW;;;AAG3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrDA,0EAAmD;;;;;;;;;;;ACAnD,8DAAuC;;;;;;;;;;;ACAvC;AACA;AACA;AACA,KAAK,IAA0C;AAC/C;AACA,IAAI,mCAAO,YAAY,cAAc;AAAA,kGAAC;AACtC,GAAG,KAAK,EAML;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B,sBAAsB,QAAQ;AAC9B,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,uCAAuC,yDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;;;;;;;;;;;ACxVY;;AAEb,eAAe,mBAAO,CAAC,0BAAe;AACtC,SAAS,mBAAO,CAAC,2BAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yDAAyD;AACzD,IAAI;AACJ,sCAAsC;AACtC;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,yBAAyB;AAClC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC5kBA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C;AACA;AACA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC;AAChD,aAAa,sCAAsC;AACnD,aAAa,wCAAwC;AACrD,aAAa,qCAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,aAAa,yBAAyB;AACtC,aAAa,2BAA2B;AACxC,aAAa,0BAA0B;AACvC;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,WAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD,oBAAoB,qCAAqC;AACzD,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa,QAAQ,GAAG;AACrC,iBAAiB,OAAO;AACxB,aAAa,aAAa,MAAM,EAAE;AAClC;AACA,OAAO,UAAU,mCAAmC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C,oCAAoC,YAAY;AAChD;AACA;AACA,4CAA4C,YAAY;AACxD,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAqD;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+BAA+B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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CiE,OAAO,CAAC;EACjC;EACA0qB,KAAKA,CAAA,EAAG;IACJ,IAAI,CAACH,IAAI,CAACG,KAAK,CAAC,CAAC;EACrB;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,yBAAyB,GAAG,CAAC;AACnC,MAAMC,WAAW,GAAG,QAAQ;AAC5B,MAAMC,iBAAiB,GAAG,IAAIpJ,MAAM,CAACmJ,WAAW,EAAE,GAAG,CAAC;AACtD,MAAME,WAAW,GAAG,QAAQ;AAC5B,MAAMC,iBAAiB,GAAG,IAAItJ,MAAM,CAACqJ,WAAW,EAAE,GAAG,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,uBAAuBA,CAAC5R,MAAM,EAAE6R,WAAW,EAAErD,GAAG,EAAEsD,cAAc,EAAEC,cAAc,EAAEC,cAAc,GAAG,CAAC,CAAC,EAAEC,WAAW,GAAG,CAAC,CAAC,EAAE50B,OAAO,EAAE60B,eAAe,EAAE7R,MAAM,GAAG,EAAE,EAAE;EACrK,OAAO,IAAI8R,+BAA+B,CAAC,CAAC,CAACC,cAAc,CAACpS,MAAM,EAAE6R,WAAW,EAAErD,GAAG,EAAEsD,cAAc,EAAEC,cAAc,EAAEC,cAAc,EAAEC,WAAW,EAAE50B,OAAO,EAAE60B,eAAe,EAAE7R,MAAM,CAAC;AACxL;AACA,MAAM8R,+BAA+B,CAAC;EAClCC,cAAcA,CAACpS,MAAM,EAAE6R,WAAW,EAAErD,GAAG,EAAEsD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V;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC9L2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB,8BAA8B;AAC9B,yBAAyB;AACzB,SAAS,MAAM,SAAS;AACxB,QAAQ,MAAM,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,MAAM;AACrE;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2I;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClI1F;AACb;AACuB;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMa,UAAU,CAAC;AAEjB;AACA,SAASC,YAAYA,CAAC/wD,KAAK,EAAE;EACzB;EACA;EACA;EACA,OAAOA,KAAK,IAAI,OAAOA,KAAK,CAACgxD,OAAO,KAAK,UAAU;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,SAASH,UAAU,CAAC;EACrC3sD,WAAWA,CAAC+sD,KAAK,EAAE;IACf,KAAK,CAA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,kBAxkCgF7N,+DAAE;EAAAzB,IAAA,EAwkCOquE;AAAc,EAW5F;AAC9BA,cAAc,CAAC7+D,IAAI,kBAplCgF/N,+DAAE;EAAAsoD,SAAA,EAolCkC,CAACif,QAAQ,CAAC;EAAAt5D,OAAA,GAAYo/C,wEAAmB;AAAA,EAAI;AACpL;EAAA,QAAA3pD,SAAA,oBAAAA,SAAA,KArlCmG1D,gEAAE,CAqlCV4sE,cAAc,EAAc,CAAC;IAC5GruE,IAAI,EAAEgC,oDAAQ;IACdqD,IAAI,EAAE,CAAC;MACCsK,YAAY,EAAE,CACVk6D,WAAW,EACXN,gBAAgB,EAChBwD,OAAO,EACPd,aAAa,EACbU,cAAc,EACdJ,kBAAkB,CACrB;MACDvyE,OAAO,EAAE,CACL80D,wEAAmB,EACnB+a,WAAW,EACXN,gBAAgB,EAChBwD,OAAO,EACPd,aAAa,EACbU,cAAc,EACdJ,kBAAkB,CACrB;MACDxiB,SAAS,EAAE,CAACif,QAAQ;IACxB,CAAC;EACT,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;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EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,KAAK,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,KAAK,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,IAAI,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAEA,SAAS,EAAE,CAAC,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAACA,SAAS,EAAE,GAAG,CAAC;EAAE,KAAK,EAAE,CAAC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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMob,OAAO,CAAC;EACV17F,WAAWA,CAAC27F,cAAc,EAAErd,SAAS,EAAEC,QAAQ,EAAE;IAC7C,IAAI,CAACod,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACrd,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACqd,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,aAAa,GAAG,IAAI;IACzB,IAAI,CAAC/c,OAAO,GAAG,IAAI;EACvB;EACA;AACJ;AACA;AACA;EACI,IAAI2c,OAAOA,CAACA,OAAO,EAAE;IACjB,IAAI,CAACG,QAAQ,GAAGH,OAAO;IACvB,IAAI,CAACI,aAAa,GAAG,IAAI;EAC7B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAIC,YAAYA,CAACtkE,EAAE,EAAE;IACjB,IAAI,CAAC,OAAO7vB,SAAS,KAAK,WAAW,IAAIA,SAAS,KAAK6vB,EAAE,IAAI,IAAI,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;MAC3F;MACA,IAAIwX,OAAO,IAAIA,OAAO,CAACC,IAAI,EAAE;QACzBD,OAAO,CAACC,IAAI,CAAC,4CAA4C70C,IAAI,CAACmD,SAAS,CAACi6B,EAAE,CAAC,IAAI,GAC3E,oF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,IAAI;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM85F,IAAI,CAAC;EACPt8F,WAAWA,CAAC27F,cAAc,EAAE3tC,WAAW,EAAE;IACrC,IAAI,CAAC2tC,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACrvF,QAAQ,GAAG,IAAIiwF,WAAW,CAAC,CAAC;IACjC,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB,IAAI,CAACC,YAAY,GAAG,IAAI;IACxB,IAAI,CAACH,gBAAgB,GAAGxuC,WAAW;EACvC;EACA;AACJ;AACA;EACI,IAAI4uC,IAAIA,CAACC,SAAS,EAAE;IAChB,IAAI,CAACvwF,QAAQ,CAACsiD,SAAS,GAAG,IAAI,CAACtiD,QAAQ,CAACswF,IAAI,GAAG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B,IAAA;EAAAogB,IAAA,EA+kIG4/F,aAAa;EAAAP,IAAA;AAAA,EAAsB;AAC3I;EAAA,QAAAl6F,SAAA,oBAAAA,SAAA,KAhlImG1D,+DAAE,CAglIVm+F,aAAa,EAAc,CAAC;IAC3G5/F,IAAI,EAAEq/E,+CAAI;IACVh6E,IAAI,EAAE,CAAC;MAAEzlB,IAAI,EAAE;IAAY,CAAC;EAChC,CAAC,CAAC;AAAA;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMkgH,0BAA0B,GAAG,IAAI9wD,yDAAc,CAAC,4BAA4B,CAAC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM+wD,QAAQ,CAAC;EACXviG,WAAWA,CAAC2nF,MAAM,EAAE6a,e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AAC,CAAC,EAAE,CAAC,CAAC;EACjB;EACA;AACJ;AACA;EACII,gBAAgBA,CAAC3iG,QAAQ,EAAE,CAAE;EAC7B;AACJ;AACA;EACI4iG,cAAcA,CAACpmD,MAAM,EAAE,CAAE;EACzB;AACJ;AACA;EACIymD,2BAA2BA,CAACC,iBAAiB,EAAE,CAAE;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMkB,UAAU,CAAC;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACh1KA;AACA;AACA;AACA;AACA;;AAEsC;AACoD;AACtD;AACsD;AACpD;AACkB;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMa,WAAW,CAAC;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,CAAC;;AAGlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,CAAC;EACd;EACAzoG,WAAWA,CAACxF,OAAO,EAAE;IACjB;AACR;AACA;AACA;IACQ,IAAI,CAACkuG,eAAe,GAAG,IAAI3lH,GAAG,CAAC,CAAC;IAChC;AACR;AACA;IACQ,IAAI,CAAC4lH,UAAU,GAAG,IAAI;IACtB,IAAI,CAACnuG,OAAO,EAAE;MACV,IAAI,CAACA,OAAO,GAAG,IAAIzX,GAAG,CAAC,CAAC;IAC5B,CAAC,MACI,IAAI,OAAOyX,OAAO,KAAK,QAAQ,EAAE;MAClC,IAAI,CAACouG,QAAQ,GAAG,MAAM;QAClB,IAAI,CAACpuG,OAAO,GAAG,IAAIzX,GAAG,CAAC,CAAC;QACxByX,OAAO,CAACmB,KAAK,CAAC,I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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,0BAA0B,SAAS,EAAE,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa,iBAAiB,4BAA4B,MAAM,KAAK;AAC/F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,kBAAkB,IAAI,MAAM;AAC7E,uGAAuG,MAAM,EAAE,QAAQ;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,0BAA0B;AACnG;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,8EAA8E,0BAA0B,OAAO,gBAAgB;AAC/H;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C,mDAAmD,UAAU,EAAE,YAAY,EAAE,QAAQ;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ,UAAU,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA,8CAA8C,6BAA6B,UAAU,sBAAsB;AAC3G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E,0GAA0G,SAAS;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAA+B;AAC5E,4CAA4C,8BAA8B;AAC1E;AACA,mDAAmD,yCAAyC;AAC5F,iDAAiD,uCAAuC;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA,QAAQ,4CAA4C;AACpD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B,IAAI,oCAAoC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B,IAAI,qCAAqC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8BAA8B;AAC3E,4CAA4C,8BAA8B;AAC1E,6CAA6C,+BAA+B;AAC5E,4CAA4C,8BAA8B;AAC1E,gDAAgD,8BAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2CAA2C;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO,2CAA2C,WAAW;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,KAAK,OAAO,IAAI,MAAM;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oCAAoC;AAC9E,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mCAAmC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA,gBAAgB,8FAA8F;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qBAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mCAAmC,YAAY,gCAAgC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,0BAA0B;AAChH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0EAA0E;;AAElJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAkC;AAC1C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,sBAAsB,8HAA8H;AACrO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sBAAsB,8DAA8D;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sBAAsB,4HAA4H;AAC7N;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,6DAA6D;;AAEnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE,6BAA6B,cAAc,GAAG;AAC9C,uBAAuB;AACvB;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,sEAAsE,GAAG;AACzE;AACA;AACA;AACA;AACA,gFAAgF,GAAG;AACnF;AACA;AACA;AACA;AACA,yFAAyF,GAAG,6BAA6B;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,iEAAiE;AACjE;AACA;AACA,uCAAuC,KAAK,sBAAsB,KAAK;AACvE,mBAAmB,KAAK,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mDAAmD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,OAAO;AACvH;;AAEA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,kBAAkB;AACxC;AACA,cAAc,kBAAkB,EAAE,iCAAiC,GAAG,QAAQ,KAAK,+BAA+B;AAClH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,IAAI,EAAE;AACN,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2CAA2C;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK,UAAU,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,gBAAgB;AAChB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uIAAuI;AACvI;AACA;AACA;AACA;AACA;AACA,6DAA6D,KAAK;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,eAAe;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,+EAA+E;AAC/E,KAAK;AACL;AACA,8CAA8C;AAC9C,KAAK;AACL,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mCAAmC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yCAAyC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,SAAS;AAC7E;AACA;AACA;AACA;AACA,6EAA6E,cAAc;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,KAAK;AACvD,2BAA2B,cAAc;AACzC,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS,aAAa,uEAAuE;AAChH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gDAAgD;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,YAAY;AAC7H;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C,yHAAyH,MAAM,KAAK,SAAS,qBAAqB,UAAU;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,uBAAuB,eAAe,EAAE,UAAU;AAClD,uBAAuB,4DAA4D,EAAE,UAAU;AAC/F;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qBAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,yBAAyB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D,4CAA4C,eAAe,IAAI,mBAAmB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,MAAM,eAAe;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,iCAAiC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAqC;AACnF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,UAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC,uBAAuB,qDAAqD;AAC5E;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB;AAC3N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,GAAG,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB,wBAAwB,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS,wCAAwC,YAAY;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,YAAY;AAChF,0EAA0E,qBAAqB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA,wFAAwF,iBAAiB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,KAAK;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,iBAAiB,KAAK,gBAAgB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2CAA2C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAoD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA,gHAAgH;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oDAAoD;AAC7G,4FAA4F,UAAU;AACtG;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oDAAoD;AAC7G,sFAAsF,UAAU;AAChG;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,mDAAmD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe;AAC3E,IAAI,gBAAgB,iBAAiB,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,GAAG,6BAA6B;AACxE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wEAAwE;AAC9E,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6BAA6B;AACpF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B,kCAAkC,MAAM,GAAG,6BAA6B;AACpH,KAAK;AACL;AACA;AACA,qCAAqC,gBAAgB,0BAA0B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,SAAS;AACtG;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kBAAkB;AAC/E;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,qDAAqD;AAC5D,OAAO;AACP;AACA;AACA;AACA;AACA,2EAA2E,WAAW,EAAE,UAAU;AAClG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uCAAuC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB,KAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC,iCAAiC,QAAQ;AACzC;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc,sBAAsB,mCAAmC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA,yBAAyB,UAAU;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mDAAmD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC9E,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC5F,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC5F,uBAAuB,MAAM,QAAQ,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AACxF,mBAAmB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACvF,UAAU,gBAAgB,gBAAgB,gBAAgB;AAC1D;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uvBAAuvB,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE,oBAAoB,2HAA2H;;AAEh6B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,OAAO;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,QAAQ;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,OAAO;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,eAAe,2CAA2C,GAAG,qBAAqB,EAAE;AACtH;AACA,mDAAmD,MAAM,GAAG;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA,mDAAmD,eAAe;AAClE,iCAAiC,IAAI,8BAA8B,SAAS,KAAK,MAAM;AACvF;AACA,wCAAwC,IAAI;AAC5C;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,mCAAmC,iBAAiB,IAAI,EAAE,uBAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO,kCAAkC,QAAQ;AAClF;AACA,iCAAiC,IAAI,8BAA8B,uBAAuB,MAAM,uBAAuB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ,8BAA8B,KAAK;AAC3E;AACA;AACA;AACA;AACA,gCAAgC,QAAQ,8BAA8B,KAAK;AAC3E;AACA;AACA;AACA,gCAAgC,QAAQ,+BAA+B,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB,EAAE,YAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,QAAQ;AACtF;AACA,wJAAwJ,MAAM,GAAG,0BAA0B;AAC3L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB;AACA,8HAA8H,GAAG;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,QAAQ;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,qCAAqC;AACrC,oCAAoC;AACpC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO,IAAI,WAAW,EAAE,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,uHAAuH,QAAQ;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB,EAAE,OAAO;AACpE,iDAAiD,OAAO,aAAa,iBAAiB,EAAE,OAAO;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe,aAAa,SAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,eAAe;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6EAA6E,QAAQ;AACrF;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM,EAAE,kBAAkB,EAAE,IAAI;AACrF,KAAK;AACL;AACA,uEAAuE;AACvE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,OAAO,YAAY,IAAI;AAC5F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,KAAK,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB,wBAAwB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2BAA2B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qBAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6CAA6C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qDAAqD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,GAAG;AAC7D;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uCAAuC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D,+CAA+C,oBAAoB;AACnE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAuB;AAC/E;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI,IAAI,iBAAiB,KAAK,qBAAqB;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB;AAC5E;AACA;AACA,cAAc,wCAAwC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yBAAyB;AACzE,wEAAwE,KAAK,sBAAsB,UAAU;AAC7G;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,gDAAgD,+BAA+B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oDAAoD;AAC3F,sCAAsC,8CAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB,GAAG,sBAAsB,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,mBAAmB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,MAAM;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,gBAAgB;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kCAAkC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA,qDAAqD,8DAA8D;AACnH,gFAAgF,gBAAgB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD,8DAA8D;AACnH,gFAAgF,gBAAgB;AAChG;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8DAA8D;AACnH;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,4BAA4B,qBAAqB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wBAAwB,4BAA4B,8BAA8B;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,MAAM,EAAE,yBAAyB,OAAO,+BAA+B;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB,4CAA4C,YAAY,MAAM,WAAW;AACtI,8CAA8C,yBAAyB,kCAAkC,YAAY,MAAM,WAAW;AACtI,oFAAoF,yBAAyB,+BAA+B,YAAY,MAAM,WAAW;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU,4BAA4B,qBAAqB;AAChH;AACA;AACA,gDAAgD,UAAU,4BAA4B,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yDAAyD;AAC9G;AACA,iDAAiD,UAAU;AAC3D;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA,oDAAoD,mCAAmC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,UAAU;AAC/E,2DAA2D,wCAAwC,wYAAwY;AAC3e;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,qDAAqD,mDAAmD;AACxG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,yCAAyC,mDAAmD;AAC5F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mDAAmD;AACxG,gFAAgF,UAAU;AAC1F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8DAA8D;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,MAAM;AAC3F,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6DAA6D;AAClH,gFAAgF,cAAc;AAC9F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD,6DAA6D;AAClH;AACA,kEAAkE,cAAc;AAChF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sBAAsB,kDAAkD;AAC5H;AACA;AACA;AACA;AACA,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA,qEAAqE,qBAAqB;AAC1F;AACA;AACA;AACA;AACA,uEAAuE,qBAAqB;AAC5F;AACA;AACA;AACA;AACA,8EAA8E,kBAAkB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iBAAiB;;AAEhG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kCAAkC;AACjF,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,iEAAiE,mEAAmE;AACpI;AACA;AACA;AACA,SAAS;AACT,kBAAkB;AAClB;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB,GAAG;AACxB,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAA6D;AACjE;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc,EAAE,cAAc,EAAE,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,mDAAmD,uCAAuC;AAC1F;AACA;AACA;AACA,SAAS;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,uCAAuC;AACzD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,iDAAiD;AACnE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mBAAmB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAA6B;AACzC,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,oDAAoD,yCAAyC;AAC7F;AACA;AACA;AACA,SAAS;AACT,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oHAAoH;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA,uDAAuD;AACvD,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB,WAAW;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,+BAA+B,sDAAsD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,uDAAuD,+CAA+C;AACtG;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,cAAc,IAAI;AACtD,CAAC;AACD;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,+DAA+D,+DAA+D;AAC9H;AACA;AACA;AACA,SAAS,iBAAiB,YAAY;AACtC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,+CAA+C,8BAA8B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA,gFAAgF,iCAAiC;AACjH;AACA;AACA,oFAAoF,iCAAiC;AACrH;AACA;AACA,iBAAiB;AACjB,iDAAiD,0CAA0C;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4CAA4C;AAC7F,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA,qDAAqD,kFAAkF;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,uDAAuD,+CAA+C;AACtG;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,gBAAgB,IAAI;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,sCAAsC,4CAAU;AAChD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,6BAA6B,4CAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,2CAAO,kCAAkC,qDAAK;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,0DAA0D,qDAAqD;AAC/G;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,cAAc,IAAI,gBAAgB,IAAI,oBAAoB,IAAI,kCAAkC,IAAI,6BAA6B,IAAI;AACzK,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sBAAsB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,kBAAkB,uBAAuB;AACzC,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,SAAS,aAAa,kCAAkC;AAC/H;AACA;AACA;AACA;AACA,6CAA6C,oFAAoF;AACjI;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,kBAAkB,uBAAuB;AACzC,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,GAAG;AACtE;AACA;AACA;AACA,6CAA6C,oFAAoF;;AAEjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2CAA2C;AACjD,MAAM,wCAAwC;AAC9C,MAAM,wCAAwC;AAC9C,MAAM,4BAA4B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,MAAM,sEAAsE;AAC5E;AACA;AACA;AACA;AACA,KAAK;AACL,MAAM,iDAAiD;AACvD;AACA,MAAM,yEAAyE;AAC/E,MAAM,yEAAyE;AAC/E;AACA;AACA;AACA;AACA,KAAK;AACL,MAAM,6DAA6D;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,0DAA0D,yBAAyB;AACnF,0DAA0D,yCAAyC;AACnG;AACA;AACA;AACA,qBAAqB,yCAAyC;AAC9D,SAAS,iBAAiB,UAAU,sBAAsB,IAAI;AAC9D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uEAAuE,eAAe;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wEAAwE;AACjH,0EAA0E,eAAe;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAsE;AAC/G,wEAAwE,eAAe;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAsE;AAC/G,wEAAwE,eAAe;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kEAAkE;AAC3G,oEAAoE,eAAe;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE2nQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACn+3B3nQ;AACA;AACA;AACA;AACA;;AAEoC;AACiK;AAC3J;AACJ;AACD;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMyK,wBAAwB,CAAC;EAC3B9yG,WAAWA,CAACgJ,SAAS,EAAED,WAAW,EAAE;IAChC,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACD,WAAW,GAAGA,WAAW;IAC9B;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACgqG,QAAQ,GAAItuF,CAAC,IAAK,CAAE,CAAC;IAC1B;AACR;AACA;AACA;IACQ,IAAI,CAACuuF,SAAS,GAAG,MAAM,CAAE,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;EACIzlE,WAAWA,CAAClyC,GAAG,EAAEQ,KAAK,EAAE;IACpB,IAAI,CAACmN,SAAS,CAACukC,WAAW,CAAC,IAAI,CAACxkC,WAAW,CAACiC,aAAa,EAAE3P,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM0wH,aAAa,GAAG,IAAIhkE,yDAAc,CAAC,cAAc,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMikE,mBAAmB,GAAG,IAAIjkE,yDAAc,CAAC,mBAAmB,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMkkE,YAAY,GAAG,oMAAoM;AACzN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,UAAU,CAAC;EACb;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOjvG,GAAGA,CAACA,GAAG,EAAE;IACZ,OAAOkvG,YAAY,CAAClvG,GAAG,CAAC;EAC5B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOC,GAAGA,CAACA,GAAG,EAAE;IACZ,OAAOkvG,YAAY,CAAClvG,GAAG,CAAC;EAC5B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOmvG,QAAQA,CAACC,OAAO,EAAE;IACrB,OAAOC,iBAAiB,CAACD,OAAO,CAAC;EACrC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOE,YAAYA,CAACF,OAAO,EAAE;IACzB,OAAOG,qBAAqB,CAACH,OAAO,CAAC;EACzC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOI,KAAKA,CAACJ,OAAO,EAAE;IAClB,OAAOK,cAAc,CAACL,OAAO,CAAC;EAClC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOM,SAASA,CAACA,SAAS,EAAE;IACxB,OAAOC,kBAAkB,CAACD,SAAS,CAAC;EACxC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAOE,SAASA,CAACA,SAAS,EAAE;IACxB,OAAOC,kBAAkB,CAACD,SAAS,CAAC;EACxC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO1iB,OAAOA,CAACA,OAAO,EAAE;IACpB,OAAO4iB,gBAAgB,CAAC5iB,OAAO,CAAC;EACpC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAO6iB,aAAaA,CAACX,OAAO,EAAE;IAC1B,OAAOW,aAAa,CAACX,OAAO,CAAC;EACjC;EACA,OAAOY,OAAOA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AI;EACjD;EACA;AACJ;AACA;AACA;AACA;EACIE,kBAAkBA,CAACniF,EAAE,EAAE;IACnB,IAAI,CAACohF,mBAAmB,CAAC1vH,IAAI,CAACsuC,EAAE,CAAC;EACrC;EACA;AACJ;AACA;AACA;AACA;EACIoiF,yBAAyBA,CAAA,EAAG;IACxB,IAAI,CAAChB,mBAAmB,CAAC/iH,OAAO,CAAC2hC,EAAE,IAAIA,EAAE,CAAC,CAAC,CAAC;IAC5C,IAAI,CAACohF,mBAAmB,GAAG,EAAE;EACjC;EACA;AACJ;AACA;AACA;EACIl/E,KAAKA,CAAC79B,KAAK,GAAGgC,SAAS,EAAE;IACrB,IAAI,IAAI,CAACk4G,OAAO,EACZ,IAAI,CAACA,OAAO,CAACr8E,KAAK,CAAC79B,KAAK,CAAC;EACjC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIg+G,QAAQA,CAAC/rH,SAAS,EAAEy3F,IAAI,EAAE;IACtB,OAAO,IAAI,CAACwwB,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC8D,QAAQ,CAAC/rH,SAAS,EAAEy3F,IAAI,CAAC,GAAG,KAAK;EACxE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIu0B,QAAQA,CAAChsH,SAAS,EAAEy3F,IAAI,EAAE;IACtB,OAAO,IAAI,CAACwwB,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC+D,QAAQ,CAAChsH,SAAS,EAAEy3F,IAAI,CAAC,GAAG,IAAI;EACvE;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMw0B,SAAS,SAASpB,wBAAwB,CAAC;EAC7C34G,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,GAAG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;IAC7C;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACImC,SAASA,CAACzmG,MAAM,EAAEilG,IAAI,GAAG,CAAC,CAAC,EAAE;IACzB,IAAI,CAACjlG,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC0mG,qBAAqB,CAACzB,IAAI,CAACl9H,SAAS,KAAK,KAAK,CAAC;EACxD;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIM,GAAGA,CAAC8gG,IAAI,EAAE;IACN,OAAOq6B,KAAK,CAAC,IAAI,EAAEr6B,IAAI,EAAE,GAAG,CAAC;EACjC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIu0B,QAAQA,CAAChsH,SAAS,EAAEy3F,IAAI,EAAE;IACtB,MAAMwwB,OAAO,GAAGxwB,IAAI,GAAG,IAAI,CAAC9gG,GAAG,CAAC8gG,IAAI,CAAC,GAAG,IAAI;IAC5C,OAAOwwB,OAAO,IAAIA,OAAO,CAAC35F,MAAM,GAAG25F,OAAO,CAAC35F,MAAM,CAACtuB,SAAS,CAAC,GAAG,IAAI;EACvE;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI+rH,QAAQA,CAAC/rH,SAAS,EAAEy3F,IAAI,EAAE;IACtB,OAAO,CAAC,CAAC,IAAI,CAACu0B,QAAQ,CAAChsH,SAAS,EAAEy3F,IAAI,CAAC;EAC3C;EACA;AACJ;AACA;EACI,IAAI7oF,IAAIA,CAAA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,WAAW,SAAS/C,eAAe,CAAC;EACtC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIzgH,WAAWA,CAACqjH,SAAS,GAAG,IAAI,EAAEjD,eAAe,EAAE1G,cAAc,EAAE;IAC3D,KAAK,CAACyG,cAAc,CAACC,eAAe,CAAC,EAAEG,mBAAmB,CAAC7G,cAAc,EAAE0G,eAAe,CAAC,CAAC;IAC5F;IACA,IAAI,CAACqD,SAAS,GAAG,EAAE;IACnB;IACA,IAAI,CAAChG,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACiG,eAAe,CAACL,SAAS,CAAC;IAC/B,IAAI,CAACC,kBAAkB,CAAClD,eAAe,CAAC;IACxC,IAAI,CAAC2C,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAAC3F,sBAAsB,CAAC;MACxBkE,QAAQ,EAAE,IAAI;MACd;MACA;MACA;MACA;MACAn9H,SAAS,EAAE,CAAC,CAAC,IAAI,CAACu1H;IACtB,CAAC,CAAC;EACN;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIsE,QAAQA,CAACniH,KAAK,EAAEzC,OAAO,GAAG,CAAC,CAAC,EAAE;IAC1B,IAAI,CAACyC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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMtD,SAAS,SAASU,eAAe,CAAC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIzgH,WAAWA,CAACggH,QAAQ,EAAEI,eAAe,EAAE1G,cAAc,EAAE;IACnD,KAAK,CAACyG,cAAc,CAACC,eAAe,CAAC,EAAEG,mBAAmB,CAAC7G,cAAc,EAAE0G,eAAe,CAAC,CAAC;IAC5F,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC+C,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAACO,kBAAkB,CAAClD,eAAe,CAAC;IACxC,IAAI,CAAC0D,cAAc,CAAC,CAAC;IACrB,IAAI,CAAC1G,sBAAsB,CAAC;MACxBkE,QAAQ,EAAE,IAAI;MACd;MACA;MACA;MACAn9H,SAAS,EAAE,CAAC,CAAC,IAAI,CAACu1H;IACtB,CAAC,CAAC;EACN;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIqK,eAAeA,CAAC3hI,IAAI,EAAE2zH,OAAO,EAAE;IAC3B,IAAI,IAAI,CAACiK,QAAQ,CAAC59H,IAAI,CAAC,EACnB,OAAO,IAAI,CAAC49H,QAAQ,CAAC59H,IAAI,CAAC;IAC9B,IAAI,CAAC49H,QAAQ,CAAC59H,IAAI,CAAC,GAAG2zH,OAAO;IAC7BA,OAAO,CAACoM,SAAS,CAAC,IAAI,CAAC;IACvBpM,OAAO,CAAC4G,2BAA2B,CAAC,IAAI,CAACgE,mBAAmB,CAAC;IAC7D,OAAO5K,OAAO;EAClB;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIiO,UAAUA,CAAC5hI,IAAI,EAAE2zH,OAAO,EAAE38G,OAAO,GAAG,CAAC,CAAC,EAAE;IACpC,IAAI,CAAC2qH,eAAe,CAAC3hI,IAAI,EAAE2zH,OAAO,CAAC;IACnC,IAAI,CAACqH,sBAAsB,CAAC;MAAEj5H,SAAS,EAAEiV,OAAO,CAACjV;IAAU,CAAC,CAAC;IAC7D,IAAI,CAACw8H,mBAAmB,CAAC,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIsD,aAAaA,CAAC7hI,IAAI,EAAEgX,OAAO,GAAG,CAAC,CAAC,EAAE;IAC9B,IAAI,IAAI,CAAC4mH,QAAQ,CAAC59H,IAAI,CAAC,EACnB,IAAI,CAAC49H,QAAQ,CAAC59H,IAAI,CAAC,CAACu6H,2BAA2B,CAAC,MAAM,CAAE,CAAC,CAAC;IAC9D,OAAQ,IAAI,CAACqD,QAAQ,CAAC59H,IAAI,CAAE;IAC5B,IAAI,CAACg7H,sBAAsB,CAAC;MAAEj5H,SAAS,EAAEiV,OAAO,CAACjV;IAAU,CAAC,CAAC;IAC7D,IAAI,CAACw8H,mBAAmB,CAAC,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIuD,UAAUA,CAAC9hI,IAAI,EAAE2zH,OAAO,EAAE38G,OAAO,GAAG,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC4mH,QAAQ,CAAC59H,IAAI,CAAC,EACnB,IAAI,CAAC49H,QAAQ,CAAC59H,IAAI,CAAC,CAACu6H,2BAA2B,CAAC,MAAM,CAAE,CAAC,CAAC;IAC9D,OAAQ,IAAI,CAACqD,QAAQ,CAAC59H,IAAI,CAAE;IAC5B,IAAI2zH,OAAO,EACP,IAAI,CAACgO,eAAe,CAAC3hI,IAAI,EAAE2zH,OAAO,CAAC;IACvC,IAAI,CAACqH,sBAAsB,CAAC;MAAEj5H,SAAS,EAAEiV,OAAO,CAACjV;IAAU,CAAC,CAAC;IAC7D,IAAI,CAACw8H,mBAAmB,CAAC,CAAC;EAC9B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI3hG,QAAQA,CAACmlG,WAAW,EAAE;IAClB,OAAO,IAAI,CAACnE,QAAQ,CAACpiH,cAAc,CAACumH,WAAW,CAAC,IAAI,IAAI,CAACnE,QAAQ,CAACmE,WAAW,CAAC,CAACxrE,OAAO;EAC1F;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIqlE,QAAQA,CAACniH,KAAK,EAAEzC,OAAO,GAAG,CAAC,CAAC,EAAE;IAC1B,IAAI,CAACgrH,sBAAsB,CAACvoH,KAAK,CAAC;IAClCV,MAAM,CAACC,IAAI,CAACS,KAAK,CAAC,CAAChG,OAAO,CAACzT,IAAI,IAAI;MAC/B,IAAI,CAACiiI,sBAAsB,CAACjiI,IAAI,CAAC;MACjC,IAAI,CAAC49H,QAAQ,CAAC59H,IAAI,CAAC,CAAC47H,QAAQ,CAACniH,KAAK,CAACzZ,IAAI,CAAC,EAAE;QAAEk/H,QAAQ,EAAE,IAAI;QAAEn9H,SAAS,EAAEiV,OAAO,CAACjV;MAAU,CAAC,CAAC;IAC/F,CAAC,CAAC;IACF,IAAI,CAACi5H,sBAAsB,CAAChkH,OAAO,CAAC;EACxC;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIwqH,UAAUA,CAAC/nH,KAAK,EAAEzC,OAAO,GAAG,CAAC,CAAC,EAAE;IAC5B;IACA;IACA;IACA;IACA,IAAIyC,KAAK,IAAI,IAAI,CAAC,mCACd;IACJV,MAAM,CAACC,IAAI,CAACS,KAAK,CAAC,CAAChG,OAAO,CAACzT,IAAI,IAAI;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AC2lH,aAAa,CAAC,CAACzL,OAAO,EAAE3zH,IAAI,KAAK;MAClC,IAAIyZ,KAAK,CAACzZ,IAAI,CAAC,KAAKyb,SAAS,EAAE;QAC3B,MAAM,IAAImZ,KAAK,CAAC,oDAAoD50B,IAAI,IAAI,CAAC;MACjF;IACJ,CAAC,CAAC;EACN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM69H,SAAS,SAASQ,eAAe,CAAC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIzgH,WAAWA,CAACggH,QAAQ,EAAEI,eAAe,EAAE1G,cAAc,EAAE;IACnD,KAAK,CAACyG,cAAc,CAACC,eAAe,CAAC,EAAEG,mBAAmB,CAAC7G,cAAc,EAAE0G,eAAe,CAAC,CAAC;IAC5F,IAAI,CAACJ,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC+C,gBAAgB,CAAC,CAAC;IACvB,IAAI,CAACO,kBAAkB,CAAClD,eAAe,CAAC;IACxC,IAAI,CAAC0D,cAAc,CAAC,CAAC;IACrB,IAAI,CAAC1G,sBAAsB,CAAC;MACxBkE,QAAQ,EAAE,IAAI;MACd;MACA;MACA;MACA;MACAn9H,SAAS,EAAE,CAAC,CAAC,IAAI,CAACu1H;IACtB,CAAC,CAAC;EACN;EACA;AACJ;AACA;AACA;AACA;EACIwG,EAAEA,CAACt9G,KAAK,EAAE;IACN,OAAO,IAAI,CAACo9G,QAAQ,CAACp9G,KAAK,CAAC;EAC/B;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI1Z,IAAIA,CAAC6sH,O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CAAC;EACjE;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqE,uBAAuB,GAAG;EAC5B34D,OAAO,EAAE6tD,gBAAgB;EACzB5tD,WAAW,EAAE8oB,yDAAU,CAAC,MAAM6vC,MAAM;AACxC,CAAC;AACD,MAAMC,iBAAiB,GAAG,CAAC,MAAMp6H,OAAO,CAAC4O,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMurH,MAAM,SAAS/K,gBAAgB,CAAC;EAClCl6G,WAAWA,CAAC42G,UAAU,EAAEqG,eAAe,EAAE;IACrC,KAAK,CAAC,CAAC;IACP;AACR;AACA;AACA;IACQ,IAAI,CAACxC,SAAS,GAAG,KAAK;IACtB,IAAI,CAAC0K,WAAW,GAAG,EAAE;IACrB;AACR;AACA;AACA;IACQ,IAAI,CAACC,QAAQ,GAAG,IAAIhtG,uDAAY,CAAC,CAAC;IAClC,IAAI,CAAC43E,IAAI,GACL,IAAI+vB,SAAS,CAAC,CAAC,CAAC,EAAErI,iBAAiB,CAACd,UAAU,CAAC,EAAEgB,sBAAsB,CAACqF,eAAe,CAAC,CAAC;EACjG;EACA;EACA1xG,eAAeA,CAAA,EAAG;IACd,IAAI,CAAC+3G,kBAAkB,CAAC,CAAC;EAC7B;EACA;AACJ;AACA;AACA;EACI,IAAInJ,aAAaA,CAAA,EAAG;IAChB,OAAO,IAAI;EACf;EACA;AACJ;AACA;AACA;EACI,IAAIpE,OAAOA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC/lB,IAAI;EACpB;EACA;AACJ;AACA;AACA;AACA;EACI,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10C,IAAI,EAAEivC,mDAAQA;MAClB,CAAC,EAAE;QACCjvC,IAAI,EAAEuuD,+CAAIA;MACd,CAAC,EAAE;QACCvuD,IAAI,EAAE8uC,iDAAM;QACZzpC,IAAI,EAAE,CAAC4tG,mBAAmB;MAC9B,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC,EAAkB;IAAErzH,IAAI,EAAE,CAAC;MAChBogB,IAAI,EAAE+B,gDAAK;MACXsD,IAAI,EAAE,CAAC,cAAc;IACzB,CAAC;EAAE,CAAC;AAAA;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMi/G,oBAAoB,GAAG;EACzBz6D,OAAO,EAAE0tD,SAAS;EAClBztD,WAAW,EAAE8oB,yDAAU,CAAC,MAAM2xC,OAAO;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMrY,eAAe,GAAG,CAAC,MAAM5jH,OAAO,CAAC4O,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqtH,OAAO,SAAShN,SAAS,CAAC;EAC5B/5G,WAAWA,CAACu+B,MAAM,EAAEq4E,UAAU,EAAEqG,eAAe,EAAE8B,cAAc,EAAE;IAC7D,KAAK,CAAC,CAAC;IACP,IAAI,CAAChJ,OAAO,GAAG,IAAIyN,WAAW,CAAC,CAAC;IA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GkjI,QAAQ,CAAClyJ,MAAM,EAAEgvB,CAAC,EAAE,EAAE;IACtC,MAAMykI,GAAG,GAAGvB,QAAQ,CAACljI,CAAC,CAAC;IACvB,IAAIykI,GAAG,IAAI,IAAI,EAAE;MACb,MAAM,IAAIvhI,KAAK,CAAC,+BAA+BuhI,GAAG,qBAAqBzkI,CAAC,EAAE,CAAC;IAC/E;EACJ;AACJ;AACA,SAAS+5I,4BAA4BA,CAACvsJ,MAAM,EAAE;EAC1C,OAAOA,MAAM,KAAK,YAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMowJ,UAAU,CAAC;EACb1xJ,WAAWA,CAAC2xJ,MAAM,EAAEjlB,KAAK,EAAEklB,iBAAiB,EAAEl9C,QAAQ,EAAE5gE,EAAE,EAAE;IACxD,IAAI,CAAC69G,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACjlB,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACklB,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACl9C,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAAC5gE,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACkjG,QAAQ,GAAG,IAAI;IACpB;IACA,IAAI,CAAC6a,SAAS,GAAG,IAAI9/G,0CAAO,CAAC,CAAC;IAC9B,IAAI,CAAC+/G,0BAA0B,CAAC,GAAG,CAAC;EACxC;EACA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c,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;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AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;ACbxB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;ACbgB;AACZ;AACU;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA,sBAAsB,qDAAS;AAC/B;AACA,SAAS,+CAAG;AACZ;AACA;AACA;AACA;AACA,+BAA+B,oDAAQ;AACvC;AACA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;ACjCxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;ACzBxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;ACzBxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,EAAE,EAAC;;;;;;;;;;;;;;;;ACpClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;ACpB4B;AACP;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,kBAAkB,+DAAe,cAAc,mBAAmB,MAAM,2DAAe;AACvF,SAAS,4DAAY;AACrB;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;ACnC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;ACzBkB;AACJ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAQ,mBAAmB,0DAAU;AAC/D;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;AChCgB;AACE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4DAAY,WAAW,2DAAW;AAC3C;;AAEA,iEAAe,iBAAiB,EAAC;;;;;;;;;;;;;;;;;;AChCH;AACS;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,uDAAW;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qDAAS;;AAE1C,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;ACrCkB;AACL;;AAErC;AACA,IAAIihK,QAAQ,GAAG,wBAAwB;EACnCC,OAAO,GAAG,mBAAmB;EAC7BC,MAAM,GAAG,4BAA4B;EACrCC,QAAQ,GAAG,gBAAgB;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASpyN,UAAUA,CAACjE,KAAK,EAAE;EACzB,IAAI,CAACstB,wDAAQ,CAACttB,KAAK,CAAC,EAAE;IACpB,OAAO,KAAK;EACd;EACA;EACA;EACA,IAAI0mI,GAAG,GAAGuvF,0DAAU,CAACj2N,KAAK,CAAC;EAC3B,OAAO0mI,GAAG,IAAIyvF,OAAO,IAAIzvF,GAAG,IAAI0vF,MAAM,IAAI1vF,GAAG,IAAIwvF,QAAQ,IAAIxvF,GAAG,IAAI2vF,QAAQ;AAC9E;AAEA,iEAAepyN,UAAU;;;;;;;;;;;;;;;ACpCzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;AClCxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;AC9BxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;AC5Bc;AACI;AACD;;AAE7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,4DAAY,WAAW,0DAAU;AACxC;AACA;AACA,cAAc,4DAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;;;AC7DyB;AACd;AACF;;AAEtC;AACA,uBAAuB,oDAAQ,IAAI,iEAAqB;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yDAAS,qBAAqB,4DAAgB;;AAEpF,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;AC1BoB;AACN;AACC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2DAAW,WAAW,6DAAa,iBAAiB,0DAAU;AACvE;;AAEA,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;AC/BkB;AACU;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,WAAW,QAAQ,gBAAgB,IAAI,gBAAgB;AACvD;AACA,YAAY,8DAAc;AAC1B,EAAE,yDAAS;AACX,CAAC;;AAED,iEAAe,KAAK,EAA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","sources":["./src/api/djc-admin-service/api.module.ts","./src/api/djc-admin-service/api/api.ts","./src/api/djc-admin-service/api/azure.service.ts","./src/api/djc-admin-service/api/checklistTemplate.service.ts","./src/api/djc-admin-service/api/consumableEquivalence.service.ts","./src/api/djc-admin-service/api/country.service.ts","./src/api/djc-admin-service/api/currency.service.ts","./src/api/djc-admin-service/api/customerCompany.service.ts","./src/api/djc-admin-service/api/customerCompanyUser.service.ts","./src/api/djc-admin-service/api/customerConsent.service.ts","./src/api/djc-admin-service/api/kit.service.ts","./src/api/djc-admin-service/api/kpiBenchmarkController.service.ts","./src/api/djc-admin-service/api/language.service.ts","./src/api/djc-admin-service/api/legalNotice.service.ts","./src/api/djc-admin-service/api/nonProductiveActivity.service.ts","./src/api/djc-admin-service/api/notification.service.ts","./src/api/djc-admin-service/api/notificationSubscription.service.ts","./src/api/djc-admin-service/api/onHoldReasons.service.ts","./src/api/djc-admin-service/api/orderTypeHeader.service.ts","./src/api/djc-admin-service/api/otherItem.service.ts","./src/api/djc-admin-service/api/paymentType.service.ts","./src/api/djc-admin-service/api/permission.service.ts","./src/api/djc-admin-service/api/priorityType.service.ts","./src/api/djc-admin-service/api/release.service.ts","./src/api/djc-admin-service/api/role.service.ts","./src/api/djc-admin-service/api/sendNotificationController.service.ts","./src/api/djc-admin-service/api/shift.service.ts","./src/api/djc-admin-service/api/skill.service.ts","./src/api/djc-admin-service/api/userGuide.service.ts","./src/api/djc-admin-service/api/vehicle.service.ts","./src/api/djc-admin-service/api/vehicleCourtesy.service.ts","./src/api/djc-admin-service/api/workshop.service.ts","./src/api/djc-admin-service/api/workshopBay.service.ts","./src/api/djc-admin-service/api/workshopChecklistType.service.ts","./src/api/djc-admin-service/api/workshopDiscount.service.ts","./src/api/djc-admin-service/api/workshopUser.service.ts","./src/api/djc-admin-service/configuration.ts","./src/api/djc-admin-service/encoder.ts","./src/api/djc-admin-service/index.ts","./src/api/djc-admin-service/model/appointmentDto.ts","./src/api/djc-admin-service/model/appointmentSignatureDto.ts","./src/api/djc-admin-service/model/appointmentStatusDto.ts","./src/api/djc-admin-service/model/azureTokenDto.ts","./src/api/djc-admin-service/model/brandDto.ts","./src/api/djc-admin-service/model/checkListResultAttachmentDto.ts","./src/api/djc-admin-service/model/checkListResultDto.ts","./src/api/djc-admin-service/model/checklistDamageDto.ts","./src/api/djc-admin-service/model/checklistInstanceDto.ts","./src/api/djc-admin-service/model/checklistTemplateDto.ts","./src/api/djc-admin-service/model/consumable.ts","./src/api/djc-admin-service/model/consumableAssociationDto.ts","./src/api/djc-admin-service/model/consumableDto.ts","./src/api/djc-admin-service/model/countryDto.ts","./src/api/djc-admin-service/model/cpdContactDetailsDto.ts","./src/api/djc-admin-service/model/currencyDto.ts","./src/api/djc-admin-service/model/customerCompanyDto.ts","./src/api/djc-admin-service/model/customerCompanyPatchDto.ts","./src/api/djc-admin-service/model/customerCompanyUserDto.ts","./src/api/djc-admin-service/model/defaultPriorityTypeDto.ts","./src/api/djc-admin-service/model/jobcard.ts","./src/api/djc-admin-service/model/jobcardAttachment.ts","./src/api/djc-admin-service/model/jobcardAttachmentDto.ts","./src/api/djc-admin-service/model/jobcardDto.ts","./src/api/djc-admin-service/model/jobcardEngineHours.ts","./src/api/djc-admin-service/model/jobcardItem.ts","./src/api/djc-admin-service/model/jobcardItemAttachment.ts","./src/api/djc-admin-service/model/jobcardItemAttachmentDto.ts","./src/api/djc-admin-service/model/jobcardItemCustomerStatusDto.ts","./src/api/djc-admin-service/model/jobcardItemDeleted.ts","./src/api/djc-admin-service/model/jobcardItemDeletedDto.ts","./src/api/djc-admin-service/model/jobcardItemDto.ts","./src/api/djc-admin-service/model/jobcardItemExtraOperation.ts","./src/api/djc-admin-service/model/jobcardItemExtraOperationDto.ts","./src/api/djc-admin-service/model/jobcardItemMobileDto.ts","./src/api/djc-admin-service/model/jobcardItemOperation.ts","./src/api/djc-admin-service/model/jobcardItemOperationConsumable.ts","./src/api/djc-admin-service/model/jobcardItemOperationConsumableDto.ts","./src/api/djc-admin-service/model/jobcardItemOperationDto.ts","./src/api/djc-admin-service/model/jobcardItemOperationPart.ts","./src/api/djc-admin-service/model/jobcardItemOperationPartDto.ts","./src/api/djc-admin-service/model/jobcardItemOperationPartLocation.ts","./src/api/djc-admin-service/model/jobcardItemOperationPartLocationDto.ts","./src/api/djc-admin-service/model/jobcardItemSpellDto.ts","./src/api/djc-admin-service/model/jobcardItemStatus.ts","./src/api/djc-admin-service/model/jobcardItemStatusDto.ts","./src/api/djc-admin-service/model/jobcardItemTechnicianDto.ts","./src/api/djc-admin-service/model/jobcardMileage.ts","./src/api/djc-admin-service/model/jobcardPartsBacklog.ts","./src/api/djc-admin-service/model/jobcardPartsBacklogDto.ts","./src/api/djc-admin-service/model/jobcardTravel.ts","./src/api/djc-admin-service/model/jobcardTravelDto.ts","./src/api/djc-admin-service/model/jobcardVehicleDto.ts","./src/api/djc-admin-service/model/kitDto.ts","./src/api/djc-admin-service/model/kitItemOperationPart.ts","./src/api/djc-admin-service/model/kpiDto.ts","./src/api/djc-admin-service/model/languageDto.ts","./src/api/djc-admin-service/model/legalNoticeDto.ts","./src/api/djc-admin-service/model/modelDto.ts","./src/api/djc-admin-service/model/models.ts","./src/api/djc-admin-service/model/mpDeltaDto.ts","./src/api/djc-admin-service/model/mpInformationDto.ts","./src/api/djc-admin-service/model/mpKitCompositionDto.ts","./src/api/djc-admin-service/model/nonProductiveActivityDto.ts","./src/api/djc-admin-service/model/nonProductiveActivityStatusDto.ts","./src/api/djc-admin-service/model/notification.ts","./src/api/djc-admin-service/model/notificationCreationDto.ts","./src/api/djc-admin-service/model/notificationDto.ts","./src/api/djc-admin-service/model/notificationSubscriptionDto.ts","./src/api/djc-admin-service/model/notificationSubscriptionSetDto.ts","./src/api/djc-admin-service/model/onHoldReasonDto.ts","./src/api/djc-admin-service/model/openingDay.ts","./src/api/djc-admin-service/model/orderTypeHeaderDto.ts","./src/api/djc-admin-service/model/part.ts","./src/api/djc-admin-service/model/partDetail.ts","./src/api/djc-admin-service/model/partDto.ts","./src/api/djc-admin-service/model/partMaster.ts","./src/api/djc-admin-service/model/partMasterHeader.ts","./src/api/djc-admin-service/model/partsTrackerCsps.ts","./src/api/djc-admin-service/model/partsTrackerDms.ts","./src/api/djc-admin-service/model/paymentSubSubTypeDto.ts","./src/api/djc-admin-service/model/paymentSubTypeDto.ts","./src/api/djc-admin-service/model/paymentTypeDto.ts","./src/api/djc-admin-service/model/period.ts","./src/api/djc-admin-service/model/priorityTypeDto.ts","./src/api/djc-admin-service/model/releaseDto.ts","./src/api/djc-admin-service/model/role.ts","./src/api/djc-admin-service/model/roleDto.ts","./src/api/djc-admin-service/model/sentBackCreationDto.ts","./src/api/djc-admin-service/model/shiftDto.ts","./src/api/djc-admin-service/model/shiftPeriodDto.ts","./src/api/djc-admin-service/model/skillDto.ts","./src/api/djc-admin-service/model/splitDto.ts","./src/api/djc-admin-service/model/unitStatusDto.ts","./src/api/djc-admin-service/model/userGuideDto.ts","./src/api/djc-admin-service/model/userNotificationDto.ts","./src/api/djc-admin-service/model/vehicleCourtesyBookingDto.ts","./src/api/djc-admin-service/model/vehicleCourtesyDto.ts","./src/api/djc-admin-service/model/vehicleLegalInspectionDto.ts","./src/api/djc-admin-service/model/warrantyClaimData.ts","./src/api/djc-admin-service/model/warrantyClaimDataDto.ts","./src/api/djc-admin-service/model/warrantyTypeDto.ts","./src/api/djc-admin-service/model/workshop.ts","./src/api/djc-admin-service/model/workshopBay.ts","./src/api/djc-admin-service/model/workshopBayDto.ts","./src/api/djc-admin-service/model/workshopChecklistTypeDto.ts","./src/api/djc-admin-service/model/workshopDiscount.ts","./src/api/djc-admin-service/model/workshopDiscountDto.ts","./src/api/djc-admin-service/model/workshopDto.ts","./src/api/djc-admin-service/model/workshopSalesOrganizationDto.ts","./src/api/djc-admin-service/model/workshopUser.ts","./src/api/djc-admin-service/model/workshopUserAvailabilityDto.ts","./src/api/djc-admin-service/model/workshopUserDto.ts","./src/api/djc-admin-service/model/workshopUserPreferenceDto.ts","./src/api/djc-admin-service/model/workshopUserRelation.ts","./src/api/djc-admin-service/model/workshopUserTravelPositionDto.ts","./src/api/djc-admin-service/model/workshopUserUnavailability.ts","./src/api/djc-admin-service/model/workshopUserUnavailabilityDto.ts","./src/api/djc-admin-service/model/worshopUserSetting.ts","./src/api/djc-admin-service/variables.ts","./src/api/djc-asist-service/api.module.ts","./src/api/djc-asist-service/api/api.ts","./src/api/djc-asist-service/api/appointments.service.ts","./src/api/djc-asist-service/api/asistFeedback.service.ts","./src/api/djc-asist-service/api/azure.service.ts","./src/api/djc-asist-service/configuration.ts","./src/api/djc-asist-service/encoder.ts","./src/api/djc-asist-service/index.ts","./src/api/djc-asist-service/model/appointmentDto.ts","./src/api/djc-asist-service/model/appointmentSignatureDto.ts","./src/api/djc-asist-service/model/appointmentStatusDto.ts","./src/api/djc-asist-service/model/asistResponseDto.ts","./src/api/djc-asist-service/model/azureTokenDto.ts","./src/api/djc-asist-service/model/brandDto.ts","./src/api/djc-asist-service/model/checkListResultAttachmentDto.ts","./src/api/djc-asist-service/model/checkListResultDto.ts","./src/api/djc-asist-service/model/checklistDamageDto.ts","./src/api/djc-asist-service/model/checklistInstanceDto.ts","./src/api/djc-asist-service/model/consumableDto.ts","./src/api/djc-asist-service/model/cpdContactDetailsDto.ts","./src/api/djc-asist-service/model/customerCompanyDto.ts","./src/api/djc-asist-service/model/customerCompanyUserDto.ts","./src/api/djc-asist-service/model/feedbackAttachmentDto.ts","./src/api/djc-asist-service/model/feedbackResultDto.ts","./src/api/djc-asist-service/model/jobcardAttachmentDto.ts","./src/api/djc-asist-service/model/jobcardDto.ts","./src/api/djc-asist-service/model/jobcardItemAttachmentDto.ts","./src/api/djc-asist-service/model/jobcardItemCustomerStatusDto.ts","./src/api/djc-asist-service/model/jobcardItemDeletedDto.ts","./src/api/djc-asist-service/model/jobcardItemDto.ts","./src/api/djc-asist-service/model/jobcardItemExtraOperationDto.ts","./src/api/djc-asist-service/model/jobcardItemMobileDto.ts","./src/api/djc-asist-service/model/jobcardItemOperation.ts","./src/api/djc-asist-service/model/jobcardItemOperationConsumableDto.ts","./src/api/djc-asist-service/model/jobcardItemOperationDto.ts","./src/api/djc-asist-service/model/jobcardItemOperationPart.ts","./src/api/djc-asist-service/model/jobcardItemOperationPartDto.ts","./src/api/djc-asist-service/model/jobcardItemOperationPartLocation.ts","./src/api/djc-asist-service/model/jobcardItemOperationPartLocationDto.ts","./src/api/djc-asist-service/model/jobcardItemSpellDto.ts","./src/api/djc-asist-service/model/jobcardItemStatusDto.ts","./src/api/djc-asist-service/model/jobcardItemTechnicianDto.ts","./src/api/djc-asist-service/model/jobcardPartsBacklogDto.ts","./src/api/djc-asist-service/model/jobcardTravelDto.ts","./src/api/djc-asist-service/model/jobcardVehicleDto.ts","./src/api/djc-asist-service/model/modelDto.ts","./src/api/djc-asist-service/model/models.ts","./src/api/djc-asist-service/model/mpDeltaDto.ts","./src/api/djc-asist-service/model/mpInformationDto.ts","./src/api/djc-asist-service/model/mpKitCompositionDto.ts","./src/api/djc-asist-service/model/onHoldReasonDto.ts","./src/api/djc-asist-service/model/openingDay.ts","./src/api/djc-asist-service/model/part.ts","./src/api/djc-asist-service/model/partDto.ts","./src/api/djc-asist-service/model/paymentSubSubTypeDto.ts","./src/api/djc-asist-service/model/paymentSubTypeDto.ts","./src/api/djc-asist-service/model/paymentTypeDto.ts","./src/api/djc-asist-service/model/period.ts","./src/api/djc-asist-service/model/priorityTypeDto.ts","./src/api/djc-asist-service/model/roleDto.ts","./src/api/djc-asist-service/model/shiftDto.ts","./src/api/djc-asist-service/model/shiftPeriodDto.ts","./src/api/djc-asist-service/model/skillDto.ts","./src/api/djc-asist-service/model/splitDto.ts","./src/api/djc-asist-service/model/unitStatusDto.ts","./src/api/djc-asist-service/model/vehicleCourtesyBookingDto.ts","./src/api/djc-asist-service/model/vehicleCourtesyDto.ts","./src/api/djc-asist-service/model/vehicleLegalInspectionDto.ts","./src/api/djc-asist-service/model/warrantyClaimDataDto.ts","./src/api/djc-asist-service/model/warrantyTypeDto.ts","./src/api/djc-asist-service/model/workshopBayDto.ts","./src/api/djc-asist-service/model/workshopDiscountDto.ts","./src/api/djc-asist-service/model/workshopDto.ts","./src/api/djc-asist-service/model/workshopSalesOrganizationDto.ts","./src/api/djc-asist-service/model/workshopUserDto.ts","./src/api/djc-asist-service/model/workshopUserTravelPositionDto.ts","./src/api/djc-asist-service/model/workshopUserUnavailabilityDto.ts","./src/api/djc-asist-service/variables.ts","./src/api/djc-auth-service/api.module.ts","./src/api/djc-auth-service/api/api.ts","./src/api/djc-auth-service/api/loginController.service.ts","./src/api/djc-auth-service/configuration.ts","./src/api/djc-auth-service/encoder.ts","./src/api/djc-auth-service/index.ts","./src/api/djc-auth-service/model/applicationToken.ts","./src/api/djc-auth-service/model/models.ts","./src/api/djc-auth-service/model/refreshTokenDto.ts","./src/api/djc-auth-service/variables.ts","./src/api/djc-booking-service/api.module.ts","./src/api/djc-booking-service/api/api.ts","./src/api/djc-booking-service/api/appointmentEmails.service.ts","./src/api/djc-booking-service/api/appointmentSignatures.service.ts","./src/api/djc-booking-service/api/appointmentStatuses.service.ts","./src/api/djc-booking-service/api/appointments.service.ts","./src/api/djc-booking-service/api/azure.service.ts","./src/api/djc-booking-service/api/brand.service.ts","./src/api/djc-booking-service/api/cSPSController.service.ts","./src/api/djc-booking-service/api/checklistDamage.service.ts","./src/api/djc-booking-service/api/checklistInstance.service.ts","./src/api/djc-booking-service/api/checklistResult.service.ts","./src/api/djc-booking-service/api/checklistResultAttachment.service.ts","./src/api/djc-booking-service/api/checklistTemplate.service.ts","./src/api/djc-booking-service/api/clocking.service.ts","./src/api/djc-booking-service/api/country.service.ts","./src/api/djc-booking-service/api/customerCompany.service.ts","./src/api/djc-booking-service/api/customerCompanyUser.service.ts","./src/api/djc-booking-service/api/deferredActivities.service.ts","./src/api/djc-booking-service/api/dmsLogs.service.ts","./src/api/djc-booking-service/api/eParts.service.ts","./src/api/djc-booking-service/api/exportInvoicePdf.service.ts","./src/api/djc-booking-service/api/inWorkshopController.service.ts","./src/api/djc-booking-service/api/jobcard.service.ts","./src/api/djc-booking-service/api/jobcardItem.service.ts","./src/api/djc-booking-service/api/jobcardItemAttachment.service.ts","./src/api/djc-booking-service/api/jobcardItemExtraOperation.service.ts","./src/api/djc-booking-service/api/jobcardItemOperation.service.ts","./src/api/djc-booking-service/api/kit.service.ts","./src/api/djc-booking-service/api/kpiBenchmarkController.service.ts","./src/api/djc-booking-service/api/language.service.ts","./src/api/djc-booking-service/api/legalNotice.service.ts","./src/api/djc-booking-service/api/maintenance.service.ts","./src/api/djc-booking-service/api/model.service.ts","./src/api/djc-booking-service/api/nonProductiveActivity.service.ts","./src/api/djc-booking-service/api/notification.service.ts","./src/api/djc-booking-service/api/onHoldReasons.service.ts","./src/api/djc-booking-service/api/orderTypeHeader.service.ts","./src/api/djc-booking-service/api/otherItem.service.ts","./src/api/djc-booking-service/api/parts.service.ts","./src/api/djc-booking-service/api/partsTracker.service.ts","./src/api/djc-booking-service/api/paymentType.service.ts","./src/api/djc-booking-service/api/permission.service.ts","./src/api/djc-booking-service/api/priorityType.service.ts","./src/api/djc-booking-service/api/release.service.ts","./src/api/djc-booking-service/api/role.service.ts","./src/api/djc-booking-service/api/userGuide.service.ts","./src/api/djc-booking-service/api/vehicle.service.ts","./src/api/djc-booking-service/api/vehicleCourtesy.service.ts","./src/api/djc-booking-service/api/vehicleCourtesyBooking.service.ts","./src/api/djc-booking-service/api/vehicleLegalInspection.service.ts","./src/api/djc-booking-service/api/warranty.service.ts","./src/api/djc-booking-service/api/workshop.service.ts","./src/api/djc-booking-service/api/workshopBay.service.ts","./src/api/djc-booking-service/api/workshopChecklistType.service.ts","./src/api/djc-booking-service/api/workshopSalesOrganization.service.ts","./src/api/djc-booking-service/api/workshopUser.service.ts","./src/api/djc-booking-service/api/workshopUsers.service.ts","./src/api/djc-booking-service/configuration.ts","./src/api/djc-booking-service/encoder.ts","./src/api/djc-booking-service/index.ts","./src/api/djc-booking-service/model/activityShortDto.ts","./src/api/djc-booking-service/model/apiResponseDto.ts","./src/api/djc-booking-service/model/appointmentDto.ts","./src/api/djc-booking-service/model/appointmentPatchDto.ts","./src/api/djc-booking-service/model/appointmentShortDto.ts","./src/api/djc-booking-service/model/appointmentSignatureDto.ts","./src/api/djc-booking-service/model/appointmentSignatureFileDto.ts","./src/api/djc-booking-service/model/appointmentStatusDto.ts","./src/api/djc-booking-service/model/appointmentStatusPatchDto.ts","./src/api/djc-booking-service/model/appointmentStatusShortDto.ts","./src/api/djc-booking-service/model/appointmentViewDto.ts","./src/api/djc-booking-service/model/azureTokenDto.ts","./src/api/djc-booking-service/model/baseAppointmentDto.ts","./src/api/djc-booking-service/model/bookingAppointmentDto.ts","./src/api/djc-booking-service/model/bookingAppointmentDtoAllOf.ts","./src/api/djc-booking-service/model/brandDto.ts","./src/api/djc-booking-service/model/brandPatchDto.ts","./src/api/djc-booking-service/model/checkListResultAttachmentDto.ts","./src/api/djc-booking-service/model/checkListResultDto.ts","./src/api/djc-booking-service/model/checkListResultPatchDto.ts","./src/api/djc-booking-service/model/checklistDamageDto.ts","./src/api/djc-booking-service/model/checklistDamagePatchDto.ts","./src/api/djc-booking-service/model/checklistInstanceDto.ts","./src/api/djc-booking-service/model/checklistInstancePatchDto.ts","./src/api/djc-booking-service/model/checklistInstanceViewDto.ts","./src/api/djc-booking-service/model/checklistTemplateDto.ts","./src/api/djc-booking-service/model/clockingStartedDto.ts","./src/api/djc-booking-service/model/consumable.ts","./src/api/djc-booking-service/model/consumableDto.ts","./src/api/djc-booking-service/model/countryDto.ts","./src/api/djc-booking-service/model/cpdContactDetailsDto.ts","./src/api/djc-booking-service/model/cspsPartAvailabilityDto.ts","./src/api/djc-booking-service/model/customerAppointmentDto.ts","./src/api/djc-booking-service/model/customerAppointmentDtoAllOf.ts","./src/api/djc-booking-service/model/customerCompanyAppointmentCheckDto.ts","./src/api/djc-booking-service/model/customerCompanyDto.ts","./src/api/djc-booking-service/model/customerCompanyShortDto.ts","./src/api/djc-booking-service/model/customerCompanyUserDto.ts","./src/api/djc-booking-service/model/customerCompanyUserShortDto.ts","./src/api/djc-booking-service/model/ePartsMarketMappingDto.ts","./src/api/djc-booking-service/model/jobcard.ts","./src/api/djc-booking-service/model/jobcardAttachment.ts","./src/api/djc-booking-service/model/jobcardAttachmentDto.ts","./src/api/djc-booking-service/model/jobcardDto.ts","./src/api/djc-booking-service/model/jobcardEngineHours.ts","./src/api/djc-booking-service/model/jobcardItem.ts","./src/api/djc-booking-service/model/jobcardItemAttachment.ts","./src/api/djc-booking-service/model/jobcardItemAttachmentDto.ts","./src/api/djc-booking-service/model/jobcardItemCustomerStatusDto.ts","./src/api/djc-booking-service/model/jobcardItemDeferredDto.ts","./src/api/djc-booking-service/model/jobcardItemDeleted.ts","./src/api/djc-booking-service/model/jobcardItemDeletedDto.ts","./src/api/djc-booking-service/model/jobcardItemDto.ts","./src/api/djc-booking-service/model/jobcardItemExtraOperation.ts","./src/api/djc-booking-service/model/jobcardItemExtraOperationDto.ts","./src/api/djc-booking-service/model/jobcardItemMobileDto.ts","./src/api/djc-booking-service/model/jobcardItemOperation.ts","./src/api/djc-booking-service/model/jobcardItemOperationConsumable.ts","./src/api/djc-booking-service/model/jobcardItemOperationConsumableDto.ts","./src/api/djc-booking-service/model/jobcardItemOperationDto.ts","./src/api/djc-booking-service/model/jobcardItemOperationPart.ts","./src/api/djc-booking-service/model/jobcardItemOperationPartDto.ts","./src/api/djc-booking-service/model/jobcardItemOperationPartLocation.ts","./src/api/djc-booking-service/model/jobcardItemOperationPartLocationDto.ts","./src/api/djc-booking-service/model/jobcardItemPatchDto.ts","./src/api/djc-booking-service/model/jobcardItemShortDto.ts","./src/api/djc-booking-service/model/jobcardItemSpellDto.ts","./src/api/djc-booking-service/model/jobcardItemStatus.ts","./src/api/djc-booking-service/model/jobcardItemStatusDto.ts","./src/api/djc-booking-service/model/jobcardItemTechnicianDto.ts","./src/api/djc-booking-service/model/jobcardMileage.ts","./src/api/djc-booking-service/model/jobcardPartsBacklog.ts","./src/api/djc-booking-service/model/jobcardPartsBacklogDto.ts","./src/api/djc-booking-service/model/jobcardPatchDto.ts","./src/api/djc-booking-service/model/jobcardShortDto.ts","./src/api/djc-booking-service/model/jobcardTravel.ts","./src/api/djc-booking-service/model/jobcardTravelDto.ts","./src/api/djc-booking-service/model/jobcardVehicleDto.ts","./src/api/djc-booking-service/model/jobcardViewDto.ts","./src/api/djc-booking-service/model/kitDto.ts","./src/api/djc-booking-service/model/kitItemOperationPart.ts","./src/api/djc-booking-service/model/kpiDto.ts","./src/api/djc-booking-service/model/languageDto.ts","./src/api/djc-booking-service/model/legalNoticeDto.ts","./src/api/djc-booking-service/model/modelDto.ts","./src/api/djc-booking-service/model/models.ts","./src/api/djc-booking-service/model/mpDeltaDto.ts","./src/api/djc-booking-service/model/mpInformationDto.ts","./src/api/djc-booking-service/model/mpKitCompositionDto.ts","./src/api/djc-booking-service/model/newAppointmentDto.ts","./src/api/djc-booking-service/model/nonProductiveActivityDto.ts","./src/api/djc-booking-service/model/nonProductiveActivityStatusDto.ts","./src/api/djc-booking-service/model/notificationCreationDto.ts","./src/api/djc-booking-service/model/notificationDto.ts","./src/api/djc-booking-service/model/onHoldReasonDto.ts","./src/api/djc-booking-service/model/onHoldReasonShortDto.ts","./src/api/djc-booking-service/model/openingDay.ts","./src/api/djc-booking-service/model/operationWarrantyDto.ts","./src/api/djc-booking-service/model/orderTypeHeaderDto.ts","./src/api/djc-booking-service/model/part.ts","./src/api/djc-booking-service/model/partDetail.ts","./src/api/djc-booking-service/model/partDetailDto.ts","./src/api/djc-booking-service/model/partDto.ts","./src/api/djc-booking-service/model/partMaster.ts","./src/api/djc-booking-service/model/partMasterHeader.ts","./src/api/djc-booking-service/model/partReturnDto.ts","./src/api/djc-booking-service/model/partsTrackerCsps.ts","./src/api/djc-booking-service/model/partsTrackerCspsDto.ts","./src/api/djc-booking-service/model/partsTrackerDms.ts","./src/api/djc-booking-service/model/partsTrackerDmsDto.ts","./src/api/djc-booking-service/model/paymentSubSubTypeDto.ts","./src/api/djc-booking-service/model/paymentSubTypeDto.ts","./src/api/djc-booking-service/model/paymentTypeDto.ts","./src/api/djc-booking-service/model/period.ts","./src/api/djc-booking-service/model/priorityTypeDto.ts","./src/api/djc-booking-service/model/priorityTypeShortDto.ts","./src/api/djc-booking-service/model/releaseDto.ts","./src/api/djc-booking-service/model/role.ts","./src/api/djc-booking-service/model/roleDto.ts","./src/api/djc-booking-service/model/sentBackCreationDto.ts","./src/api/djc-booking-service/model/shiftDto.ts","./src/api/djc-booking-service/model/shiftPeriodDto.ts","./src/api/djc-booking-service/model/skillDto.ts","./src/api/djc-booking-service/model/splitDto.ts","./src/api/djc-booking-service/model/unitStatusDto.ts","./src/api/djc-booking-service/model/unitStatusShortDto.ts","./src/api/djc-booking-service/model/updateAppointmentDto.ts","./src/api/djc-booking-service/model/userGuideDto.ts","./src/api/djc-booking-service/model/vehicleCourtesyBookingDto.ts","./src/api/djc-booking-service/model/vehicleCourtesyBookingShortDto.ts","./src/api/djc-booking-service/model/vehicleCourtesyDto.ts","./src/api/djc-booking-service/model/vehicleLegalInspectionDto.ts","./src/api/djc-booking-service/model/vehicleShortDto.ts","./src/api/djc-booking-service/model/warrantyClaimData.ts","./src/api/djc-booking-service/model/warrantyClaimDataDto.ts","./src/api/djc-booking-service/model/warrantyTypeDto.ts","./src/api/djc-booking-service/model/workshop.ts","./src/api/djc-booking-service/model/workshopBay.ts","./src/api/djc-booking-service/model/workshopBayDto.ts","./src/api/djc-booking-service/model/workshopChecklistTypeDto.ts","./src/api/djc-booking-service/model/workshopDiscount.ts","./src/api/djc-booking-service/model/workshopDiscountDto.ts","./src/api/djc-booking-service/model/workshopDto.ts","./src/api/djc-booking-service/model/workshopInStatus.ts","./src/api/djc-booking-service/model/workshopSalesOrganizationDto.ts","./src/api/djc-booking-service/model/workshopUser.ts","./src/api/djc-booking-service/model/workshopUserAvailabilityDto.ts","./src/api/djc-booking-service/model/workshopUserDto.ts","./src/api/djc-booking-service/model/workshopUserPreferenceDto.ts","./src/api/djc-booking-service/model/workshopUserRelation.ts","./src/api/djc-booking-service/model/workshopUserTravelPositionDto.ts","./src/api/djc-booking-service/model/workshopUserUnavailability.ts","./src/api/djc-booking-service/model/workshopUserUnavailabilityDto.ts","./src/api/djc-booking-service/model/worshopUserSetting.ts","./src/api/djc-booking-service/variables.ts","./src/api/djc-dms-service/api.module.ts","./src/api/djc-dms-service/api/api.ts","./src/api/djc-dms-service/api/dmsCommunicationController.service.ts","./src/api/djc-dms-service/api/dmsController.service.ts","./src/api/djc-dms-service/api/dmsLogController.service.ts","./src/api/djc-dms-service/configuration.ts","./src/api/djc-dms-service/encoder.ts","./src/api/djc-dms-service/index.ts","./src/api/djc-dms-service/model/apiResponseDto.ts","./src/api/djc-dms-service/model/appointmentDto.ts","./src/api/djc-dms-service/model/appointmentSignatureDto.ts","./src/api/djc-dms-service/model/appointmentStatusDto.ts","./src/api/djc-dms-service/model/brandDto.ts","./src/api/djc-dms-service/model/checkListResultAttachmentDto.ts","./src/api/djc-dms-service/model/checkListResultDto.ts","./src/api/djc-dms-service/model/checklistDamageDto.ts","./src/api/djc-dms-service/model/checklistInstanceDto.ts","./src/api/djc-dms-service/model/consumable.ts","./src/api/djc-dms-service/model/consumableDto.ts","./src/api/djc-dms-service/model/cpdContactDetailsDto.ts","./src/api/djc-dms-service/model/customerCompanyDto.ts","./src/api/djc-dms-service/model/customerCompanyUserDto.ts","./src/api/djc-dms-service/model/dmsCommunicationDto.ts","./src/api/djc-dms-service/model/dmsLog.ts","./src/api/djc-dms-service/model/dmsLogDto.ts","./src/api/djc-dms-service/model/dmsStatusDto.ts","./src/api/djc-dms-service/model/jobcard.ts","./src/api/djc-dms-service/model/jobcardAttachment.ts","./src/api/djc-dms-service/model/jobcardAttachmentDto.ts","./src/api/djc-dms-service/model/jobcardDto.ts","./src/api/djc-dms-service/model/jobcardEngineHours.ts","./src/api/djc-dms-service/model/jobcardItem.ts","./src/api/djc-dms-service/model/jobcardItemAttachment.ts","./src/api/djc-dms-service/model/jobcardItemAttachmentDto.ts","./src/api/djc-dms-service/model/jobcardItemCustomerStatusDto.ts","./src/api/djc-dms-service/model/jobcardItemDeleted.ts","./src/api/djc-dms-service/model/jobcardItemDeletedDto.ts","./src/api/djc-dms-service/model/jobcardItemDto.ts","./src/api/djc-dms-service/model/jobcardItemExtraOperation.ts","./src/api/djc-dms-service/model/jobcardItemExtraOperationDto.ts","./src/api/djc-dms-service/model/jobcardItemMobileDto.ts","./src/api/djc-dms-service/model/jobcardItemOperation.ts","./src/api/djc-dms-service/model/jobcardItemOperationConsumable.ts","./src/api/djc-dms-service/model/jobcardItemOperationConsumableDto.ts","./src/api/djc-dms-service/model/jobcardItemOperationDto.ts","./src/api/djc-dms-service/model/jobcardItemOperationPart.ts","./src/api/djc-dms-service/model/jobcardItemOperationPartDto.ts","./src/api/djc-dms-service/model/jobcardItemOperationPartLocation.ts","./src/api/djc-dms-service/model/jobcardItemOperationPartLocationDto.ts","./src/api/djc-dms-service/model/jobcardItemSpellDto.ts","./src/api/djc-dms-service/model/jobcardItemStatus.ts","./src/api/djc-dms-service/model/jobcardItemStatusDto.ts","./src/api/djc-dms-service/model/jobcardItemTechnicianDto.ts","./src/api/djc-dms-service/model/jobcardMileage.ts","./src/api/djc-dms-service/model/jobcardPartsBacklog.ts","./src/api/djc-dms-service/model/jobcardPartsBacklogDto.ts","./src/api/djc-dms-service/model/jobcardTravel.ts","./src/api/djc-dms-service/model/jobcardTravelDto.ts","./src/api/djc-dms-service/model/jobcardVehicleDto.ts","./src/api/djc-dms-service/model/kitItemOperationPart.ts","./src/api/djc-dms-service/model/modelDto.ts","./src/api/djc-dms-service/model/models.ts","./src/api/djc-dms-service/model/mpDeltaDto.ts","./src/api/djc-dms-service/model/mpInformationDto.ts","./src/api/djc-dms-service/model/mpKitCompositionDto.ts","./src/api/djc-dms-service/model/onHoldReasonDto.ts","./src/api/djc-dms-service/model/openingDay.ts","./src/api/djc-dms-service/model/pageDmsLog.ts","./src/api/djc-dms-service/model/pageDmsLogDto.ts","./src/api/djc-dms-service/model/pageable.ts","./src/api/djc-dms-service/model/part.ts","./src/api/djc-dms-service/model/partDetail.ts","./src/api/djc-dms-service/model/partDto.ts","./src/api/djc-dms-service/model/partMaster.ts","./src/api/djc-dms-service/model/partMasterHeader.ts","./src/api/djc-dms-service/model/partsTrackerCsps.ts","./src/api/djc-dms-service/model/partsTrackerDms.ts","./src/api/djc-dms-service/model/paymentSubSubTypeDto.ts","./src/api/djc-dms-service/model/paymentSubTypeDto.ts","./src/api/djc-dms-service/model/paymentTypeDto.ts","./src/api/djc-dms-service/model/period.ts","./src/api/djc-dms-service/model/priorityTypeDto.ts","./src/api/djc-dms-service/model/role.ts","./src/api/djc-dms-service/model/roleDto.ts","./src/api/djc-dms-service/model/shiftDto.ts","./src/api/djc-dms-service/model/shiftPeriodDto.ts","./src/api/djc-dms-service/model/skillDto.ts","./src/api/djc-dms-service/model/sort.ts","./src/api/djc-dms-service/model/splitDto.ts","./src/api/djc-dms-service/model/unitStatusDto.ts","./src/api/djc-dms-service/model/vehicleCourtesyBookingDto.ts","./src/api/djc-dms-service/model/vehicleCourtesyDto.ts","./src/api/djc-dms-service/model/vehicleLegalInspectionDto.ts","./src/api/djc-dms-service/model/warrantyClaimData.ts","./src/api/djc-dms-service/model/warrantyClaimDataDto.ts","./src/api/djc-dms-service/model/warrantyTypeDto.ts","./src/api/djc-dms-service/model/workshop.ts","./src/api/djc-dms-service/model/workshopBay.ts","./src/api/djc-dms-service/model/workshopBayDto.ts","./src/api/djc-dms-service/model/workshopDiscount.ts","./src/api/djc-dms-service/model/workshopDiscountDto.ts","./src/api/djc-dms-service/model/workshopDto.ts","./src/api/djc-dms-service/model/workshopSalesOrganizationDto.ts","./src/api/djc-dms-service/model/workshopUser.ts","./src/api/djc-dms-service/model/workshopUserDto.ts","./src/api/djc-dms-service/model/workshopUserRelation.ts","./src/api/djc-dms-service/model/workshopUserTravelPositionDto.ts","./src/api/djc-dms-service/model/workshopUserUnavailability.ts","./src/api/djc-dms-service/model/workshopUserUnavailabilityDto.ts","./src/api/djc-dms-service/model/worshopUserSetting.ts","./src/api/djc-dms-service/variables.ts","./src/api/djc-report-service/api.module.ts","./src/api/djc-report-service/api/activityReport.service.ts","./src/api/djc-report-service/api/api.ts","./src/api/djc-report-service/api/appointmentsReportCancelled.service.ts","./src/api/djc-report-service/api/auditReport.service.ts","./src/api/djc-report-service/api/inspectionCheckListReport.service.ts","./src/api/djc-report-service/api/kpiCustomerTrends.service.ts","./src/api/djc-report-service/api/kpiInspectionReport.service.ts","./src/api/djc-report-service/api/kpiOrderStatus.service.ts","./src/api/djc-report-service/api/kpiParts.service.ts","./src/api/djc-report-service/api/kpiPerformance.service.ts","./src/api/djc-report-service/api/kpiSummary.service.ts","./src/api/djc-report-service/api/kpiUtilization.service.ts","./src/api/djc-report-service/api/kpiWorkInProgress.service.ts","./src/api/djc-report-service/api/model.service.ts","./src/api/djc-report-service/api/noShowReport.service.ts","./src/api/djc-report-service/api/parts.service.ts","./src/api/djc-report-service/api/reportingWorkInProgress.service.ts","./src/api/djc-report-service/api/safetyCheckList.service.ts","./src/api/djc-report-service/api/technicianClockingReport.service.ts","./src/api/djc-report-service/configuration.ts","./src/api/djc-report-service/encoder.ts","./src/api/djc-report-service/index.ts","./src/api/djc-report-service/model/activityReportDayDto.ts","./src/api/djc-report-service/model/activityReportDto.ts","./src/api/djc-report-service/model/appointmentDto.ts","./src/api/djc-report-service/model/appointmentSignatureDto.ts","./src/api/djc-report-service/model/appointmentStatusDto.ts","./src/api/djc-report-service/model/averageJobcardDto.ts","./src/api/djc-report-service/model/brandDto.ts","./src/api/djc-report-service/model/checkListResultAttachmentDto.ts","./src/api/djc-report-service/model/checkListResultDto.ts","./src/api/djc-report-service/model/checklistDamageDto.ts","./src/api/djc-report-service/model/checklistInstanceDto.ts","./src/api/djc-report-service/model/consumableDto.ts","./src/api/djc-report-service/model/cpdContactDetailsDto.ts","./src/api/djc-report-service/model/customerCompanyDto.ts","./src/api/djc-report-service/model/customerCompanyUserDto.ts","./src/api/djc-report-service/model/customerTrendsDto.ts","./src/api/djc-report-service/model/inspectionChecklistReportLineDto.ts","./src/api/djc-report-service/model/jobcardAttachmentDto.ts","./src/api/djc-report-service/model/jobcardDto.ts","./src/api/djc-report-service/model/jobcardItemAttachmentDto.ts","./src/api/djc-report-service/model/jobcardItemCustomerStatusDto.ts","./src/api/djc-report-service/model/jobcardItemDeletedDto.ts","./src/api/djc-report-service/model/jobcardItemDto.ts","./src/api/djc-report-service/model/jobcardItemExtraOperationDto.ts","./src/api/djc-report-service/model/jobcardItemMobileDto.ts","./src/api/djc-report-service/model/jobcardItemOperation.ts","./src/api/djc-report-service/model/jobcardItemOperationConsumableDto.ts","./src/api/djc-report-service/model/jobcardItemOperationDto.ts","./src/api/djc-report-service/model/jobcardItemOperationPart.ts","./src/api/djc-report-service/model/jobcardItemOperationPartDto.ts","./src/api/djc-report-service/model/jobcardItemOperationPartLocation.ts","./src/api/djc-report-service/model/jobcardItemOperationPartLocationDto.ts","./src/api/djc-report-service/model/jobcardItemSpellDto.ts","./src/api/djc-report-service/model/jobcardItemStatusDto.ts","./src/api/djc-report-service/model/jobcardItemTechnicianDto.ts","./src/api/djc-report-service/model/jobcardPartsBacklogDto.ts","./src/api/djc-report-service/model/jobcardTravelDto.ts","./src/api/djc-report-service/model/jobcardVehicleDto.ts","./src/api/djc-report-service/model/kpiDto.ts","./src/api/djc-report-service/model/kpiInspectionReportDto.ts","./src/api/djc-report-service/model/kpiMonthlyPartsTrendDto.ts","./src/api/djc-report-service/model/kpiOrderStatusDto.ts","./src/api/djc-report-service/model/kpiOrderStatusPerfDto.ts","./src/api/djc-report-service/model/kpiPartsTrendDto.ts","./src/api/djc-report-service/model/kpiWeeklyDto.ts","./src/api/djc-report-service/model/linesExcelReport.ts","./src/api/djc-report-service/model/modelDto.ts","./src/api/djc-report-service/model/models.ts","./src/api/djc-report-service/model/mpDeltaDto.ts","./src/api/djc-report-service/model/mpInformationDto.ts","./src/api/djc-report-service/model/mpKitCompositionDto.ts","./src/api/djc-report-service/model/onHoldReasonDto.ts","./src/api/djc-report-service/model/openingDay.ts","./src/api/djc-report-service/model/orderAndSalesDto.ts","./src/api/djc-report-service/model/pageAppointmentDto.ts","./src/api/djc-report-service/model/pageable.ts","./src/api/djc-report-service/model/part.ts","./src/api/djc-report-service/model/partDto.ts","./src/api/djc-report-service/model/partsSalesDto.ts","./src/api/djc-report-service/model/paymentSubSubTypeDto.ts","./src/api/djc-report-service/model/paymentSubTypeDto.ts","./src/api/djc-report-service/model/paymentTypeDto.ts","./src/api/djc-report-service/model/period.ts","./src/api/djc-report-service/model/priorityTypeDto.ts","./src/api/djc-report-service/model/roleDto.ts","./src/api/djc-report-service/model/shiftDto.ts","./src/api/djc-report-service/model/shiftPeriodDto.ts","./src/api/djc-report-service/model/skillDto.ts","./src/api/djc-report-service/model/sort.ts","./src/api/djc-report-service/model/splitDto.ts","./src/api/djc-report-service/model/technicianClockingReportDto.ts","./src/api/djc-report-service/model/unitStatusDto.ts","./src/api/djc-report-service/model/utilizationDto.ts","./src/api/djc-report-service/model/vehicleCourtesyBookingDto.ts","./src/api/djc-report-service/model/vehicleCourtesyDto.ts","./src/api/djc-report-service/model/vehicleLegalInspectionDto.ts","./src/api/djc-report-service/model/vehiclesDetailsDto.ts","./src/api/djc-report-service/model/warrantyClaimDataDto.ts","./src/api/djc-report-service/model/warrantyTypeDto.ts","./src/api/djc-report-service/model/weeklyTrendDto.ts","./src/api/djc-report-service/model/weeklyTrendInspectionDto.ts","./src/api/djc-report-service/model/wipAppointmentExcelReport.ts","./src/api/djc-report-service/model/wipDto.ts","./src/api/djc-report-service/model/wipWeeklyTrend.ts","./src/api/djc-report-service/model/workOrderExcelReport.ts","./src/api/djc-report-service/model/workshopBayDto.ts","./src/api/djc-report-service/model/workshopDiscountDto.ts","./src/api/djc-report-service/model/workshopDto.ts","./src/api/djc-report-service/model/workshopSalesDto.ts","./src/api/djc-report-service/model/workshopSalesOrganizationDto.ts","./src/api/djc-report-service/model/workshopUserDto.ts","./src/api/djc-report-service/model/workshopUserTravelPositionDto.ts","./src/api/djc-report-service/model/workshopUserUnavailabilityDto.ts","./src/api/djc-report-service/variables.ts","./src/api/djc-workitem-service/api.module.ts","./src/api/djc-workitem-service/api/api.ts","./src/api/djc-workitem-service/api/appointmentStatus.service.ts","./src/api/djc-workitem-service/api/appointments.service.ts","./src/api/djc-workitem-service/api/azure.service.ts","./src/api/djc-workitem-service/api/email.service.ts","./src/api/djc-workitem-service/api/jobcardItemController.service.ts","./src/api/djc-workitem-service/api/jobcardPartsBacklog.service.ts","./src/api/djc-workitem-service/api/paymentType.service.ts","./src/api/djc-workitem-service/api/permission.service.ts","./src/api/djc-workitem-service/api/summary.service.ts","./src/api/djc-workitem-service/api/technician.service.ts","./src/api/djc-workitem-service/api/workshopBays.service.ts","./src/api/djc-workitem-service/configuration.ts","./src/api/djc-workitem-service/encoder.ts","./src/api/djc-workitem-service/index.ts","./src/api/djc-workitem-service/model/appointmentDto.ts","./src/api/djc-workitem-service/model/appointmentSignatureDto.ts","./src/api/djc-workitem-service/model/appointmentStatusDto.ts","./src/api/djc-workitem-service/model/azureTokenDto.ts","./src/api/djc-workitem-service/model/brandDto.ts","./src/api/djc-workitem-service/model/checkListResultAttachmentDto.ts","./src/api/djc-workitem-service/model/checkListResultDto.ts","./src/api/djc-workitem-service/model/checklistDamageDto.ts","./src/api/djc-workitem-service/model/checklistInstanceDto.ts","./src/api/djc-workitem-service/model/consumable.ts","./src/api/djc-workitem-service/model/consumableDto.ts","./src/api/djc-workitem-service/model/cpdContactDetailsDto.ts","./src/api/djc-workitem-service/model/customerCompanyDto.ts","./src/api/djc-workitem-service/model/customerCompanyUserDto.ts","./src/api/djc-workitem-service/model/jobcard.ts","./src/api/djc-workitem-service/model/jobcardAttachment.ts","./src/api/djc-workitem-service/model/jobcardAttachmentDto.ts","./src/api/djc-workitem-service/model/jobcardDto.ts","./src/api/djc-workitem-service/model/jobcardEngineHours.ts","./src/api/djc-workitem-service/model/jobcardItem.ts","./src/api/djc-workitem-service/model/jobcardItemAttachment.ts","./src/api/djc-workitem-service/model/jobcardItemAttachmentDto.ts","./src/api/djc-workitem-service/model/jobcardItemCustomerStatusDto.ts","./src/api/djc-workitem-service/model/jobcardItemDeleted.ts","./src/api/djc-workitem-service/model/jobcardItemDeletedDto.ts","./src/api/djc-workitem-service/model/jobcardItemDto.ts","./src/api/djc-workitem-service/model/jobcardItemExtraOperation.ts","./src/api/djc-workitem-service/model/jobcardItemExtraOperationDto.ts","./src/api/djc-workitem-service/model/jobcardItemMobileDto.ts","./src/api/djc-workitem-service/model/jobcardItemOperation.ts","./src/api/djc-workitem-service/model/jobcardItemOperationConsumable.ts","./src/api/djc-workitem-service/model/jobcardItemOperationConsumableDto.ts","./src/api/djc-workitem-service/model/jobcardItemOperationDto.ts","./src/api/djc-workitem-service/model/jobcardItemOperationPart.ts","./src/api/djc-workitem-service/model/jobcardItemOperationPartDto.ts","./src/api/djc-workitem-service/model/jobcardItemOperationPartLocation.ts","./src/api/djc-workitem-service/model/jobcardItemOperationPartLocationDto.ts","./src/api/djc-workitem-service/model/jobcardItemSpellDto.ts","./src/api/djc-workitem-service/model/jobcardItemStatus.ts","./src/api/djc-workitem-service/model/jobcardItemStatusDto.ts","./src/api/djc-workitem-service/model/jobcardItemTechnicianDto.ts","./src/api/djc-workitem-service/model/jobcardMileage.ts","./src/api/djc-workitem-service/model/jobcardPartsBacklog.ts","./src/api/djc-workitem-service/model/jobcardPartsBacklogDto.ts","./src/api/djc-workitem-service/model/jobcardTravel.ts","./src/api/djc-workitem-service/model/jobcardTravelDto.ts","./src/api/djc-workitem-service/model/jobcardVehicleDto.ts","./src/api/djc-workitem-service/model/kitItemOperationPart.ts","./src/api/djc-workitem-service/model/legalNoticeDto.ts","./src/api/djc-workitem-service/model/modelDto.ts","./src/api/djc-workitem-service/model/models.ts","./src/api/djc-workitem-service/model/mpDeltaDto.ts","./src/api/djc-workitem-service/model/mpInformationDto.ts","./src/api/djc-workitem-service/model/mpKitCompositionDto.ts","./src/api/djc-workitem-service/model/onHoldReasonDto.ts","./src/api/djc-workitem-service/model/openingDay.ts","./src/api/djc-workitem-service/model/otpDto.ts","./src/api/djc-workitem-service/model/part.ts","./src/api/djc-workitem-service/model/partDetail.ts","./src/api/djc-workitem-service/model/partDto.ts","./src/api/djc-workitem-service/model/partMaster.ts","./src/api/djc-workitem-service/model/partMasterHeader.ts","./src/api/djc-workitem-service/model/partsTrackerCsps.ts","./src/api/djc-workitem-service/model/partsTrackerDms.ts","./src/api/djc-workitem-service/model/paymentSubSubTypeDto.ts","./src/api/djc-workitem-service/model/paymentSubTypeDto.ts","./src/api/djc-workitem-service/model/paymentTypeDto.ts","./src/api/djc-workitem-service/model/period.ts","./src/api/djc-workitem-service/model/priorityTypeDto.ts","./src/api/djc-workitem-service/model/resultMessage.ts","./src/api/djc-workitem-service/model/role.ts","./src/api/djc-workitem-service/model/roleDto.ts","./src/api/djc-workitem-service/model/shiftDto.ts","./src/api/djc-workitem-service/model/shiftPeriodDto.ts","./src/api/djc-workitem-service/model/skillDto.ts","./src/api/djc-workitem-service/model/splitDto.ts","./src/api/djc-workitem-service/model/technicianClockingReportDto.ts","./src/api/djc-workitem-service/model/unitStatusDto.ts","./src/api/djc-workitem-service/model/validationResponseDto.ts","./src/api/djc-workitem-service/model/vehicleCourtesyBookingDto.ts","./src/api/djc-workitem-service/model/vehicleCourtesyDto.ts","./src/api/djc-workitem-service/model/vehicleLegalInspectionDto.ts","./src/api/djc-workitem-service/model/warrantyClaimData.ts","./src/api/djc-workitem-service/model/warrantyClaimDataDto.ts","./src/api/djc-workitem-service/model/warrantyTypeDto.ts","./src/api/djc-workitem-service/model/workshop.ts","./src/api/djc-workitem-service/model/workshopBay.ts","./src/api/djc-workitem-service/model/workshopBayDto.ts","./src/api/djc-workitem-service/model/workshopDiscount.ts","./src/api/djc-workitem-service/model/workshopDiscountDto.ts","./src/api/djc-workitem-service/model/workshopDto.ts","./src/api/djc-workitem-service/model/workshopSalesOrganizationDto.ts","./src/api/djc-workitem-service/model/workshopUser.ts","./src/api/djc-workitem-service/model/workshopUserDto.ts","./src/api/djc-workitem-service/model/workshopUserRelation.ts","./src/api/djc-workitem-service/model/workshopUserTravelPositionDto.ts","./src/api/djc-workitem-service/model/workshopUserUnavailability.ts","./src/api/djc-workitem-service/model/workshopUserUnavailabilityDto.ts","./src/api/djc-workitem-service/model/worshopUserSetting.ts","./src/api/djc-workitem-service/variables.ts","./src/api/document/api.module.ts","./src/api/document/api/api.ts","./src/api/document/api/attachment.service.ts","./src/api/document/api/azure.service.ts","./src/api/document/api/bookmark.service.ts","./src/api/document/api/dmc.service.ts","./src/api/document/api/document.service.ts","./src/api/document/api/dqrLogisticUser.service.ts","./src/api/document/api/dqrReport.service.ts","./src/api/document/api/encryption.service.ts","./src/api/document/api/eparts.service.ts","./src/api/document/api/etim.service.ts","./src/api/document/api/health.service.ts","./src/api/document/api/image.service.ts","./src/api/document/api/interactiveInitSteps.service.ts","./src/api/document/api/interactivePdf.service.ts","./src/api/document/api/lang.service.ts","./src/api/document/api/localnote.service.ts","./src/api/document/api/modularDiagnostic.service.ts","./src/api/document/api/rating.service.ts","./src/api/document/api/report.service.ts","./src/api/document/api/saveInteractiveSteps.service.ts","./src/api/document/api/saveSmartWarrantyCodes.service.ts","./src/api/document/api/servicenotification.service.ts","./src/api/document/api/smartWarranty.service.ts","./src/api/document/api/smartWarrantyCode.service.ts","./src/api/document/api/specialTools.service.ts","./src/api/document/api/tds.service.ts","./src/api/document/api/visibility.service.ts","./src/api/document/configuration.ts","./src/api/document/encoder.ts","./src/api/document/index.ts","./src/api/document/model/activeWarranty.ts","./src/api/document/model/addInfos.ts","./src/api/document/model/alert.ts","./src/api/document/model/alertForHistory.ts","./src/api/document/model/alertForSmartView.ts","./src/api/document/model/analyticData.ts","./src/api/document/model/analyticsDataRefreshTime.ts","./src/api/document/model/apiError.ts","./src/api/document/model/appTeaserResponseDto.ts","./src/api/document/model/appVersion.ts","./src/api/document/model/applicabilityResult.ts","./src/api/document/model/appointment.ts","./src/api/document/model/appointmentIuDocument.ts","./src/api/document/model/appointmentSignature.ts","./src/api/document/model/appointmentStatus.ts","./src/api/document/model/appointmentUnitStatus.ts","./src/api/document/model/archiveReportFileResult.ts","./src/api/document/model/archiveReportResult.ts","./src/api/document/model/archiveReportResultData.ts","./src/api/document/model/assetsDetails.ts","./src/api/document/model/azureAccount.ts","./src/api/document/model/bmkHistCommonDto.ts","./src/api/document/model/bookmarkDto.ts","./src/api/document/model/bookmarkElement.ts","./src/api/document/model/bookmarkResponseDto.ts","./src/api/document/model/brand.ts","./src/api/document/model/brandMarketLanguages.ts","./src/api/document/model/brandMarketUrlLanguage.ts","./src/api/document/model/brandsMarketsLanguages.ts","./src/api/document/model/cANCategoriesDescription.ts","./src/api/document/model/categoryIwd.ts","./src/api/document/model/checklistCheck.ts","./src/api/document/model/checklistDamage.ts","./src/api/document/model/checklistGroup.ts","./src/api/document/model/checklistInstance.ts","./src/api/document/model/checklistQuestion.ts","./src/api/document/model/checklistResult.ts","./src/api/document/model/checklistResultAttachment.ts","./src/api/document/model/chosenTxtCtrl.ts","./src/api/document/model/consumable.ts","./src/api/document/model/consumables.ts","./src/api/document/model/count.ts","./src/api/document/model/countryTimeZone.ts","./src/api/document/model/cpdContactDetails.ts","./src/api/document/model/ctrlMeasurementDto.ts","./src/api/document/model/currency.ts","./src/api/document/model/customerAlertFeedback.ts","./src/api/document/model/customerCompany.ts","./src/api/document/model/customerCompanyUser.ts","./src/api/document/model/dMCDto.ts","./src/api/document/model/dashboardAlert.ts","./src/api/document/model/dashboardMyAlerts.ts","./src/api/document/model/dashboardTeaserPopIn.ts","./src/api/document/model/decryptResult.ts","./src/api/document/model/decryptTidb.ts","./src/api/document/model/device.ts","./src/api/document/model/deviceDocument.ts","./src/api/document/model/docType.ts","./src/api/document/model/documentHasSchematics.ts","./src/api/document/model/documentInfo.ts","./src/api/document/model/documentInfoPdf.ts","./src/api/document/model/downloadableFileDto.ts","./src/api/document/model/dqrElement.ts","./src/api/document/model/dqrFailureCode.ts","./src/api/document/model/dqrFaultStatus.ts","./src/api/document/model/dqrFaultStatusExport.ts","./src/api/document/model/dqrForm.ts","./src/api/document/model/dqrGroup.ts","./src/api/document/model/dqrHistoryDto.ts","./src/api/document/model/dqrHistoryDtoMap.ts","./src/api/document/model/dqrQuestion.ts","./src/api/document/model/dqrReport.ts","./src/api/document/model/dqrReportMobile.ts","./src/api/document/model/dqrResponse.ts","./src/api/document/model/dqrSeverityCode.ts","./src/api/document/model/dqrSubmitResult.ts","./src/api/document/model/dqrTasksByType.ts","./src/api/document/model/elementSearchResult.ts","./src/api/document/model/elementSearchResultFaultCodeDto.ts","./src/api/document/model/elementSearchResultLegacyFaultCodeDto.ts","./src/api/document/model/elementSearchResultPdf.ts","./src/api/document/model/elementSearchResultSgTitleDto.ts","./src/api/document/model/enumException.ts","./src/api/document/model/epartsBrandResult.ts","./src/api/document/model/epartsPart.ts","./src/api/document/model/etimSettingDto.ts","./src/api/document/model/executedPip.ts","./src/api/document/model/extraOperation.ts","./src/api/document/model/failureModeDetails.ts","./src/api/document/model/fictitiousMaterial.ts","./src/api/document/model/geoStoreDetails.ts","./src/api/document/model/geoStorePosition.ts","./src/api/document/model/guidedProcedure.ts","./src/api/document/model/higherFaultCodePriorityDto.ts","./src/api/document/model/higherFaultCodePriorityDtoList.ts","./src/api/document/model/historyElement.ts","./src/api/document/model/homePageLanguage.ts","./src/api/document/model/homepageData.ts","./src/api/document/model/hotspotDto.ts","./src/api/document/model/hotspotIuIceCodeDto.ts","./src/api/document/model/iQuestion.ts","./src/api/document/model/iQuickCloseForm.ts","./src/api/document/model/iResponse.ts","./src/api/document/model/iUGenericTagDto.ts","./src/api/document/model/iceLocationDto.ts","./src/api/document/model/illustration.ts","./src/api/document/model/imageInfoDto.ts","./src/api/document/model/infotypeView.ts","./src/api/document/model/inlineResponse200.ts","./src/api/document/model/instructionElement.ts","./src/api/document/model/instructionElementAttention.ts","./src/api/document/model/instructions.ts","./src/api/document/model/interactiveData.ts","./src/api/document/model/interactiveIU.ts","./src/api/document/model/interactiveViewDto.ts","./src/api/document/model/iuDocDto.ts","./src/api/document/model/iuDocumentBasketDto.ts","./src/api/document/model/iuDocumentDto.ts","./src/api/document/model/iuLinkBasket.ts","./src/api/document/model/jobcard.ts","./src/api/document/model/jobcardAttachment.ts","./src/api/document/model/jobcardItem.ts","./src/api/document/model/jobcardItemCustomerStatus.ts","./src/api/document/model/jobcardItemDeleted.ts","./src/api/document/model/jobcardItemIuDocument.ts","./src/api/document/model/jobcardItemSpell.ts","./src/api/document/model/jobcardItemStatus.ts","./src/api/document/model/jobcardItemTechnician.ts","./src/api/document/model/jobcardPartsBacklog.ts","./src/api/document/model/jobcardTravel.ts","./src/api/document/model/kaAttachment.ts","./src/api/document/model/kaElement.ts","./src/api/document/model/kaLink.ts","./src/api/document/model/kaLocations.ts","./src/api/document/model/kaMetaData.ts","./src/api/document/model/kit.ts","./src/api/document/model/kitPart.ts","./src/api/document/model/language.ts","./src/api/document/model/legacyFaultCodeDto.ts","./src/api/document/model/legacyTocDto.ts","./src/api/document/model/lightLatestAnalyticData.ts","./src/api/document/model/localNoteResponseDto.ts","./src/api/document/model/market.ts","./src/api/document/model/marketContext.ts","./src/api/document/model/marketCountries.ts","./src/api/document/model/model.ts","./src/api/document/model/models.ts","./src/api/document/model/modularDiagnosticInteractiveData.ts","./src/api/document/model/monJumpFleetSmartviewDto.ts","./src/api/document/model/mpInformation.ts","./src/api/document/model/mpInformationDelta.ts","./src/api/document/model/mpNotifs.ts","./src/api/document/model/multiMediaVideo.ts","./src/api/document/model/name.ts","./src/api/document/model/onHoldReason.ts","./src/api/document/model/openingDay.ts","./src/api/document/model/openingDayPeriods.ts","./src/api/document/model/operation.ts","./src/api/document/model/operationConsumable.ts","./src/api/document/model/operationPart.ts","./src/api/document/model/operationPartLocation.ts","./src/api/document/model/oprConsumable.ts","./src/api/document/model/part.ts","./src/api/document/model/partAvailability.ts","./src/api/document/model/paymentSubSubType.ts","./src/api/document/model/paymentSubType.ts","./src/api/document/model/paymentType.ts","./src/api/document/model/pdfDto.ts","./src/api/document/model/petDto.ts","./src/api/document/model/pinRangeDto.ts","./src/api/document/model/pipSbIu.ts","./src/api/document/model/priorityType.ts","./src/api/document/model/product.ts","./src/api/document/model/productConfig.ts","./src/api/document/model/productConfiguration.ts","./src/api/document/model/productConfigurationConfigsList.ts","./src/api/document/model/productObj.ts","./src/api/document/model/quickCloseAlertFormResults.ts","./src/api/document/model/ratingResponseDto.ts","./src/api/document/model/refImageLocationDto.ts","./src/api/document/model/region.ts","./src/api/document/model/remoteDisplayConnection.ts","./src/api/document/model/reportsRequestDto.ts","./src/api/document/model/requestInteractiveIU.ts","./src/api/document/model/responseCheckTask.ts","./src/api/document/model/result.ts","./src/api/document/model/role.ts","./src/api/document/model/routine.ts","./src/api/document/model/saveMetaDatas.ts","./src/api/document/model/sdpTransactionId.ts","./src/api/document/model/searchByPartNumberParams.ts","./src/api/document/model/searchByPartNumberResult.ts","./src/api/document/model/searchByPartNumberResultAllOf.ts","./src/api/document/model/searchByPlateParams.ts","./src/api/document/model/searchByPlateResult.ts","./src/api/document/model/searchByPlateResultAllOf.ts","./src/api/document/model/searchByTTBMParams.ts","./src/api/document/model/searchByTTBMResult.ts","./src/api/document/model/searchByTTBMResultAllOf.ts","./src/api/document/model/searchByVCBParams.ts","./src/api/document/model/searchByVCBResult.ts","./src/api/document/model/searchByVCBResultAllOf.ts","./src/api/document/model/searchByVinParams.ts","./src/api/document/model/searchByVinParamsMyBrand.ts","./src/api/document/model/searchByVinResult.ts","./src/api/document/model/series.ts","./src/api/document/model/serviceNotification.ts","./src/api/document/model/serviceNotificationAppli.ts","./src/api/document/model/serviceNotificationContext.ts","./src/api/document/model/serviceNotificationDetails.ts","./src/api/document/model/serviceNotificationDocument.ts","./src/api/document/model/serviceNotificationLabels.ts","./src/api/document/model/serviceNotificationLanguage.ts","./src/api/document/model/serviceNotificationMaintenance.ts","./src/api/document/model/serviceNotificationResult.ts","./src/api/document/model/serviceNotificationScreen.ts","./src/api/document/model/serviceNotificationUser.ts","./src/api/document/model/sgTitleDto.ts","./src/api/document/model/sharedHistory.ts","./src/api/document/model/shift.ts","./src/api/document/model/shiftPeriods.ts","./src/api/document/model/shortLocation.ts","./src/api/document/model/shortLocationWithTidbId.ts","./src/api/document/model/shortPdfLegacy.ts","./src/api/document/model/skill.ts","./src/api/document/model/smTreeIu.ts","./src/api/document/model/smTreeSubGroup.ts","./src/api/document/model/smTreeTopic.ts","./src/api/document/model/smartWarrantyData.ts","./src/api/document/model/smartWarrantyGroupData.ts","./src/api/document/model/specialToolView.ts","./src/api/document/model/split.ts","./src/api/document/model/srtDocument.ts","./src/api/document/model/srtWarrantyCodeDto.ts","./src/api/document/model/status.ts","./src/api/document/model/steps.ts","./src/api/document/model/tdsChapter.ts","./src/api/document/model/tdsIu.ts","./src/api/document/model/technicalType.ts","./src/api/document/model/telemetry.ts","./src/api/document/model/telemetryStatus.ts","./src/api/document/model/telemetryUOM.ts","./src/api/document/model/telemetryValue.ts","./src/api/document/model/tidbSbDto.ts","./src/api/document/model/title.ts","./src/api/document/model/tokenRequest.ts","./src/api/document/model/tools.ts","./src/api/document/model/tutorialDocDto.ts","./src/api/document/model/txtCtrlResultDto.ts","./src/api/document/model/types.ts","./src/api/document/model/unitDto.ts","./src/api/document/model/uptimeDossierInfo.ts","./src/api/document/model/url.ts","./src/api/document/model/urlLang.ts","./src/api/document/model/user.ts","./src/api/document/model/userPrefKeyValueDto.ts","./src/api/document/model/userPrefs.ts","./src/api/document/model/vehicle.ts","./src/api/document/model/vehicleCourtesy.ts","./src/api/document/model/vehicleCourtesyBooking.ts","./src/api/document/model/vinInfoDto.ts","./src/api/document/model/visibility.ts","./src/api/document/model/wPAEngineFormDto.ts","./src/api/document/model/wPAEnginePdfInfosDto.ts","./src/api/document/model/warrantyClaimData.ts","./src/api/document/model/warrantyCodes.ts","./src/api/document/model/warrantyType.ts","./src/api/document/model/webPipExtension.ts","./src/api/document/model/webSBHeader.ts","./src/api/document/model/workshop.ts","./src/api/document/model/workshopBay.ts","./src/api/document/model/workshopDiscount.ts","./src/api/document/model/workshopSale.ts","./src/api/document/model/workshopUser.ts","./src/api/document/model/workshopUserTravelPosition.ts","./src/api/document/model/workshopUserUnavailability.ts","./src/api/document/model/wpaOcFormDto.ts","./src/api/document/model/wpaOcFormForPdfDto.ts","./src/api/document/model/wpaOcFormIncOpeDto.ts","./src/api/document/model/wpaOcFormOcOweDto.ts","./src/api/document/model/wpaOcFormOcPartDto.ts","./src/api/document/variables.ts","./src/api/jobcard/api.module.ts","./src/api/jobcard/api/activity.service.ts","./src/api/jobcard/api/activityMaintenance.service.ts","./src/api/jobcard/api/activityReport.service.ts","./src/api/jobcard/api/api.ts","./src/api/jobcard/api/apiAppointment.service.ts","./src/api/jobcard/api/apiAppointmentWarranty.service.ts","./src/api/jobcard/api/apiBacklogAppointment.service.ts","./src/api/jobcard/api/apiLog.service.ts","./src/api/jobcard/api/appointment.service.ts","./src/api/jobcard/api/audit.service.ts","./src/api/jobcard/api/azure.service.ts","./src/api/jobcard/api/brand.service.ts","./src/api/jobcard/api/brandStyle.service.ts","./src/api/jobcard/api/checklist.service.ts","./src/api/jobcard/api/clockingLogs.service.ts","./src/api/jobcard/api/consumableAssociation.service.ts","./src/api/jobcard/api/country.service.ts","./src/api/jobcard/api/csps.service.ts","./src/api/jobcard/api/currency.service.ts","./src/api/jobcard/api/customerCompany.service.ts","./src/api/jobcard/api/customerCompanyUser.service.ts","./src/api/jobcard/api/dMS.service.ts","./src/api/jobcard/api/dealerBrand.service.ts","./src/api/jobcard/api/deleteDefferedActivity.service.ts","./src/api/jobcard/api/discount.service.ts","./src/api/jobcard/api/dmsCommunication.service.ts","./src/api/jobcard/api/eDS.service.ts","./src/api/jobcard/api/email.service.ts","./src/api/jobcard/api/eparts.service.ts","./src/api/jobcard/api/extraOperation.service.ts","./src/api/jobcard/api/feedback.service.ts","./src/api/jobcard/api/fiterAppointments.service.ts","./src/api/jobcard/api/geolocation.service.ts","./src/api/jobcard/api/health.service.ts","./src/api/jobcard/api/jobcard.service.ts","./src/api/jobcard/api/jobcardItem.service.ts","./src/api/jobcard/api/jobcardItemStatus.service.ts","./src/api/jobcard/api/kit.service.ts","./src/api/jobcard/api/kpis.service.ts","./src/api/jobcard/api/language.service.ts","./src/api/jobcard/api/legalnotice.service.ts","./src/api/jobcard/api/maintenance.service.ts","./src/api/jobcard/api/mergeLog.service.ts","./src/api/jobcard/api/model.service.ts","./src/api/jobcard/api/myBest.service.ts","./src/api/jobcard/api/nonProductiveActivity.service.ts","./src/api/jobcard/api/notification.service.ts","./src/api/jobcard/api/onholdstatus.service.ts","./src/api/jobcard/api/operation.service.ts","./src/api/jobcard/api/order.service.ts","./src/api/jobcard/api/orderTypeHeaderCode.service.ts","./src/api/jobcard/api/part.service.ts","./src/api/jobcard/api/partConsumables.service.ts","./src/api/jobcard/api/partTracker.service.ts","./src/api/jobcard/api/partsOrder.service.ts","./src/api/jobcard/api/payment.service.ts","./src/api/jobcard/api/permissions.service.ts","./src/api/jobcard/api/priorityType.service.ts","./src/api/jobcard/api/releaseVersion.service.ts","./src/api/jobcard/api/releaseVersionAll.service.ts","./src/api/jobcard/api/role.service.ts","./src/api/jobcard/api/safetyChecklist.service.ts","./src/api/jobcard/api/sapClaim.service.ts","./src/api/jobcard/api/series.service.ts","./src/api/jobcard/api/shifts.service.ts","./src/api/jobcard/api/signature.service.ts","./src/api/jobcard/api/skills.service.ts","./src/api/jobcard/api/sms.service.ts","./src/api/jobcard/api/standalone.service.ts","./src/api/jobcard/api/stats.service.ts","./src/api/jobcard/api/summary.service.ts","./src/api/jobcard/api/tech.service.ts","./src/api/jobcard/api/unavailabilities.service.ts","./src/api/jobcard/api/userGuides.service.ts","./src/api/jobcard/api/vehicle.service.ts","./src/api/jobcard/api/vehicleCourtesy.service.ts","./src/api/jobcard/api/vehicleCourtesyBooking.service.ts","./src/api/jobcard/api/warrantyTypes.service.ts","./src/api/jobcard/api/workshop.service.ts","./src/api/jobcard/api/workshopBay.service.ts","./src/api/jobcard/api/workshopUser.service.ts","./src/api/jobcard/api/workshopUserChecklistTypes.service.ts","./src/api/jobcard/configuration.ts","./src/api/jobcard/encoder.ts","./src/api/jobcard/index.ts","./src/api/jobcard/model/activityReport.ts","./src/api/jobcard/model/activityReportDay.ts","./src/api/jobcard/model/activityTravelList.ts","./src/api/jobcard/model/activityValidated.ts","./src/api/jobcard/model/apiError.ts","./src/api/jobcard/model/apiResponseDto.ts","./src/api/jobcard/model/appointment.ts","./src/api/jobcard/model/appointmentIuDocument.ts","./src/api/jobcard/model/appointmentNotification.ts","./src/api/jobcard/model/appointmentSignature.ts","./src/api/jobcard/model/appointmentSignatureFile.ts","./src/api/jobcard/model/appointmentStatus.ts","./src/api/jobcard/model/appointmentUnitStatus.ts","./src/api/jobcard/model/averageJobcardDto.ts","./src/api/jobcard/model/azureToken.ts","./src/api/jobcard/model/brand.ts","./src/api/jobcard/model/checklistCheck.ts","./src/api/jobcard/model/checklistDamage.ts","./src/api/jobcard/model/checklistGroup.ts","./src/api/jobcard/model/checklistInstance.ts","./src/api/jobcard/model/checklistQuestion.ts","./src/api/jobcard/model/checklistResult.ts","./src/api/jobcard/model/checklistResultAttachment.ts","./src/api/jobcard/model/checklistTemplate.ts","./src/api/jobcard/model/clockingLogDto.ts","./src/api/jobcard/model/consumableAssociation.ts","./src/api/jobcard/model/contractDto.ts","./src/api/jobcard/model/contractResponseDto.ts","./src/api/jobcard/model/country.ts","./src/api/jobcard/model/cpdContactDetails.ts","./src/api/jobcard/model/cspsOrderStatus.ts","./src/api/jobcard/model/currency.ts","./src/api/jobcard/model/customerCompany.ts","./src/api/jobcard/model/customerCompanyUser.ts","./src/api/jobcard/model/customerTrendsDto.ts","./src/api/jobcard/model/customerViewDto.ts","./src/api/jobcard/model/dealerBrandStyle.ts","./src/api/jobcard/model/deliveryAddressDto.ts","./src/api/jobcard/model/deliveryAddressResponseDto.ts","./src/api/jobcard/model/dmsCommunicationDto.ts","./src/api/jobcard/model/dmsLog.ts","./src/api/jobcard/model/dmsStatus.ts","./src/api/jobcard/model/encryptedSignature.ts","./src/api/jobcard/model/epartsMarketMapping.ts","./src/api/jobcard/model/epartsPart.ts","./src/api/jobcard/model/extraOperation.ts","./src/api/jobcard/model/feedbackAttachmentDto.ts","./src/api/jobcard/model/feedbackCreationDto.ts","./src/api/jobcard/model/fictitiousMaterial.ts","./src/api/jobcard/model/filterBy.ts","./src/api/jobcard/model/healthCheckJobcard.ts","./src/api/jobcard/model/inlineObject.ts","./src/api/jobcard/model/inlineObject1.ts","./src/api/jobcard/model/inlineObject2.ts","./src/api/jobcard/model/inlineObject3.ts","./src/api/jobcard/model/inlineObject4.ts","./src/api/jobcard/model/inlineObject5.ts","./src/api/jobcard/model/inlineObject6.ts","./src/api/jobcard/model/inspectionChecklistReportLine.ts","./src/api/jobcard/model/iuDocumentBasketDto.ts","./src/api/jobcard/model/iuDocumentDto.ts","./src/api/jobcard/model/jobcard.ts","./src/api/jobcard/model/jobcardAttachment.ts","./src/api/jobcard/model/jobcardItem.ts","./src/api/jobcard/model/jobcardItemCustomerStatus.ts","./src/api/jobcard/model/jobcardItemDeleted.ts","./src/api/jobcard/model/jobcardItemIuDocument.ts","./src/api/jobcard/model/jobcardItemSpell.ts","./src/api/jobcard/model/jobcardItemStatus.ts","./src/api/jobcard/model/jobcardItemStatusActiveClockings.ts","./src/api/jobcard/model/jobcardItemTechnician.ts","./src/api/jobcard/model/jobcardPartsBacklog.ts","./src/api/jobcard/model/jobcardTravel.ts","./src/api/jobcard/model/kit.ts","./src/api/jobcard/model/kitPart.ts","./src/api/jobcard/model/kpiInspectionReportDto.ts","./src/api/jobcard/model/kpiMonthlyPartsTrendDto.ts","./src/api/jobcard/model/kpiPartsDto.ts","./src/api/jobcard/model/kpiWeeklyDto.ts","./src/api/jobcard/model/kpis.ts","./src/api/jobcard/model/language.ts","./src/api/jobcard/model/legalNotice.ts","./src/api/jobcard/model/linesExcelReport.ts","./src/api/jobcard/model/mergeLog.ts","./src/api/jobcard/model/mobileLog.ts","./src/api/jobcard/model/model.ts","./src/api/jobcard/model/models.ts","./src/api/jobcard/model/mpInformation.ts","./src/api/jobcard/model/mpInformationDelta.ts","./src/api/jobcard/model/name.ts","./src/api/jobcard/model/nonProductiveActivity.ts","./src/api/jobcard/model/nonProductiveActivityStatus.ts","./src/api/jobcard/model/notification.ts","./src/api/jobcard/model/notificationCreation.ts","./src/api/jobcard/model/notificationSubscription.ts","./src/api/jobcard/model/notificationSubscriptionSet.ts","./src/api/jobcard/model/notificationType.ts","./src/api/jobcard/model/onHoldReason.ts","./src/api/jobcard/model/openOrderRequest.ts","./src/api/jobcard/model/openingDay.ts","./src/api/jobcard/model/openingDayPeriods.ts","./src/api/jobcard/model/operation.ts","./src/api/jobcard/model/operationConsumable.ts","./src/api/jobcard/model/operationPart.ts","./src/api/jobcard/model/operationPartLocation.ts","./src/api/jobcard/model/operationWarranty.ts","./src/api/jobcard/model/oprConsumable.ts","./src/api/jobcard/model/orderStatusDto.ts","./src/api/jobcard/model/orderStatusPrefDto.ts","./src/api/jobcard/model/orderTypeDto.ts","./src/api/jobcard/model/orderTypeHeaderCode.ts","./src/api/jobcard/model/ordersAndSalesByStatus.ts","./src/api/jobcard/model/otp.ts","./src/api/jobcard/model/pageNumber.ts","./src/api/jobcard/model/part.ts","./src/api/jobcard/model/partAvailability.ts","./src/api/jobcard/model/partConsumable.ts","./src/api/jobcard/model/partQuantity.ts","./src/api/jobcard/model/partReturn.ts","./src/api/jobcard/model/partsSalesDto.ts","./src/api/jobcard/model/partsTrackerCsps.ts","./src/api/jobcard/model/partsTrackerDms.ts","./src/api/jobcard/model/paymentSubSubType.ts","./src/api/jobcard/model/paymentSubType.ts","./src/api/jobcard/model/paymentType.ts","./src/api/jobcard/model/permission.ts","./src/api/jobcard/model/priorityType.ts","./src/api/jobcard/model/productObj.ts","./src/api/jobcard/model/releaseVersion.ts","./src/api/jobcard/model/resultDto.ts","./src/api/jobcard/model/resultMessage.ts","./src/api/jobcard/model/role.ts","./src/api/jobcard/model/sapAttachmentValue.ts","./src/api/jobcard/model/sapDealerMarketCheckResult.ts","./src/api/jobcard/model/series.ts","./src/api/jobcard/model/shift.ts","./src/api/jobcard/model/shiftPeriods.ts","./src/api/jobcard/model/skill.ts","./src/api/jobcard/model/split.ts","./src/api/jobcard/model/standaloneImportFileResponse.ts","./src/api/jobcard/model/techClockingDto.ts","./src/api/jobcard/model/technicalType.ts","./src/api/jobcard/model/technicianPlanningCount.ts","./src/api/jobcard/model/technicianPlanningFilterDto.ts","./src/api/jobcard/model/types.ts","./src/api/jobcard/model/uncaughtException.ts","./src/api/jobcard/model/userGuide.ts","./src/api/jobcard/model/utilizationDto.ts","./src/api/jobcard/model/validationResponse.ts","./src/api/jobcard/model/vehicle.ts","./src/api/jobcard/model/vehicleCourtesy.ts","./src/api/jobcard/model/vehicleCourtesyBooking.ts","./src/api/jobcard/model/vehicleLegalInspection.ts","./src/api/jobcard/model/vehiclesDetailsDto.ts","./src/api/jobcard/model/warrantyClaimData.ts","./src/api/jobcard/model/warrantyType.ts","./src/api/jobcard/model/weeklyTrend.ts","./src/api/jobcard/model/weeklyTrendDto.ts","./src/api/jobcard/model/weeklyTrendInspectionDto.ts","./src/api/jobcard/model/wipAppointmentExcelReport.ts","./src/api/jobcard/model/wipDto.ts","./src/api/jobcard/model/workOrderExcelReport.ts","./src/api/jobcard/model/workshop.ts","./src/api/jobcard/model/workshopBay.ts","./src/api/jobcard/model/workshopChecklistType.ts","./src/api/jobcard/model/workshopDiscount.ts","./src/api/jobcard/model/workshopEnabled.ts","./src/api/jobcard/model/workshopFigures.ts","./src/api/jobcard/model/workshopSale.ts","./src/api/jobcard/model/workshopSalesDto.ts","./src/api/jobcard/model/workshopUser.ts","./src/api/jobcard/model/workshopUserTravelPosition.ts","./src/api/jobcard/model/workshopUserUnavailability.ts","./src/api/jobcard/variables.ts","./src/api/smartview/api.module.ts","./src/api/smartview/api/api.ts","./src/api/smartview/api/etim.service.ts","./src/api/smartview/api/failure.service.ts","./src/api/smartview/api/maintenance.service.ts","./src/api/smartview/api/smartView.service.ts","./src/api/smartview/api/srt.service.ts","./src/api/smartview/api/srtSupplier.service.ts","./src/api/smartview/api/warranty.service.ts","./src/api/smartview/configuration.ts","./src/api/smartview/encoder.ts","./src/api/smartview/index.ts","./src/api/smartview/model/apiError.ts","./src/api/smartview/model/appointmentSignature.ts","./src/api/smartview/model/brand.ts","./src/api/smartview/model/checklistCheck.ts","./src/api/smartview/model/checklistGroup.ts","./src/api/smartview/model/checklistInstance.ts","./src/api/smartview/model/checklistQuestion.ts","./src/api/smartview/model/checklistResult.ts","./src/api/smartview/model/checklistResultAttachment.ts","./src/api/smartview/model/configurationDet.ts","./src/api/smartview/model/countryTimeZone.ts","./src/api/smartview/model/currentVehicleData.ts","./src/api/smartview/model/diagnosisHistory.ts","./src/api/smartview/model/diagnosisHistoryAgce.ts","./src/api/smartview/model/diagnosisHistoryAgceData.ts","./src/api/smartview/model/diagnosisHistoryAgceDataEcuList.ts","./src/api/smartview/model/diagnosisHistoryAgceDataFaultList.ts","./src/api/smartview/model/diagnosisHistoryAgceDataSources.ts","./src/api/smartview/model/diagnosisHistoryAgceDataUploadList.ts","./src/api/smartview/model/diagnosisHistoryAgceStatus.ts","./src/api/smartview/model/diagnosisHistoryCv.ts","./src/api/smartview/model/diagnosisHistoryCvDiagnosticFault.ts","./src/api/smartview/model/diagnosisHistoryCvTelematicsFault.ts","./src/api/smartview/model/diagnosisHistoryCvTelematicsFaultEcuList.ts","./src/api/smartview/model/diagnosisHistoryCvTelematicsFaultFaultList.ts","./src/api/smartview/model/diagnosisHistoryCvTelematicsFaultUploadList.ts","./src/api/smartview/model/diagnosisHistoryCvWithTeleService.ts","./src/api/smartview/model/diagnosisHistoryCvWithTeleServiceServiceCodes.ts","./src/api/smartview/model/diagnosisHistoryCvWithTeleServiceTeleservice.ts","./src/api/smartview/model/diagnosisHistoryCvWithTeleServiceTeleserviceExport.ts","./src/api/smartview/model/eSBHeader.ts","./src/api/smartview/model/endCustomer.ts","./src/api/smartview/model/extraOperation.ts","./src/api/smartview/model/fictitiousMaterial.ts","./src/api/smartview/model/general.ts","./src/api/smartview/model/geoStoreDetails.ts","./src/api/smartview/model/geoStorePosition.ts","./src/api/smartview/model/jobcardAttachment.ts","./src/api/smartview/model/jobcardItem.ts","./src/api/smartview/model/jobcardItemCustomerStatus.ts","./src/api/smartview/model/jobcardItemIuDocument.ts","./src/api/smartview/model/jobcardItemSpell.ts","./src/api/smartview/model/jobcardItemStatus.ts","./src/api/smartview/model/jobcardItemTechnician.ts","./src/api/smartview/model/jobcardPartsBacklog.ts","./src/api/smartview/model/jobcardTravel.ts","./src/api/smartview/model/kit.ts","./src/api/smartview/model/kitPart.ts","./src/api/smartview/model/kmLink.ts","./src/api/smartview/model/market.ts","./src/api/smartview/model/marketContext.ts","./src/api/smartview/model/model.ts","./src/api/smartview/model/models.ts","./src/api/smartview/model/mpInformation.ts","./src/api/smartview/model/mpInformationDelta.ts","./src/api/smartview/model/mpUnit.ts","./src/api/smartview/model/name.ts","./src/api/smartview/model/openingDay.ts","./src/api/smartview/model/openingDayPeriods.ts","./src/api/smartview/model/operation.ts","./src/api/smartview/model/operationConsumable.ts","./src/api/smartview/model/operationPart.ts","./src/api/smartview/model/operationPartLocation.ts","./src/api/smartview/model/oprConsumable.ts","./src/api/smartview/model/part.ts","./src/api/smartview/model/partAvailability.ts","./src/api/smartview/model/paymentSubSubType.ts","./src/api/smartview/model/paymentSubType.ts","./src/api/smartview/model/paymentType.ts","./src/api/smartview/model/pipData.ts","./src/api/smartview/model/plcData.ts","./src/api/smartview/model/product.ts","./src/api/smartview/model/productObj.ts","./src/api/smartview/model/repairHistory.ts","./src/api/smartview/model/responseData.ts","./src/api/smartview/model/returnMessage.ts","./src/api/smartview/model/role.ts","./src/api/smartview/model/sapFailure.ts","./src/api/smartview/model/series.ts","./src/api/smartview/model/serviceHistory.ts","./src/api/smartview/model/serviceRepNotes.ts","./src/api/smartview/model/shift.ts","./src/api/smartview/model/shiftPeriods.ts","./src/api/smartview/model/skill.ts","./src/api/smartview/model/split.ts","./src/api/smartview/model/srtOperation.ts","./src/api/smartview/model/srtSupplierCode.ts","./src/api/smartview/model/technicalType.ts","./src/api/smartview/model/types.ts","./src/api/smartview/model/url.ts","./src/api/smartview/model/vehicleData.ts","./src/api/smartview/model/vehicleDetails.ts","./src/api/smartview/model/vehicleHistory.ts","./src/api/smartview/model/vehicleInfo.ts","./src/api/smartview/model/vehicleParts.ts","./src/api/smartview/model/vinValidity.ts","./src/api/smartview/model/warrantyClaimData.ts","./src/api/smartview/model/warrantyServices.ts","./src/api/smartview/model/warrantyType.ts","./src/api/smartview/model/workshop.ts","./src/api/smartview/model/workshopBay.ts","./src/api/smartview/model/workshopDiscount.ts","./src/api/smartview/model/workshopSale.ts","./src/api/smartview/model/workshopUser.ts","./src/api/smartview/model/workshopUserTravelPosition.ts","./src/api/smartview/model/workshopUserUnavailability.ts","./src/api/smartview/variables.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/appointment/appointment-footer/appointment-footer.component.ts","./src/app/appointment/appointment-footer/appointment-footer.component.html","./src/app/appointment/appointment.service.ts","./src/app/appointment/breakdown-notification.service.ts","./src/app/appointment/customer/customer-form.service.ts","./src/app/appointment/customer/search-vehicle-modal/search-vehicle-modal.component.ts","./src/app/appointment/customer/search-vehicle-modal/search-vehicle-modal.component.html","./src/app/appointment/email-confirm-modal/email-confirm-modal.component.ts","./src/app/appointment/email-confirm-modal/email-confirm-modal.component.html","./src/app/appointment/new-appointment.service.ts","./src/app/core/config/config.service.ts","./src/app/core/core.module.ts","./src/app/core/dms/dms.service.ts","./src/app/core/guards/permissions.guard.ts","./src/app/core/languages/languages.interceptor.ts","./src/app/core/languages/languages.service.ts","./src/app/core/mapping/mapping.service.ts","./src/app/core/matomo/custom-dimensions.ts","./src/app/core/matomo/matomo-custom.service.ts","./src/app/core/operations/operations.service.ts","./src/app/core/payments/payments.serviceAdmin.ts","./src/app/core/permissions/permissions.service.ts","./src/app/core/services-interceptor/application-token.interceptor.ts","./src/app/core/services-interceptor/interceptor.service.ts","./src/app/core/services-interceptor/session-token.interceptor.ts","./src/app/core/user/user-admin.service.ts","./src/app/core/user/user.guard.ts","./src/app/core/user/user.service.ts","./src/app/core/util/util.ts","./src/app/core/websocket/websocket.service.ts","./src/app/core/workshop-user-admin/workshop-user-admin.service.ts","./src/app/core/workshop-user/workshop-user.service.ts","./src/app/core/workshop/workshop-admin.service.ts","./src/app/error/error.component.ts","./src/app/error/error.component.html","./src/app/main/main.component.ts","./src/app/main/main.component.html","./src/app/models/model/activityReport.ts","./src/app/models/model/activityReportDay.ts","./src/app/models/model/activityTravelList.ts","./src/app/models/model/activityValidated.ts","./src/app/models/model/apiError.ts","./src/app/models/model/apiResponseDto.ts","./src/app/models/model/appointment.ts","./src/app/models/model/appointmentIuDocument.ts","./src/app/models/model/appointmentNotification.ts","./src/app/models/model/appointmentSignature.ts","./src/app/models/model/appointmentSignatureFile.ts","./src/app/models/model/appointmentStatus.ts","./src/app/models/model/appointmentUnitStatus.ts","./src/app/models/model/averageJobcardDto.ts","./src/app/models/model/azureToken.ts","./src/app/models/model/brand.ts","./src/app/models/model/checklistCheck.ts","./src/app/models/model/checklistDamage.ts","./src/app/models/model/checklistGroup.ts","./src/app/models/model/checklistInstance.ts","./src/app/models/model/checklistQuestion.ts","./src/app/models/model/checklistResult.ts","./src/app/models/model/checklistResultAttachment.ts","./src/app/models/model/checklistTemplate.ts","./src/app/models/model/clockingLogDto.ts","./src/app/models/model/consumableAssociation.ts","./src/app/models/model/contractDto.ts","./src/app/models/model/contractResponseDto.ts","./src/app/models/model/country.ts","./src/app/models/model/cpdContactDetails.ts","./src/app/models/model/cspsOrderStatus.ts","./src/app/models/model/currency.ts","./src/app/models/model/customerCompany.ts","./src/app/models/model/customerCompanyUser.ts","./src/app/models/model/customerTrendsDto.ts","./src/app/models/model/customerViewDto.ts","./src/app/models/model/dealerBrandStyle.ts","./src/app/models/model/deliveryAddressDto.ts","./src/app/models/model/deliveryAddressResponseDto.ts","./src/app/models/model/dmsCommunicationDto.ts","./src/app/models/model/dmsLog.ts","./src/app/models/model/dmsStatus.ts","./src/app/models/model/encryptedSignature.ts","./src/app/models/model/epartsMarketMapping.ts","./src/app/models/model/epartsPart.ts","./src/app/models/model/extraOperation.ts","./src/app/models/model/feedbackAttachmentDto.ts","./src/app/models/model/feedbackCreationDto.ts","./src/app/models/model/fictitiousMaterial.ts","./src/app/models/model/filterBy.ts","./src/app/models/model/healthCheckJobcard.ts","./src/app/models/model/inlineObject.ts","./src/app/models/model/inlineObject1.ts","./src/app/models/model/inlineObject2.ts","./src/app/models/model/inlineObject3.ts","./src/app/models/model/inlineObject4.ts","./src/app/models/model/inlineObject5.ts","./src/app/models/model/inlineObject6.ts","./src/app/models/model/inspectionChecklistReportLine.ts","./src/app/models/model/iuDocumentBasketDto.ts","./src/app/models/model/iuDocumentDto.ts","./src/app/models/model/jobcard.ts","./src/app/models/model/jobcardAttachment.ts","./src/app/models/model/jobcardItem.ts","./src/app/models/model/jobcardItemCustomerStatus.ts","./src/app/models/model/jobcardItemDeleted.ts","./src/app/models/model/jobcardItemIuDocument.ts","./src/app/models/model/jobcardItemSpell.ts","./src/app/models/model/jobcardItemStatus.ts","./src/app/models/model/jobcardItemStatusActiveClockings.ts","./src/app/models/model/jobcardItemTechnician.ts","./src/app/models/model/jobcardPartsBacklog.ts","./src/app/models/model/jobcardTravel.ts","./src/app/models/model/kit.ts","./src/app/models/model/kitPart.ts","./src/app/models/model/kpiInspectionReportDto.ts","./src/app/models/model/kpiMonthlyPartsTrendDto.ts","./src/app/models/model/kpiPartsDto.ts","./src/app/models/model/kpiWeeklyDto.ts","./src/app/models/model/kpis.ts","./src/app/models/model/language.ts","./src/app/models/model/legalNotice.ts","./src/app/models/model/linesExcelReport.ts","./src/app/models/model/mergeLog.ts","./src/app/models/model/mobileLog.ts","./src/app/models/model/model.ts","./src/app/models/model/models.ts","./src/app/models/model/mpInformation.ts","./src/app/models/model/mpInformationDelta.ts","./src/app/models/model/name.ts","./src/app/models/model/nonProductiveActivity.ts","./src/app/models/model/nonProductiveActivityStatus.ts","./src/app/models/model/notification.ts","./src/app/models/model/notificationCreation.ts","./src/app/models/model/notificationSubscription.ts","./src/app/models/model/notificationSubscriptionSet.ts","./src/app/models/model/notificationType.ts","./src/app/models/model/onHoldReason.ts","./src/app/models/model/openOrderRequest.ts","./src/app/models/model/openingDay.ts","./src/app/models/model/openingDayPeriods.ts","./src/app/models/model/operation.ts","./src/app/models/model/operationConsumable.ts","./src/app/models/model/operationPart.ts","./src/app/models/model/operationPartLocation.ts","./src/app/models/model/operationWarranty.ts","./src/app/models/model/oprConsumable.ts","./src/app/models/model/orderStatusDto.ts","./src/app/models/model/orderStatusPrefDto.ts","./src/app/models/model/orderTypeDto.ts","./src/app/models/model/orderTypeHeaderCode.ts","./src/app/models/model/ordersAndSalesByStatus.ts","./src/app/models/model/otp.ts","./src/app/models/model/pageNumber.ts","./src/app/models/model/part.ts","./src/app/models/model/partAvailability.ts","./src/app/models/model/partConsumable.ts","./src/app/models/model/partQuantity.ts","./src/app/models/model/partReturn.ts","./src/app/models/model/partsSalesDto.ts","./src/app/models/model/partsTrackerCsps.ts","./src/app/models/model/partsTrackerDms.ts","./src/app/models/model/paymentSubSubType.ts","./src/app/models/model/paymentSubType.ts","./src/app/models/model/paymentType.ts","./src/app/models/model/permission.ts","./src/app/models/model/priorityType.ts","./src/app/models/model/productObj.ts","./src/app/models/model/releaseVersion.ts","./src/app/models/model/resultDto.ts","./src/app/models/model/resultMessage.ts","./src/app/models/model/role.ts","./src/app/models/model/sapAttachmentValue.ts","./src/app/models/model/sapDealerMarketCheckResult.ts","./src/app/models/model/series.ts","./src/app/models/model/shift.ts","./src/app/models/model/shiftPeriods.ts","./src/app/models/model/skill.ts","./src/app/models/model/split.ts","./src/app/models/model/standaloneImportFileResponse.ts","./src/app/models/model/techClockingDto.ts","./src/app/models/model/technicalType.ts","./src/app/models/model/technicianPlanningCount.ts","./src/app/models/model/technicianPlanningFilterDto.ts","./src/app/models/model/types.ts","./src/app/models/model/uncaughtException.ts","./src/app/models/model/userGuide.ts","./src/app/models/model/utilizationDto.ts","./src/app/models/model/validationResponse.ts","./src/app/models/model/vehicle.ts","./src/app/models/model/vehicleCourtesy.ts","./src/app/models/model/vehicleCourtesyBooking.ts","./src/app/models/model/vehicleLegalInspection.ts","./src/app/models/model/vehiclesDetailsDto.ts","./src/app/models/model/warrantyClaimData.ts","./src/app/models/model/warrantyType.ts","./src/app/models/model/weeklyTrend.ts","./src/app/models/model/weeklyTrendDto.ts","./src/app/models/model/weeklyTrendInspectionDto.ts","./src/app/models/model/wipAppointmentExcelReport.ts","./src/app/models/model/wipDto.ts","./src/app/models/model/workOrderExcelReport.ts","./src/app/models/model/workshop.ts","./src/app/models/model/workshopBay.ts","./src/app/models/model/workshopChecklistType.ts","./src/app/models/model/workshopDiscount.ts","./src/app/models/model/workshopEnabled.ts","./src/app/models/model/workshopFigures.ts","./src/app/models/model/workshopSale.ts","./src/app/models/model/workshopSalesDto.ts","./src/app/models/model/workshopUser.ts","./src/app/models/model/workshopUserTravelPosition.ts","./src/app/models/model/workshopUserUnavailability.ts","./src/app/msal/access-token.interceptor.ts","./src/app/msal/auth-config.ts","./src/app/msal/auth-msal.module.ts","./src/app/notification/add-notification/add-notification-modal.component.ts","./src/app/notification/add-notification/add-notification-modal.component.html","./src/app/notification/notification.component.ts","./src/app/notification/notification.component.html","./src/app/planning/planning-day-range/planning-day-range.component.ts","./src/app/shared/activities/activities.component.ts","./src/app/shared/activities/activities.component.html","./src/app/shared/activity-header/activity-header.component.ts","./src/app/shared/activity-header/activity-header.component.html","./src/app/shared/appointment-status/appointment-status.component.ts","./src/app/shared/appointment-status/appointment-status.component.html","./src/app/shared/attachments-modal/add-attachment-modal/add-attachment-modal.component.ts","./src/app/shared/attachments-modal/add-attachment-modal/add-attachment-modal.component.html","./src/app/shared/attachments-modal/attachments-modal.component.ts","./src/app/shared/attachments-modal/attachments-modal.component.html","./src/app/shared/audit/audit.component.ts","./src/app/shared/audit/audit.component.html","./src/app/shared/azure-storage/azure-storage.service.ts","./src/app/shared/back-to-top/back-to-top.component.ts","./src/app/shared/back-to-top/back-to-top.component.html","./src/app/shared/backlogs/backlog-list.component.ts","./src/app/shared/backlogs/backlog-list.component.html","./src/app/shared/card-collapse/card-collapse.component.ts","./src/app/shared/card-collapse/card-collapse.component.html","./src/app/shared/card/card.component.ts","./src/app/shared/card/card.component.html","./src/app/shared/change-status-modal/change-status-modal.component.ts","./src/app/shared/change-status-modal/change-status-modal.component.html","./src/app/shared/checkbox-indeterminate/checkbox-indeterminate.directive.ts","./src/app/shared/checklist-details-modal/checklist-details-modal.component.ts","./src/app/shared/checklist-details-modal/checklist-details-modal.component.html","./src/app/shared/checklist-template/checklist-template.component.ts","./src/app/shared/checklist-template/checklist-template.component.html","./src/app/shared/client-verbal-agreement-modal/client-verbal-agreement-modal.component.ts","./src/app/shared/client-verbal-agreement-modal/client-verbal-agreement-modal.component.html","./src/app/shared/clock-modal/clock-modal.component.ts","./src/app/shared/clock-modal/clock-modal.component.html","./src/app/shared/clocked-time-modal/clocked-time-delete-modal/clocked-time-delete-modal.component.ts","./src/app/shared/clocked-time-modal/clocked-time-delete-modal/clocked-time-delete-modal.component.html","./src/app/shared/clocked-time-modal/clocked-time-edit-modal/clocked-time-edit-modal.component.ts","./src/app/shared/clocked-time-modal/clocked-time-edit-modal/clocked-time-edit-modal.component.html","./src/app/shared/clocked-time-modal/clocked-time-modal.component.ts","./src/app/shared/clocked-time-modal/clocked-time-modal.component.html","./src/app/shared/clocking-logs-modal/clocking-logs-modal.component.ts","./src/app/shared/clocking-logs-modal/clocking-logs-modal.component.html","./src/app/shared/clocking-logs-modal/clocking-logs-table/clocking-logs-table.component.ts","./src/app/shared/clocking-logs-modal/clocking-logs-table/clocking-logs-table.component.html","./src/app/shared/confirm-modal/confirm-modal.component.ts","./src/app/shared/confirm-modal/confirm-modal.component.html","./src/app/shared/constants/constants.ts","./src/app/shared/create-appointment-button/create-appointment-button.component.ts","./src/app/shared/create-appointment-button/create-appointment-button.component.html","./src/app/shared/date-picker-modal/date-picker-modal.component.ts","./src/app/shared/date-picker-modal/date-picker-modal.component.html","./src/app/shared/date-picker/date-picker.component.ts","./src/app/shared/date-picker/date-picker.component.html","./src/app/shared/date-time-picker-modal/date-time-picker-modal.component.ts","./src/app/shared/date-time-picker-modal/date-time-picker-modal.component.html","./src/app/shared/date-time-picker/date-time-picker.component.ts","./src/app/shared/date-time-picker/date-time-picker.component.html","./src/app/shared/defer-activity-modal/defer-activity-modal.component.ts","./src/app/shared/defer-activity-modal/defer-activity-modal.component.html","./src/app/shared/delete-appointment-modal/delete-appointment-modal.component.ts","./src/app/shared/delete-appointment-modal/delete-appointment-modal.component.html","./src/app/shared/directives/has-part-assign.directive.ts","./src/app/shared/directives/set-scroll-view.directive.ts","./src/app/shared/display-checklist-jobcard/display-checklist-jobcard.component.ts","./src/app/shared/display-checklist-jobcard/display-checklist-jobcard.component.html","./src/app/shared/display-checklist-modal/display-checklist-modal.component.ts","./src/app/shared/display-checklist-modal/display-checklist-modal.component.html","./src/app/shared/dms-indicator/dms-connection.service.ts","./src/app/shared/dms-indicator/dms-indicator.component.ts","./src/app/shared/dms-indicator/dms-indicator.component.html","./src/app/shared/dms-logs-notification-modal/dms-logs-notification-modal.component.ts","./src/app/shared/dms-logs-notification-modal/dms-logs-notification-modal.component.html","./src/app/shared/dropdown-action/dms-error-toastr-modal/dms-error-toastr-modal.component.ts","./src/app/shared/dropdown-action/dms-error-toastr-modal/dms-error-toastr-modal.component.html","./src/app/shared/dropdown-action/dropdown-action.component.ts","./src/app/shared/dropdown-action/dropdown-action.component.html","./src/app/shared/dropdown-action/dropdown-action.service.ts","./src/app/shared/dropdown-action/on-hold-reason-modal/on-hold-reason-modal.component.ts","./src/app/shared/dropdown-action/on-hold-reason-modal/on-hold-reason-modal.component.html","./src/app/shared/duration-picker/duration-picker.component.ts","./src/app/shared/duration-picker/duration-picker.component.html","./src/app/shared/duration-picker/jc-time.ts","./src/app/shared/duration-picker/ngb-time-minutes-adapter.ts","./src/app/shared/edit-field-modal/edit-field-modal.component.ts","./src/app/shared/edit-field-modal/edit-field-modal.component.html","./src/app/shared/edit-maintenance-activity-modal/edit-maintenance-activity-modal.component.ts","./src/app/shared/edit-maintenance-activity-modal/edit-maintenance-activity-modal.component.html","./src/app/shared/edit-maintenance-modal/edit-maintenance-modal.component.ts","./src/app/shared/edit-maintenance-modal/edit-maintenance-modal.component.html","./src/app/shared/edit-maintenance-modal/kit-part-details-modal/kit-part-details-modal.component.ts","./src/app/shared/edit-maintenance-modal/kit-part-details-modal/kit-part-details-modal.component.html","./src/app/shared/edit-operation-modal/add-part/add-part.component.ts","./src/app/shared/edit-operation-modal/add-part/add-part.component.html","./src/app/shared/edit-operation-modal/edit-operation-modal.component.ts","./src/app/shared/edit-operation-modal/edit-operation-modal.component.html","./src/app/shared/edit-operation-modal/srt-part-assosiated-modal/srt-part-assosiated-modal.component.ts","./src/app/shared/edit-operation-modal/srt-part-assosiated-modal/srt-part-assosiated-modal.component.html","./src/app/shared/edit-operation-modal/srt-part-assosiated-modal/srt-part-confirm-modal/srt-part-confirm-modal.component.ts","./src/app/shared/edit-operation-modal/srt-part-assosiated-modal/srt-part-confirm-modal/srt-part-confirm-modal.component.html","./src/app/shared/edit-operation-modal/superseeded-part-modal/superseeded-part-modal.component.ts","./src/app/shared/edit-operation-modal/superseeded-part-modal/superseeded-part-modal.component.html","./src/app/shared/edit-questions-modal/edit-questions-modal.component.ts","./src/app/shared/edit-questions-modal/edit-questions-modal.component.html","./src/app/shared/edit-workshop-modal/edit-workshop-modal.component.ts","./src/app/shared/edit-workshop-modal/edit-workshop-modal.component.html","./src/app/shared/epart-modal/epart-modal.component.ts","./src/app/shared/epart-modal/epart-modal.component.html","./src/app/shared/etim-modal/etim-modal.component.ts","./src/app/shared/etim-modal/etim-modal.component.html","./src/app/shared/excel/excel.service.ts","./src/app/shared/feedback-modal/feedback-modal.component.ts","./src/app/shared/feedback-modal/feedback-modal.component.html","./src/app/shared/googleMap-service/google-web.service.ts","./src/app/shared/has-permissions/has-permissions.directive.ts","./src/app/shared/header/header.component.ts","./src/app/shared/header/header.component.html","./src/app/shared/is-iveco/is-iveco.directive.ts","./src/app/shared/iu-links-modal/iu-links-modal.component.ts","./src/app/shared/iu-links-modal/iu-links-modal.component.html","./src/app/shared/kit-details-modal/kit-details-modal.component.ts","./src/app/shared/kit-details-modal/kit-details-modal.component.html","./src/app/shared/loading-screen/loading-screen.component.ts","./src/app/shared/loading-screen/loading-screen.component.html","./src/app/shared/loading-screen/loading-screen.interceptor.ts","./src/app/shared/loading-screen/loading-screen.service.ts","./src/app/shared/locked-icon/locked-icon.component.ts","./src/app/shared/locked-icon/locked-icon.component.html","./src/app/shared/new-activities/new-activities.component.ts","./src/app/shared/new-activities/new-activities.component.html","./src/app/shared/new-defer-activity-modal/new-defer-activity-modal.component.ts","./src/app/shared/new-defer-activity-modal/new-defer-activity-modal.component.html","./src/app/shared/occupancy-banner/occupancy-banner.component.ts","./src/app/shared/occupancy-banner/occupancy-banner.component.html","./src/app/shared/on-hold-icon/on-hold-icon.component.ts","./src/app/shared/on-hold-icon/on-hold-icon.component.html","./src/app/shared/operation-status/operation-status.component.ts","./src/app/shared/operation-status/operation-status.component.html","./src/app/shared/parts-assignment-modal/parts-assignment-modal.component.ts","./src/app/shared/parts-assignment-modal/parts-assignment-modal.component.html","./src/app/shared/pipes/common-filter.pipe.ts","./src/app/shared/pipes/date-range.pipe.ts","./src/app/shared/pipes/dms-order-job-order.pipe.ts","./src/app/shared/pipes/filter-sub-payment-type.pipe.ts","./src/app/shared/pipes/generate-etim-url.pipe.ts","./src/app/shared/pipes/hours.pipe.ts","./src/app/shared/pipes/is-trail.pipe.ts","./src/app/shared/pipes/jobcard-item-status.pipe.ts","./src/app/shared/pipes/language.pipe.ts","./src/app/shared/pipes/measurement-units.pipe.ts","./src/app/shared/pipes/minutes.pipe.ts","./src/app/shared/pipes/mp-coupon-validate.pipe.ts","./src/app/shared/pipes/replace-if-empty.pipe.ts","./src/app/shared/pipes/seconds.pipe.ts","./src/app/shared/pipes/sort-by-field.pipe.ts","./src/app/shared/pipes/technicians-pipe.ts","./src/app/shared/pipes/truncate.pipe.ts","./src/app/shared/pipes/unavailability.pipe.ts","./src/app/shared/pipes/workshop-currency.pipe.ts","./src/app/shared/pipes/workshop-user-name.pipe.ts","./src/app/shared/reception-delivery-date-modal/reception-delivery-date-modal.component.ts","./src/app/shared/reception-delivery-date-modal/reception-delivery-date-modal.component.html","./src/app/shared/select-multiple/select-multiple.component.ts","./src/app/shared/select-multiple/select-multiple.component.html","./src/app/shared/shared.module.ts","./src/app/shared/sidebar/sidebar.component.ts","./src/app/shared/sidebar/sidebar.component.html","./src/app/shared/sortable/sortable.directive.ts","./src/app/shared/split-minimize/split-minimize.component.ts","./src/app/shared/split-minimize/split-minimize.component.html","./src/app/shared/travel-modal/travel-delete-modal/travel-delete-modal.component.ts","./src/app/shared/travel-modal/travel-delete-modal/travel-delete-modal.component.html","./src/app/shared/travel-modal/travel-details-modal/travel-details-modal.component.ts","./src/app/shared/travel-modal/travel-details-modal/travel-details-modal.component.html","./src/app/shared/travel-modal/travel-edit-modal/travel-edit-modal.component.ts","./src/app/shared/travel-modal/travel-edit-modal/travel-edit-modal.component.html","./src/app/shared/travel-modal/travel-map-display/travel-map-display.component.ts","./src/app/shared/travel-modal/travel-map-display/travel-map-display.component.html","./src/app/shared/travel-modal/travel-modal.component.ts","./src/app/shared/travel-modal/travel-modal.component.html","./src/app/shared/user-comment/user-comment.component.ts","./src/app/shared/user-comment/user-comment.component.html","./src/app/shared/vehicle-courtesy-details-modal/vehicle-courtesy-details-modal.component.ts","./src/app/shared/vehicle-courtesy-details-modal/vehicle-courtesy-details-modal.component.html","./src/app/shared/warning-modal/warning-modal.component.ts","./src/app/shared/warning-modal/warning-modal.component.html","./src/app/shared/workshop-bay-activity/edit-jobcard-item-modal/edit-jobcard-item-modal.component.ts","./src/app/shared/workshop-bay-activity/edit-jobcard-item-modal/edit-jobcard-item-modal.component.html","./src/app/shared/workshop-bay-activity/jobcard-item/jobcard-item.component.ts","./src/app/shared/workshop-bay-activity/jobcard-item/jobcard-item.component.html","./src/app/shared/workshop-bay-activity/workshop-bay-activity.component.ts","./src/app/shared/workshop-bay-activity/workshop-bay-activity.component.html","./src/app/shared/workshop-bay-occupancy/workshop-appointment-list/workshop-appointment-list.component.ts","./src/app/shared/workshop-bay-occupancy/workshop-appointment-list/workshop-appointment-list.component.html","./src/app/shared/workshop-bay-occupancy/workshop-bay-occupancy.component.ts","./src/app/shared/workshop-bay-occupancy/workshop-bay-occupancy.component.html","./src/app/shared/workshop-logo/workshop-logo.component.ts","./src/app/shared/workshop-logo/workshop-logo.component.html","./src/app/workfile/workfile-item/appointment-finalize-modal/appointment-finalize-modal.component.ts","./src/app/workfile/workfile-item/appointment-finalize-modal/appointment-finalize-modal.component.html","./src/app/workfile/workfile.service.ts","./src/app/workspace/workspace-main-planning/workspace-time/workspace-time.service.ts","./src/environments/environment.dev-cv.ts","./src/locale/locales.ts","./src/main.ts","./node_modules/@angular/google-maps/fesm2015/google-maps.js","./node_modules/@azure/msal-angular/fesm2015/azure-msal-angular.js","./node_modules/@azure/msal-browser/dist/_virtual/_tslib.js","./node_modules/@azure/msal-browser/dist/app/ClientApplication.js","./node_modules/@azure/msal-browser/dist/app/PublicClientApplication.js","./node_modules/@azure/msal-browser/dist/cache/BrowserCacheManager.js","./node_modules/@azure/msal-browser/dist/cache/BrowserStorage.js","./node_modules/@azure/msal-browser/dist/cache/DatabaseStorage.js","./node_modules/@azure/msal-browser/dist/cache/MemoryStorage.js","./node_modules/@azure/msal-browser/dist/config/Configuration.js","./node_modules/@azure/msal-browser/dist/crypto/BrowserCrypto.js","./node_modules/@azure/msal-browser/dist/crypto/CryptoOps.js","./node_modules/@azure/msal-browser/dist/crypto/GuidGenerator.js","./node_modules/@azure/msal-browser/dist/crypto/PkceGenerator.js","./node_modules/@azure/msal-browser/dist/encode/Base64Decode.js","./node_modules/@azure/msal-browser/dist/encode/Base64Encode.js","./node_modules/@azure/msal-browser/dist/error/BrowserAuthError.js","./node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.js","./node_modules/@azure/msal-browser/dist/event/EventMessage.js","./node_modules/@azure/msal-browser/dist/event/EventType.js","./node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.js","./node_modules/@azure/msal-browser/dist/interaction_handler/PopupHandler.js","./node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.js","./node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.js","./node_modules/@azure/msal-browser/dist/navigation/NavigationClient.js","./node_modules/@azure/msal-browser/dist/network/FetchClient.js","./node_modules/@azure/msal-browser/dist/network/XhrClient.js","./node_modules/@azure/msal-browser/dist/packageMetadata.js","./node_modules/@azure/msal-browser/dist/utils/BrowserConstants.js","./node_modules/@azure/msal-browser/dist/utils/BrowserProtocolUtils.js","./node_modules/@azure/msal-browser/dist/utils/BrowserStringUtils.js","./node_modules/@azure/msal-browser/dist/utils/BrowserUtils.js","./node_modules/@azure/msal-browser/dist/utils/MathUtils.js","./node_modules/@azure/msal-browser/dist/utils/PopupUtils.js","./node_modules/@azure/msal-common/dist/_virtual/_tslib.js","./node_modules/@azure/msal-common/dist/account/AuthToken.js","./node_modules/@azure/msal-common/dist/account/CcsCredential.js","./node_modules/@azure/msal-common/dist/account/ClientInfo.js","./node_modules/@azure/msal-common/dist/authority/Authority.js","./node_modules/@azure/msal-common/dist/authority/AuthorityFactory.js","./node_modules/@azure/msal-common/dist/authority/AuthorityType.js","./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.js","./node_modules/@azure/msal-common/dist/authority/OpenIdConfigResponse.js","./node_modules/@azure/msal-common/dist/authority/ProtocolMode.js","./node_modules/@azure/msal-common/dist/authority/RegionDiscovery.js","./node_modules/@azure/msal-common/dist/cache/CacheManager.js","./node_modules/@azure/msal-common/dist/cache/entities/AccessTokenEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/AccountEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/AppMetadataEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/AuthorityMetadataEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/CacheRecord.js","./node_modules/@azure/msal-common/dist/cache/entities/CredentialEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/IdTokenEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/RefreshTokenEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/ServerTelemetryEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/ThrottlingEntity.js","./node_modules/@azure/msal-common/dist/cache/persistence/TokenCacheContext.js","./node_modules/@azure/msal-common/dist/client/AuthorizationCodeClient.js","./node_modules/@azure/msal-common/dist/client/BaseClient.js","./node_modules/@azure/msal-common/dist/client/RefreshTokenClient.js","./node_modules/@azure/msal-common/dist/client/SilentFlowClient.js","./node_modules/@azure/msal-common/dist/config/ClientConfiguration.js","./node_modules/@azure/msal-common/dist/crypto/ICrypto.js","./node_modules/@azure/msal-common/dist/crypto/PopTokenGenerator.js","./node_modules/@azure/msal-common/dist/error/AuthError.js","./node_modules/@azure/msal-common/dist/error/ClientAuthError.js","./node_modules/@azure/msal-common/dist/error/ClientConfigurationError.js","./node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthError.js","./node_modules/@azure/msal-common/dist/error/ServerError.js","./node_modules/@azure/msal-common/dist/logger/Logger.js","./node_modules/@azure/msal-common/dist/network/INetworkModule.js","./node_modules/@azure/msal-common/dist/network/NetworkManager.js","./node_modules/@azure/msal-common/dist/network/ThrottlingUtils.js","./node_modules/@azure/msal-common/dist/packageMetadata.js","./node_modules/@azure/msal-common/dist/request/RequestParameterBuilder.js","./node_modules/@azure/msal-common/dist/request/RequestValidator.js","./node_modules/@azure/msal-common/dist/request/ScopeSet.js","./node_modules/@azure/msal-common/dist/response/ResponseHandler.js","./node_modules/@azure/msal-common/dist/telemetry/server/ServerTelemetryManager.js","./node_modules/@azure/msal-common/dist/url/UrlString.js","./node_modules/@azure/msal-common/dist/utils/Constants.js","./node_modules/@azure/msal-common/dist/utils/ProtocolUtils.js","./node_modules/@azure/msal-common/dist/utils/StringUtils.js","./node_modules/@azure/msal-common/dist/utils/TimeUtils.js","./node_modules/angular-gauge/fesm2015/angular-gauge.js","./node_modules/angular-pipes/fesm2015/angular-pipes.js","./node_modules/chart.js/dist/chart.esm.js","./node_modules/chart.js/dist/chunks/helpers.segment.js","./node_modules/file-saver/dist/FileSaver.min.js","./node_modules/inherits/inherits_browser.js","./node_modules/json3/lib/json3.js","./node_modules/jwt-decode/build/jwt-decode.esm.js","./node_modules/moment-range/dist/moment-range.js","./node_modules/moment/locale/da.js","./node_modules/moment/locale/de.js","./node_modules/moment/locale/es.js","./node_modules/moment/locale/fr-ca.js","./node_modules/moment/locale/fr.js","./node_modules/moment/locale/it.js","./node_modules/moment/locale/pt-br.js","./node_modules/moment/moment.js","./node_modules/ms/index.js","./node_modules/net/index.js","./node_modules/ngx-gauge/fesm2015/ngx-gauge.js","./node_modules/ngx-infinite-scroll/modules/ngx-infinite-scroll.js","./node_modules/querystringify/index.js","./node_modules/requires-port/index.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/dom/WebSocketSubject.js","./node_modules/rxjs/dist/esm/internal/observable/dom/webSocket.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/interval.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/never.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/race.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/observable/zip.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/rxjs/dist/esm/internal/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/endWith.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/pairwise.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/operators/skip.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throttle.js","./node_modules/rxjs/dist/esm/internal/operators/throttleTime.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/asap.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/Immediate.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/argsOrArgArray.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/sockjs-client/lib/entry.js","./node_modules/sockjs-client/lib/event/close.js","./node_modules/sockjs-client/lib/event/emitter.js","./node_modules/sockjs-client/lib/event/event.js","./node_modules/sockjs-client/lib/event/eventtarget.js","./node_modules/sockjs-client/lib/event/trans-message.js","./node_modules/sockjs-client/lib/facade.js","./node_modules/sockjs-client/lib/iframe-bootstrap.js","./node_modules/sockjs-client/lib/info-ajax.js","./node_modules/sockjs-client/lib/info-iframe-receiver.js","./node_modules/sockjs-client/lib/info-iframe.js","./node_modules/sockjs-client/lib/info-receiver.js","./node_modules/sockjs-client/lib/location.js","./node_modules/sockjs-client/lib/main.js","./node_modules/sockjs-client/lib/shims.js","./node_modules/sockjs-client/lib/transport-list.js","./node_modules/sockjs-client/lib/transport/browser/abstract-xhr.js","./node_modules/sockjs-client/lib/transport/browser/eventsource.js","./node_modules/sockjs-client/lib/transport/browser/websocket.js","./node_modules/sockjs-client/lib/transport/eventsource.js","./node_modules/sockjs-client/lib/transport/htmlfile.js","./node_modules/sockjs-client/lib/transport/iframe.js","./node_modules/sockjs-client/lib/transport/jsonp-polling.js","./node_modules/sockjs-client/lib/transport/lib/ajax-based.js","./node_modules/sockjs-client/lib/transport/lib/buffered-sender.js","./node_modules/sockjs-client/lib/transport/lib/iframe-wrap.js","./node_modules/sockjs-client/lib/transport/lib/polling.js","./node_modules/sockjs-client/lib/transport/lib/sender-receiver.js","./node_modules/sockjs-client/lib/transport/receiver/eventsource.js","./node_modules/sockjs-client/lib/transport/receiver/htmlfile.js","./node_modules/sockjs-client/lib/transport/receiver/jsonp.js","./node_modules/sockjs-client/lib/transport/receiver/xhr.js","./node_modules/sockjs-client/lib/transport/sender/jsonp.js","./node_modules/sockjs-client/lib/transport/sender/xdr.js","./node_modules/sockjs-client/lib/transport/sender/xhr-cors.js","./node_modules/sockjs-client/lib/transport/sender/xhr-fake.js","./node_modules/sockjs-client/lib/transport/sender/xhr-local.js","./node_modules/sockjs-client/lib/transport/websocket.js","./node_modules/sockjs-client/lib/transport/xdr-polling.js","./node_modules/sockjs-client/lib/transport/xdr-streaming.js","./node_modules/sockjs-client/lib/transport/xhr-polling.js","./node_modules/sockjs-client/lib/transport/xhr-streaming.js","./node_modules/sockjs-client/lib/utils/browser-crypto.js","./node_modules/sockjs-client/lib/utils/browser.js","./node_modules/sockjs-client/lib/utils/escape.js","./node_modules/sockjs-client/lib/utils/event.js","./node_modules/sockjs-client/lib/utils/iframe.js","./node_modules/sockjs-client/lib/utils/log.js","./node_modules/sockjs-client/lib/utils/object.js","./node_modules/sockjs-client/lib/utils/random.js","./node_modules/sockjs-client/lib/utils/transport.js","./node_modules/sockjs-client/lib/utils/url.js","./node_modules/sockjs-client/lib/version.js","./node_modules/sockjs-client/node_modules/debug/src/browser.js","./node_modules/sockjs-client/node_modules/debug/src/common.js","./node_modules/stompjs/index.js","./node_modules/stompjs/lib/stomp-node.js","./node_modules/stompjs/lib/stomp.js","./node_modules/stompjs/node_modules/es5-ext/global.js","./node_modules/stompjs/node_modules/websocket/lib/browser.js","./node_modules/stompjs/node_modules/websocket/lib/version.js","./node_modules/svg-gauge/index.js","./node_modules/svg-gauge/src/gauge.js","./node_modules/url-parse/index.js","/home/vsts/work/1/s/node_modules/moment/locale|sync|/^\\.\\/.*$/","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/animations/fesm2015/animations.mjs","./node_modules/@angular/animations/fesm2015/browser.mjs","./node_modules/@angular/cdk/fesm2015/a11y.mjs","./node_modules/@angular/cdk/fesm2015/bidi.mjs","./node_modules/@angular/cdk/fesm2015/coercion.mjs","./node_modules/@angular/cdk/fesm2015/collections.mjs","./node_modules/@angular/cdk/fesm2015/drag-drop.mjs","./node_modules/@angular/cdk/fesm2015/keycodes.mjs","./node_modules/@angular/cdk/fesm2015/observers.mjs","./node_modules/@angular/cdk/fesm2015/platform.mjs","./node_modules/@angular/cdk/fesm2015/scrolling.mjs","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/common/fesm2015/http.mjs","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/@angular/forms/fesm2015/forms.mjs","./node_modules/@angular/platform-browser/fesm2015/animations.mjs","./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/@angular/router/fesm2015/router.mjs","./node_modules/@ng-bootstrap/ng-bootstrap/fesm2015/ng-bootstrap.mjs","./node_modules/@ngx-matomo/tracker/fesm2015/ngx-matomo-tracker.mjs","./node_modules/lodash-es/_Hash.js","./node_modules/lodash-es/_ListCache.js","./node_modules/lodash-es/_Map.js","./node_modules/lodash-es/_MapCache.js","./node_modules/lodash-es/_Stack.js","./node_modules/lodash-es/_Symbol.js","./node_modules/lodash-es/_Uint8Array.js","./node_modules/lodash-es/_apply.js","./node_modules/lodash-es/_arrayLikeKeys.js","./node_modules/lodash-es/_assignMergeValue.js","./node_modules/lodash-es/_assignValue.js","./node_modules/lodash-es/_assocIndexOf.js","./node_modules/lodash-es/_baseAssignValue.js","./node_modules/lodash-es/_baseCreate.js","./node_modules/lodash-es/_baseFor.js","./node_modules/lodash-es/_baseGetTag.js","./node_modules/lodash-es/_baseIsArguments.js","./node_modules/lodash-es/_baseIsNative.js","./node_modules/lodash-es/_baseIsTypedArray.js","./node_modules/lodash-es/_baseKeysIn.js","./node_modules/lodash-es/_baseMerge.js","./node_modules/lodash-es/_baseMergeDeep.js","./node_modules/lodash-es/_baseRest.js","./node_modules/lodash-es/_baseSetToString.js","./node_modules/lodash-es/_baseTimes.js","./node_modules/lodash-es/_baseUnary.js","./node_modules/lodash-es/_cloneArrayBuffer.js","./node_modules/lodash-es/_cloneBuffer.js","./node_modules/lodash-es/_cloneTypedArray.js","./node_modules/lodash-es/_copyArray.js","./node_modules/lodash-es/_copyObject.js","./node_modules/lodash-es/_coreJsData.js","./node_modules/lodash-es/_createAssigner.js","./node_modules/lodash-es/_createBaseFor.js","./node_modules/lodash-es/_defineProperty.js","./node_modules/lodash-es/_freeGlobal.js","./node_modules/lodash-es/_getMapData.js","./node_modules/lodash-es/_getNative.js","./node_modules/lodash-es/_getPrototype.js","./node_modules/lodash-es/_getRawTag.js","./node_modules/lodash-es/_getValue.js","./node_modules/lodash-es/_hashClear.js","./node_modules/lodash-es/_hashDelete.js","./node_modules/lodash-es/_hashGet.js","./node_modules/lodash-es/_hashHas.js","./node_modules/lodash-es/_hashSet.js","./node_modules/lodash-es/_initCloneObject.js","./node_modules/lodash-es/_isIndex.js","./node_modules/lodash-es/_isIterateeCall.js","./node_modules/lodash-es/_isKeyable.js","./node_modules/lodash-es/_isMasked.js","./node_modules/lodash-es/_isPrototype.js","./node_modules/lodash-es/_listCacheClear.js","./node_modules/lodash-es/_listCacheDelete.js","./node_modules/lodash-es/_listCacheGet.js","./node_modules/lodash-es/_listCacheHas.js","./node_modules/lodash-es/_listCacheSet.js","./node_modules/lodash-es/_mapCacheClear.js","./node_modules/lodash-es/_mapCacheDelete.js","./node_modules/lodash-es/_mapCacheGet.js","./node_modules/lodash-es/_mapCacheHas.js","./node_modules/lodash-es/_mapCacheSet.js","./node_modules/lodash-es/_nativeCreate.js","./node_modules/lodash-es/_nativeKeysIn.js","./node_modules/lodash-es/_nodeUtil.js","./node_modules/lodash-es/_objectToString.js","./node_modules/lodash-es/_overArg.js","./node_modules/lodash-es/_overRest.js","./node_modules/lodash-es/_root.js","./node_modules/lodash-es/_safeGet.js","./node_modules/lodash-es/_setToString.js","./node_modules/lodash-es/_shortOut.js","./node_modules/lodash-es/_stackClear.js","./node_modules/lodash-es/_stackDelete.js","./node_modules/lodash-es/_stackGet.js","./node_modules/lodash-es/_stackHas.js","./node_modules/lodash-es/_stackSet.js","./node_modules/lodash-es/_toSource.js","./node_modules/lodash-es/constant.js","./node_modules/lodash-es/eq.js","./node_modules/lodash-es/identity.js","./node_modules/lodash-es/isArguments.js","./node_modules/lodash-es/isArray.js","./node_modules/lodash-es/isArrayLike.js","./node_modules/lodash-es/isArrayLikeObject.js","./node_modules/lodash-es/isBuffer.js","./node_modules/lodash-es/isFunction.js","./node_modules/lodash-es/isLength.js","./node_modules/lodash-es/isObject.js","./node_modules/lodash-es/isObjectLike.js","./node_modules/lodash-es/isPlainObject.js","./node_modules/lodash-es/isTypedArray.js","./node_modules/lodash-es/keysIn.js","./node_modules/lodash-es/merge.js","./node_modules/lodash-es/stubFalse.js","./node_modules/lodash-es/toPlainObject.js","./node_modules/ng2-charts/fesm2015/ng2-charts.mjs","./node_modules/ngx-cookie-service/fesm2015/ngx-cookie-service.mjs","./node_modules/ngx-toastr/fesm2015/ngx-toastr.mjs"],"sourcesContent":["import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { AzureService } from './api/azure.service';\nimport { ChecklistTemplateService } from './api/checklistTemplate.service';\nimport { ConsumableEquivalenceService } from './api/consumableEquivalence.service';\nimport { CountryService } from './api/country.service';\nimport { CurrencyService } from './api/currency.service';\nimport { CustomerCompanyService } from './api/customerCompany.service';\nimport { CustomerCompanyUserService } from './api/customerCompanyUser.service';\nimport { CustomerConsentService } from './api/customerConsent.service';\nimport { KitService } from './api/kit.service';\nimport { KpiBenchmarkControllerService } from './api/kpiBenchmarkController.service';\nimport { LanguageService } from './api/language.service';\nimport { LegalNoticeService } from './api/legalNotice.service';\nimport { NonProductiveActivityService } from './api/nonProductiveActivity.service';\nimport { NotificationService } from './api/notification.service';\nimport { NotificationSubscriptionService } from './api/notificationSubscription.service';\nimport { OnHoldReasonsService } from './api/onHoldReasons.service';\nimport { OrderTypeHeaderService } from './api/orderTypeHeader.service';\nimport { OtherItemService } from './api/otherItem.service';\nimport { PaymentTypeService } from './api/paymentType.service';\nimport { PermissionService } from './api/permission.service';\nimport { PriorityTypeService } from './api/priorityType.service';\nimport { ReleaseService } from './api/release.service';\nimport { RoleService } from './api/role.service';\nimport { SendNotificationControllerService } from './api/sendNotificationController.service';\nimport { ShiftService } from './api/shift.service';\nimport { SkillService } from './api/skill.service';\nimport { UserGuideService } from './api/userGuide.service';\nimport { VehicleService } from './api/vehicle.service';\nimport { VehicleCourtesyService } from './api/vehicleCourtesy.service';\nimport { WorkshopService } from './api/workshop.service';\nimport { WorkshopBayService } from './api/workshopBay.service';\nimport { WorkshopChecklistTypeService } from './api/workshopChecklistType.service';\nimport { WorkshopDiscountService } from './api/workshopDiscount.service';\nimport { WorkshopUserService } from './api/workshopUser.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","export * from './azure.service';\nimport { AzureService } from './azure.service';\nexport * from './checklistTemplate.service';\nimport { ChecklistTemplateService } from './checklistTemplate.service';\nexport * from './consumableEquivalence.service';\nimport { ConsumableEquivalenceService } from './consumableEquivalence.service';\nexport * from './country.service';\nimport { CountryService } from './country.service';\nexport * from './currency.service';\nimport { CurrencyService } from './currency.service';\nexport * from './customerCompany.service';\nimport { CustomerCompanyService } from './customerCompany.service';\nexport * from './customerCompanyUser.service';\nimport { CustomerCompanyUserService } from './customerCompanyUser.service';\nexport * from './customerConsent.service';\nimport { CustomerConsentService } from './customerConsent.service';\nexport * from './kit.service';\nimport { KitService } from './kit.service';\nexport * from './kpiBenchmarkController.service';\nimport { KpiBenchmarkControllerService } from './kpiBenchmarkController.service';\nexport * from './language.service';\nimport { LanguageService } from './language.service';\nexport * from './legalNotice.service';\nimport { LegalNoticeService } from './legalNotice.service';\nexport * from './nonProductiveActivity.service';\nimport { NonProductiveActivityService } from './nonProductiveActivity.service';\nexport * from './notification.service';\nimport { NotificationService } from './notification.service';\nexport * from './notificationSubscription.service';\nimport { NotificationSubscriptionService } from './notificationSubscription.service';\nexport * from './onHoldReasons.service';\nimport { OnHoldReasonsService } from './onHoldReasons.service';\nexport * from './orderTypeHeader.service';\nimport { OrderTypeHeaderService } from './orderTypeHeader.service';\nexport * from './otherItem.service';\nimport { OtherItemService } from './otherItem.service';\nexport * from './paymentType.service';\nimport { PaymentTypeService } from './paymentType.service';\nexport * from './permission.service';\nimport { PermissionService } from './permission.service';\nexport * from './priorityType.service';\nimport { PriorityTypeService } from './priorityType.service';\nexport * from './release.service';\nimport { ReleaseService } from './release.service';\nexport * from './role.service';\nimport { RoleService } from './role.service';\nexport * from './sendNotificationController.service';\nimport { SendNotificationControllerService } from './sendNotificationController.service';\nexport * from './shift.service';\nimport { ShiftService } from './shift.service';\nexport * from './skill.service';\nimport { SkillService } from './skill.service';\nexport * from './userGuide.service';\nimport { UserGuideService } from './userGuide.service';\nexport * from './vehicle.service';\nimport { VehicleService } from './vehicle.service';\nexport * from './vehicleCourtesy.service';\nimport { VehicleCourtesyService } from './vehicleCourtesy.service';\nexport * from './workshop.service';\nimport { WorkshopService } from './workshop.service';\nexport * from './workshopBay.service';\nimport { WorkshopBayService } from './workshopBay.service';\nexport * from './workshopChecklistType.service';\nimport { WorkshopChecklistTypeService } from './workshopChecklistType.service';\nexport * from './workshopDiscount.service';\nimport { WorkshopDiscountService } from './workshopDiscount.service';\nexport * from './workshopUser.service';\nimport { WorkshopUserService } from './workshopUser.service';\nexport const APIS = [AzureService, ChecklistTemplateService, ConsumableEquivalenceService, CountryService, CurrencyService, CustomerCompanyService, CustomerCompanyUserService, CustomerConsentService, KitService, KpiBenchmarkControllerService, LanguageService, LegalNoticeService, NonProductiveActivityService, NotificationService, NotificationSubscriptionService, OnHoldReasonsService, OrderTypeHeaderService, OtherItemService, PaymentTypeService, PermissionService, PriorityTypeService, ReleaseService, RoleService, SendNotificationControllerService, ShiftService, SkillService, UserGuideService, VehicleService, VehicleCourtesyService, WorkshopService, WorkshopBayService, WorkshopChecklistTypeService, WorkshopDiscountService, WorkshopUserService];\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AzureTokenDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAzureSasTokenRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AzureService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAzureSasToken.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/azure-token`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ChecklistTemplateDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateChecklistTemplateRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checklistTemplateDto: ChecklistTemplateDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteChecklistTemplateRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetChecklistTemplateRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetChecklistTemplatesRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n type?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateChecklistTemplateRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checklistTemplateDto: ChecklistTemplateDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateChecklistTemplateRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checklistTemplateDto: ChecklistTemplateDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecklistTemplateService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistTemplate(requestParameters: CreateChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createChecklistTemplate(requestParameters: CreateChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistTemplate(requestParameters: CreateChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistTemplate(requestParameters: CreateChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createChecklistTemplate.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createChecklistTemplate.');\n }\n const checklistTemplateDto = requestParameters.checklistTemplateDto;\n if (checklistTemplateDto === null || checklistTemplateDto === undefined) {\n throw new Error('Required parameter checklistTemplateDto was null or undefined when calling createChecklistTemplate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-templates`,\n checklistTemplateDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteChecklistTemplate(requestParameters: DeleteChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteChecklistTemplate(requestParameters: DeleteChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteChecklistTemplate(requestParameters: DeleteChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteChecklistTemplate(requestParameters: DeleteChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteChecklistTemplate.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteChecklistTemplate.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteChecklistTemplate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-templates/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getChecklistTemplate.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getChecklistTemplate.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getChecklistTemplate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-templates/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getChecklistTemplates.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getChecklistTemplates.');\n }\n const type = requestParameters.type;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-templates`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateChecklistTemplate(requestParameters: PartialUpdateChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateChecklistTemplate(requestParameters: PartialUpdateChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateChecklistTemplate(requestParameters: PartialUpdateChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateChecklistTemplate(requestParameters: PartialUpdateChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling partialUpdateChecklistTemplate.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateChecklistTemplate.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateChecklistTemplate.');\n }\n const checklistTemplateDto = requestParameters.checklistTemplateDto;\n if (checklistTemplateDto === null || checklistTemplateDto === undefined) {\n throw new Error('Required parameter checklistTemplateDto was null or undefined when calling partialUpdateChecklistTemplate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-templates/${encodeURIComponent(String(id))}`,\n checklistTemplateDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateChecklistTemplate(requestParameters: UpdateChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateChecklistTemplate(requestParameters: UpdateChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistTemplate(requestParameters: UpdateChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistTemplate(requestParameters: UpdateChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateChecklistTemplate.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateChecklistTemplate.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateChecklistTemplate.');\n }\n const checklistTemplateDto = requestParameters.checklistTemplateDto;\n if (checklistTemplateDto === null || checklistTemplateDto === undefined) {\n throw new Error('Required parameter checklistTemplateDto was null or undefined when calling updateChecklistTemplate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-templates/${encodeURIComponent(String(id))}`,\n checklistTemplateDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ConsumableAssociationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddConsumableAssociationRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n consumableAssociationDto: ConsumableAssociationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteConsumableAssociationRequestParams {\n associationId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetConsumableAssociationsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateConsumableAssociationRequestParams {\n associationId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n consumableAssociationDto: ConsumableAssociationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConsumableEquivalenceService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addConsumableAssociation(requestParameters: AddConsumableAssociationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addConsumableAssociation(requestParameters: AddConsumableAssociationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addConsumableAssociation(requestParameters: AddConsumableAssociationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addConsumableAssociation(requestParameters: AddConsumableAssociationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling addConsumableAssociation.');\n }\n const consumableAssociationDto = requestParameters.consumableAssociationDto;\n if (consumableAssociationDto === null || consumableAssociationDto === undefined) {\n throw new Error('Required parameter consumableAssociationDto was null or undefined when calling addConsumableAssociation.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/consumable-associations`,\n consumableAssociationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteConsumableAssociation(requestParameters: DeleteConsumableAssociationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deleteConsumableAssociation(requestParameters: DeleteConsumableAssociationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteConsumableAssociation(requestParameters: DeleteConsumableAssociationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteConsumableAssociation(requestParameters: DeleteConsumableAssociationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const associationId = requestParameters.associationId;\n if (associationId === null || associationId === undefined) {\n throw new Error('Required parameter associationId was null or undefined when calling deleteConsumableAssociation.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteConsumableAssociation.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/consumable-associations/${encodeURIComponent(String(associationId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getConsumableAssociations(requestParameters: GetConsumableAssociationsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getConsumableAssociations(requestParameters: GetConsumableAssociationsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConsumableAssociations(requestParameters: GetConsumableAssociationsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConsumableAssociations(requestParameters: GetConsumableAssociationsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getConsumableAssociations.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getConsumableAssociations.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/consumable-associations`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateConsumableAssociation(requestParameters: UpdateConsumableAssociationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateConsumableAssociation(requestParameters: UpdateConsumableAssociationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateConsumableAssociation(requestParameters: UpdateConsumableAssociationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateConsumableAssociation(requestParameters: UpdateConsumableAssociationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const associationId = requestParameters.associationId;\n if (associationId === null || associationId === undefined) {\n throw new Error('Required parameter associationId was null or undefined when calling updateConsumableAssociation.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateConsumableAssociation.');\n }\n const consumableAssociationDto = requestParameters.consumableAssociationDto;\n if (consumableAssociationDto === null || consumableAssociationDto === undefined) {\n throw new Error('Required parameter consumableAssociationDto was null or undefined when calling updateConsumableAssociation.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/consumable-associations/${encodeURIComponent(String(associationId))}`,\n consumableAssociationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CountryDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAllCountriesRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CountryService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllCountries(requestParameters: GetAllCountriesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllCountries(requestParameters: GetAllCountriesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllCountries(requestParameters: GetAllCountriesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllCountries(requestParameters: GetAllCountriesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAllCountries.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/countries`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CurrencyDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAllCurrenciesRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CurrencyService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllCurrencies(requestParameters: GetAllCurrenciesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllCurrencies(requestParameters: GetAllCurrenciesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllCurrencies(requestParameters: GetAllCurrenciesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllCurrencies(requestParameters: GetAllCurrenciesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAllCurrencies.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/currencies`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CustomerCompanyDto } from '../model/models';\nimport { CustomerCompanyPatchDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateCustomerRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n customerCompanyDto: CustomerCompanyDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteCustomerCompanyRequestParams {\n id: number;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomerCompaniesRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n isActive?: boolean;\n dmsId?: string;\n name?: string;\n sortBy?: 'NAME' | 'DMS_ID' | 'COUNTRY' | 'ZIPCODE' | 'CITY';\n sortOrder?: string;\n page?: number;\n size?: number;\n filterBy?: string;\n filterValue?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomerCompanyByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateCustomerCompanyRequestParams {\n id: number;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n customerCompanyPatchDto: CustomerCompanyPatchDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateCustomerCompanyRequestParams {\n id: number;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n customerCompanyDto: CustomerCompanyDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerCompanyService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createCustomer(requestParameters: CreateCustomerRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createCustomer(requestParameters: CreateCustomerRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createCustomer(requestParameters: CreateCustomerRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createCustomer(requestParameters: CreateCustomerRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createCustomer.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createCustomer.');\n }\n const customerCompanyDto = requestParameters.customerCompanyDto;\n if (customerCompanyDto === null || customerCompanyDto === undefined) {\n throw new Error('Required parameter customerCompanyDto was null or undefined when calling createCustomer.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-companies`,\n customerCompanyDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteCustomerCompany(requestParameters: DeleteCustomerCompanyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteCustomerCompany(requestParameters: DeleteCustomerCompanyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteCustomerCompany(requestParameters: DeleteCustomerCompanyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteCustomerCompany(requestParameters: DeleteCustomerCompanyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteCustomerCompany.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteCustomerCompany.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteCustomerCompany.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-companies/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanies(requestParameters: GetCustomerCompaniesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanies(requestParameters: GetCustomerCompaniesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerCompanies(requestParameters: GetCustomerCompaniesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerCompanies(requestParameters: GetCustomerCompaniesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getCustomerCompanies.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getCustomerCompanies.');\n }\n const isActive = requestParameters.isActive;\n const dmsId = requestParameters.dmsId;\n const name = requestParameters.name;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isActive !== undefined && isActive !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isActive, 'isActive');\n }\n if (dmsId !== undefined && dmsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsId, 'dmsId');\n }\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-companies`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getCustomerCompanyById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getCustomerCompanyById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getCustomerCompanyById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-companies/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateCustomerCompany(requestParameters: PartialUpdateCustomerCompanyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateCustomerCompany(requestParameters: PartialUpdateCustomerCompanyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateCustomerCompany(requestParameters: PartialUpdateCustomerCompanyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateCustomerCompany(requestParameters: PartialUpdateCustomerCompanyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateCustomerCompany.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling partialUpdateCustomerCompany.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateCustomerCompany.');\n }\n const customerCompanyPatchDto = requestParameters.customerCompanyPatchDto;\n if (customerCompanyPatchDto === null || customerCompanyPatchDto === undefined) {\n throw new Error('Required parameter customerCompanyPatchDto was null or undefined when calling partialUpdateCustomerCompany.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-companies/${encodeURIComponent(String(id))}`,\n customerCompanyPatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCustomerCompany(requestParameters: UpdateCustomerCompanyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateCustomerCompany(requestParameters: UpdateCustomerCompanyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompany(requestParameters: UpdateCustomerCompanyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompany(requestParameters: UpdateCustomerCompanyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateCustomerCompany.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateCustomerCompany.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateCustomerCompany.');\n }\n const customerCompanyDto = requestParameters.customerCompanyDto;\n if (customerCompanyDto === null || customerCompanyDto === undefined) {\n throw new Error('Required parameter customerCompanyDto was null or undefined when calling updateCustomerCompany.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-companies/${encodeURIComponent(String(id))}`,\n customerCompanyDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CustomerCompanyUserDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface DeleteCustomerCompanyUserRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomerCompanyUsersRequestParams {\n workshopId: number;\n customerId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateCustomerCompanyUserRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n customerCompanyUserDto: CustomerCompanyUserDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerCompanyUserService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteCustomerCompanyUser(requestParameters: DeleteCustomerCompanyUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteCustomerCompanyUser(requestParameters: DeleteCustomerCompanyUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteCustomerCompanyUser(requestParameters: DeleteCustomerCompanyUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteCustomerCompanyUser(requestParameters: DeleteCustomerCompanyUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteCustomerCompanyUser.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteCustomerCompanyUser.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteCustomerCompanyUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-company-users/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanyUsers(requestParameters: GetCustomerCompanyUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyUsers(requestParameters: GetCustomerCompanyUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerCompanyUsers(requestParameters: GetCustomerCompanyUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerCompanyUsers(requestParameters: GetCustomerCompanyUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getCustomerCompanyUsers.');\n }\n const customerId = requestParameters.customerId;\n if (customerId === null || customerId === undefined) {\n throw new Error('Required parameter customerId was null or undefined when calling getCustomerCompanyUsers.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getCustomerCompanyUsers.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-company-users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCustomerCompanyUser(requestParameters: UpdateCustomerCompanyUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateCustomerCompanyUser(requestParameters: UpdateCustomerCompanyUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompanyUser(requestParameters: UpdateCustomerCompanyUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompanyUser(requestParameters: UpdateCustomerCompanyUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateCustomerCompanyUser.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateCustomerCompanyUser.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateCustomerCompanyUser.');\n }\n const customerCompanyUserDto = requestParameters.customerCompanyUserDto;\n if (customerCompanyUserDto === null || customerCompanyUserDto === undefined) {\n throw new Error('Required parameter customerCompanyUserDto was null or undefined when calling updateCustomerCompanyUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-company-users/${encodeURIComponent(String(id))}`,\n customerCompanyUserDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface ResetCustomerConsentRequestParams {\n workshopIds: Array;\n type: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerConsentService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public resetCustomerConsent(requestParameters: ResetCustomerConsentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain'}): Observable;\n public resetCustomerConsent(requestParameters: ResetCustomerConsentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain'}): Observable>;\n public resetCustomerConsent(requestParameters: ResetCustomerConsentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain'}): Observable>;\n public resetCustomerConsent(requestParameters: ResetCustomerConsentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain'}): Observable {\n const workshopIds = requestParameters.workshopIds;\n if (workshopIds === null || workshopIds === undefined) {\n throw new Error('Required parameter workshopIds was null or undefined when calling resetCustomerConsent.');\n }\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling resetCustomerConsent.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling resetCustomerConsent.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopIds) {\n workshopIds.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'workshopIds');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'text/plain'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/reset-customer-consent/${encodeURIComponent(String(type))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KitDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateKitRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n kitDto: KitDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteKitRequestParams {\n workshopId: number;\n kitId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKitByIdRequestParams {\n workshopId: number;\n kitId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKitsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateKitRequestParams {\n workshopId: number;\n kitId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n kitDto: KitDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KitService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createKit(requestParameters: CreateKitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createKit(requestParameters: CreateKitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createKit(requestParameters: CreateKitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createKit(requestParameters: CreateKitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createKit.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createKit.');\n }\n const kitDto = requestParameters.kitDto;\n if (kitDto === null || kitDto === undefined) {\n throw new Error('Required parameter kitDto was null or undefined when calling createKit.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kits`,\n kitDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteKit(requestParameters: DeleteKitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteKit(requestParameters: DeleteKitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteKit(requestParameters: DeleteKitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteKit(requestParameters: DeleteKitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteKit.');\n }\n const kitId = requestParameters.kitId;\n if (kitId === null || kitId === undefined) {\n throw new Error('Required parameter kitId was null or undefined when calling deleteKit.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteKit.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kits/${encodeURIComponent(String(kitId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKitById(requestParameters: GetKitByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKitById(requestParameters: GetKitByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKitById(requestParameters: GetKitByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKitById(requestParameters: GetKitByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getKitById.');\n }\n const kitId = requestParameters.kitId;\n if (kitId === null || kitId === undefined) {\n throw new Error('Required parameter kitId was null or undefined when calling getKitById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getKitById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kits/${encodeURIComponent(String(kitId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKits(requestParameters: GetKitsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKits(requestParameters: GetKitsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getKits(requestParameters: GetKitsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getKits(requestParameters: GetKitsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getKits.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getKits.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kits`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateKit(requestParameters: UpdateKitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateKit(requestParameters: UpdateKitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateKit(requestParameters: UpdateKitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateKit(requestParameters: UpdateKitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateKit.');\n }\n const kitId = requestParameters.kitId;\n if (kitId === null || kitId === undefined) {\n throw new Error('Required parameter kitId was null or undefined when calling updateKit.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateKit.');\n }\n const kitDto = requestParameters.kitDto;\n if (kitDto === null || kitDto === undefined) {\n throw new Error('Required parameter kitDto was null or undefined when calling updateKit.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kits/${encodeURIComponent(String(kitId))}`,\n kitDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KpiDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetKpisBenchmarkRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveKpisBenchmarkRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n kpiDto: KpiDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiBenchmarkControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKpisBenchmark(requestParameters: GetKpisBenchmarkRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKpisBenchmark(requestParameters: GetKpisBenchmarkRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpisBenchmark(requestParameters: GetKpisBenchmarkRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpisBenchmark(requestParameters: GetKpisBenchmarkRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getKpisBenchmark.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getKpisBenchmark.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpis-benchmark`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveKpisBenchmark(requestParameters: SaveKpisBenchmarkRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public saveKpisBenchmark(requestParameters: SaveKpisBenchmarkRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveKpisBenchmark(requestParameters: SaveKpisBenchmarkRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveKpisBenchmark(requestParameters: SaveKpisBenchmarkRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling saveKpisBenchmark.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveKpisBenchmark.');\n }\n const kpiDto = requestParameters.kpiDto;\n if (kpiDto === null || kpiDto === undefined) {\n throw new Error('Required parameter kpiDto was null or undefined when calling saveKpisBenchmark.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpis-benchmark`,\n kpiDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { LanguageDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAllLanguagesRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllLanguages(requestParameters: GetAllLanguagesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllLanguages(requestParameters: GetAllLanguagesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllLanguages(requestParameters: GetAllLanguagesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllLanguages(requestParameters: GetAllLanguagesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAllLanguages.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/languages`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { LegalNoticeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface EditLegalNoticeRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n legalNoticeDto: LegalNoticeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetLegalNoticeByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetLegalNoticeByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveLegalNoticeRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n legalNoticeDto: LegalNoticeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LegalNoticeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editLegalNotice(requestParameters: EditLegalNoticeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editLegalNotice(requestParameters: EditLegalNoticeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editLegalNotice(requestParameters: EditLegalNoticeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editLegalNotice(requestParameters: EditLegalNoticeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling editLegalNotice.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editLegalNotice.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling editLegalNotice.');\n }\n const legalNoticeDto = requestParameters.legalNoticeDto;\n if (legalNoticeDto === null || legalNoticeDto === undefined) {\n throw new Error('Required parameter legalNoticeDto was null or undefined when calling editLegalNotice.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/legal-notice/${encodeURIComponent(String(id))}`,\n legalNoticeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLegalNoticeById(requestParameters: GetLegalNoticeByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getLegalNoticeById(requestParameters: GetLegalNoticeByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalNoticeById(requestParameters: GetLegalNoticeByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalNoticeById(requestParameters: GetLegalNoticeByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getLegalNoticeById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getLegalNoticeById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getLegalNoticeById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/legal-notice/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getLegalNoticeByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getLegalNoticeByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/legal-notice`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveLegalNotice(requestParameters: SaveLegalNoticeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveLegalNotice(requestParameters: SaveLegalNoticeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveLegalNotice(requestParameters: SaveLegalNoticeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveLegalNotice(requestParameters: SaveLegalNoticeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling saveLegalNotice.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveLegalNotice.');\n }\n const legalNoticeDto = requestParameters.legalNoticeDto;\n if (legalNoticeDto === null || legalNoticeDto === undefined) {\n throw new Error('Required parameter legalNoticeDto was null or undefined when calling saveLegalNotice.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/legal-notice`,\n legalNoticeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { NonProductiveActivityDto } from '../model/models';\nimport { NonProductiveActivityStatusDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetNonProductiveActivitiesByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNonProductiveActivityByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNonProductiveStatusByCronRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNonProductiveStatusByDatesRequestParams {\n startTime: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n endTime?: string;\n workshopUserId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PostNonProductiveActivityStatusRequestParams {\n workshopId: number;\n userId: string;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n nonProductiveActivityStatusDto: NonProductiveActivityStatusDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveNonProductiveActivityRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n nonProductiveActivityDto: NonProductiveActivityDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateNonProductiveActivityRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n nonProductiveActivityDto: NonProductiveActivityDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateNonProductiveActivityStatusRequestParams {\n id: number;\n workshopId: number;\n userId: string;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n nonProductiveActivityStatusDto: NonProductiveActivityStatusDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NonProductiveActivityService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveActivitiesByWorkshopId(requestParameters: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNonProductiveActivitiesByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNonProductiveActivitiesByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveActivityById(requestParameters: GetNonProductiveActivityByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getNonProductiveActivityById(requestParameters: GetNonProductiveActivityByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveActivityById(requestParameters: GetNonProductiveActivityByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveActivityById(requestParameters: GetNonProductiveActivityByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNonProductiveActivityById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getNonProductiveActivityById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNonProductiveActivityById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveStatusByCron(requestParameters: GetNonProductiveStatusByCronRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveStatusByCron(requestParameters: GetNonProductiveStatusByCronRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveStatusByCron(requestParameters: GetNonProductiveStatusByCronRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveStatusByCron(requestParameters: GetNonProductiveStatusByCronRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNonProductiveStatusByCron.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNonProductiveStatusByCron.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/non-productive-status/cron`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveStatusByDates(requestParameters: GetNonProductiveStatusByDatesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveStatusByDates(requestParameters: GetNonProductiveStatusByDatesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveStatusByDates(requestParameters: GetNonProductiveStatusByDatesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveStatusByDates(requestParameters: GetNonProductiveStatusByDatesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startTime = requestParameters.startTime;\n if (startTime === null || startTime === undefined) {\n throw new Error('Required parameter startTime was null or undefined when calling getNonProductiveStatusByDates.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNonProductiveStatusByDates.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNonProductiveStatusByDates.');\n }\n const endTime = requestParameters.endTime;\n const workshopUserId = requestParameters.workshopUserId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startTime !== undefined && startTime !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startTime, 'startTime');\n }\n if (endTime !== undefined && endTime !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endTime, 'endTime');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/non-productive-status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public postNonProductiveActivityStatus(requestParameters: PostNonProductiveActivityStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public postNonProductiveActivityStatus(requestParameters: PostNonProductiveActivityStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public postNonProductiveActivityStatus(requestParameters: PostNonProductiveActivityStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public postNonProductiveActivityStatus(requestParameters: PostNonProductiveActivityStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling postNonProductiveActivityStatus.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling postNonProductiveActivityStatus.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling postNonProductiveActivityStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling postNonProductiveActivityStatus.');\n }\n const nonProductiveActivityStatusDto = requestParameters.nonProductiveActivityStatusDto;\n if (nonProductiveActivityStatusDto === null || nonProductiveActivityStatusDto === undefined) {\n throw new Error('Required parameter nonProductiveActivityStatusDto was null or undefined when calling postNonProductiveActivityStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/non-productive-status`,\n nonProductiveActivityStatusDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveNonProductiveActivity(requestParameters: SaveNonProductiveActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveNonProductiveActivity(requestParameters: SaveNonProductiveActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveNonProductiveActivity(requestParameters: SaveNonProductiveActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveNonProductiveActivity(requestParameters: SaveNonProductiveActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling saveNonProductiveActivity.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveNonProductiveActivity.');\n }\n const nonProductiveActivityDto = requestParameters.nonProductiveActivityDto;\n if (nonProductiveActivityDto === null || nonProductiveActivityDto === undefined) {\n throw new Error('Required parameter nonProductiveActivityDto was null or undefined when calling saveNonProductiveActivity.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities`,\n nonProductiveActivityDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateNonProductiveActivity(requestParameters: UpdateNonProductiveActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateNonProductiveActivity(requestParameters: UpdateNonProductiveActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNonProductiveActivity(requestParameters: UpdateNonProductiveActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNonProductiveActivity(requestParameters: UpdateNonProductiveActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateNonProductiveActivity.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateNonProductiveActivity.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateNonProductiveActivity.');\n }\n const nonProductiveActivityDto = requestParameters.nonProductiveActivityDto;\n if (nonProductiveActivityDto === null || nonProductiveActivityDto === undefined) {\n throw new Error('Required parameter nonProductiveActivityDto was null or undefined when calling updateNonProductiveActivity.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/${encodeURIComponent(String(id))}`,\n nonProductiveActivityDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateNonProductiveActivityStatus(requestParameters: UpdateNonProductiveActivityStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateNonProductiveActivityStatus(requestParameters: UpdateNonProductiveActivityStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNonProductiveActivityStatus(requestParameters: UpdateNonProductiveActivityStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNonProductiveActivityStatus(requestParameters: UpdateNonProductiveActivityStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const nonProductiveActivityStatusDto = requestParameters.nonProductiveActivityStatusDto;\n if (nonProductiveActivityStatusDto === null || nonProductiveActivityStatusDto === undefined) {\n throw new Error('Required parameter nonProductiveActivityStatusDto was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/non-productive-status/${encodeURIComponent(String(id))}`,\n nonProductiveActivityStatusDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { NotificationCreationDto } from '../model/models';\nimport { NotificationDto } from '../model/models';\nimport { SentBackCreationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateNotificationRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n notificationDto: NotificationDto;\n profile?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface FlagNotificationAsViewedByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNotificationByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNotificationsRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSentBackNotificationsByAppointmentIdRequestParams {\n applicationToken: string;\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PostNotificationRequestParams {\n applicationToken: string;\n acceptLanguage: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n notificationCreationDto: NotificationCreationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveAllNotificationsByworkshopUserIdRequestParams {\n applicationToken: string;\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveNotificationByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveSentBackRequestRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n sentBackCreationDto: SentBackCreationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateNotificationByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n notificationDto: NotificationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createNotification(requestParameters: CreateNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createNotification(requestParameters: CreateNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createNotification(requestParameters: CreateNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createNotification(requestParameters: CreateNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createNotification.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createNotification.');\n }\n const notificationDto = requestParameters.notificationDto;\n if (notificationDto === null || notificationDto === undefined) {\n throw new Error('Required parameter notificationDto was null or undefined when calling createNotification.');\n }\n const profile = requestParameters.profile;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (profile !== undefined && profile !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n profile, 'profile');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications`,\n notificationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling flagNotificationAsViewedById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling flagNotificationAsViewedById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling flagNotificationAsViewedById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/viewed/${encodeURIComponent(String(id))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNotificationById(requestParameters: GetNotificationByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getNotificationById(requestParameters: GetNotificationByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotificationById(requestParameters: GetNotificationByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotificationById(requestParameters: GetNotificationByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNotificationById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getNotificationById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNotificationById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNotifications(requestParameters: GetNotificationsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotifications(requestParameters: GetNotificationsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotifications(requestParameters: GetNotificationsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotifications(requestParameters: GetNotificationsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getNotifications.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNotifications.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNotifications.');\n }\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSentBackNotificationsByAppointmentId(requestParameters: GetSentBackNotificationsByAppointmentIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSentBackNotificationsByAppointmentId(requestParameters: GetSentBackNotificationsByAppointmentIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSentBackNotificationsByAppointmentId(requestParameters: GetSentBackNotificationsByAppointmentIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSentBackNotificationsByAppointmentId(requestParameters: GetSentBackNotificationsByAppointmentIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getSentBackNotificationsByAppointmentId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getSentBackNotificationsByAppointmentId.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getSentBackNotificationsByAppointmentId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getSentBackNotificationsByAppointmentId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/${encodeURIComponent(String(id))}/sent-back`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public postNotification(requestParameters: PostNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public postNotification(requestParameters: PostNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public postNotification(requestParameters: PostNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public postNotification(requestParameters: PostNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling postNotification.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling postNotification.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling postNotification.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling postNotification.');\n }\n const notificationCreationDto = requestParameters.notificationCreationDto;\n if (notificationCreationDto === null || notificationCreationDto === undefined) {\n throw new Error('Required parameter notificationCreationDto was null or undefined when calling postNotification.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/create`,\n notificationCreationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeAllNotificationsByworkshopUserId(requestParameters: RemoveAllNotificationsByworkshopUserIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public removeAllNotificationsByworkshopUserId(requestParameters: RemoveAllNotificationsByworkshopUserIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public removeAllNotificationsByworkshopUserId(requestParameters: RemoveAllNotificationsByworkshopUserIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public removeAllNotificationsByworkshopUserId(requestParameters: RemoveAllNotificationsByworkshopUserIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling removeAllNotificationsByworkshopUserId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling removeAllNotificationsByworkshopUserId.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeAllNotificationsByworkshopUserId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling removeAllNotificationsByworkshopUserId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/workshopUser/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling removeNotificationById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeNotificationById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling removeNotificationById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling saveSentBackRequest.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling saveSentBackRequest.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveSentBackRequest.');\n }\n const sentBackCreationDto = requestParameters.sentBackCreationDto;\n if (sentBackCreationDto === null || sentBackCreationDto === undefined) {\n throw new Error('Required parameter sentBackCreationDto was null or undefined when calling saveSentBackRequest.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/sentBackToTechnicians`,\n sentBackCreationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateNotificationById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateNotificationById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateNotificationById.');\n }\n const notificationDto = requestParameters.notificationDto;\n if (notificationDto === null || notificationDto === undefined) {\n throw new Error('Required parameter notificationDto was null or undefined when calling updateNotificationById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/${encodeURIComponent(String(id))}`,\n notificationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { NotificationSubscriptionSetDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetNotificationSubscriptionByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateNotificationSubscriptionRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n notificationSubscriptionSetDto: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationSubscriptionService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNotificationSubscriptionByWorkshopId(requestParameters: GetNotificationSubscriptionByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotificationSubscriptionByWorkshopId(requestParameters: GetNotificationSubscriptionByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotificationSubscriptionByWorkshopId(requestParameters: GetNotificationSubscriptionByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotificationSubscriptionByWorkshopId(requestParameters: GetNotificationSubscriptionByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNotificationSubscriptionByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNotificationSubscriptionByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notificationSubscriptions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateNotificationSubscription(requestParameters: UpdateNotificationSubscriptionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNotificationSubscription(requestParameters: UpdateNotificationSubscriptionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateNotificationSubscription(requestParameters: UpdateNotificationSubscriptionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateNotificationSubscription(requestParameters: UpdateNotificationSubscriptionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateNotificationSubscription.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateNotificationSubscription.');\n }\n const notificationSubscriptionSetDto = requestParameters.notificationSubscriptionSetDto;\n if (notificationSubscriptionSetDto === null || notificationSubscriptionSetDto === undefined) {\n throw new Error('Required parameter notificationSubscriptionSetDto was null or undefined when calling updateNotificationSubscription.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notificationSubscriptions`,\n notificationSubscriptionSetDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { OnHoldReasonDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface EditOnHoldReasonsRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n onHoldReasonDto: OnHoldReasonDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOnHoldStatusByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateOnHoldReasonRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n onHoldReasonDto: OnHoldReasonDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveOnHoldReasonsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n onHoldReasonDto: OnHoldReasonDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnHoldReasonsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editOnHoldReasons(requestParameters: EditOnHoldReasonsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editOnHoldReasons(requestParameters: EditOnHoldReasonsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editOnHoldReasons(requestParameters: EditOnHoldReasonsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editOnHoldReasons(requestParameters: EditOnHoldReasonsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling editOnHoldReasons.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editOnHoldReasons.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling editOnHoldReasons.');\n }\n const onHoldReasonDto = requestParameters.onHoldReasonDto;\n if (onHoldReasonDto === null || onHoldReasonDto === undefined) {\n throw new Error('Required parameter onHoldReasonDto was null or undefined when calling editOnHoldReasons.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/onhold/${encodeURIComponent(String(id))}`,\n onHoldReasonDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOnHoldStatusByWorkshopId(requestParameters: GetOnHoldStatusByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOnHoldStatusByWorkshopId(requestParameters: GetOnHoldStatusByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOnHoldStatusByWorkshopId(requestParameters: GetOnHoldStatusByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOnHoldStatusByWorkshopId(requestParameters: GetOnHoldStatusByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getOnHoldStatusByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getOnHoldStatusByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/onholdreasons`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateOnHoldReason(requestParameters: PartialUpdateOnHoldReasonRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateOnHoldReason(requestParameters: PartialUpdateOnHoldReasonRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateOnHoldReason(requestParameters: PartialUpdateOnHoldReasonRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateOnHoldReason(requestParameters: PartialUpdateOnHoldReasonRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling partialUpdateOnHoldReason.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateOnHoldReason.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateOnHoldReason.');\n }\n const onHoldReasonDto = requestParameters.onHoldReasonDto;\n if (onHoldReasonDto === null || onHoldReasonDto === undefined) {\n throw new Error('Required parameter onHoldReasonDto was null or undefined when calling partialUpdateOnHoldReason.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/on-hold-reasons/${encodeURIComponent(String(id))}`,\n onHoldReasonDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveOnHoldReasons(requestParameters: SaveOnHoldReasonsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveOnHoldReasons(requestParameters: SaveOnHoldReasonsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveOnHoldReasons(requestParameters: SaveOnHoldReasonsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveOnHoldReasons(requestParameters: SaveOnHoldReasonsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling saveOnHoldReasons.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveOnHoldReasons.');\n }\n const onHoldReasonDto = requestParameters.onHoldReasonDto;\n if (onHoldReasonDto === null || onHoldReasonDto === undefined) {\n throw new Error('Required parameter onHoldReasonDto was null or undefined when calling saveOnHoldReasons.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/onhold-status`,\n onHoldReasonDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { OrderTypeHeaderDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateOrderTypeHeaderRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n orderTypeHeaderDto: OrderTypeHeaderDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOrderTypeHeadersByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateOrderTypeHeaderByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n orderTypeHeaderDto: OrderTypeHeaderDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrderTypeHeaderService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOrderTypeHeader(requestParameters: CreateOrderTypeHeaderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createOrderTypeHeader(requestParameters: CreateOrderTypeHeaderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOrderTypeHeader(requestParameters: CreateOrderTypeHeaderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOrderTypeHeader(requestParameters: CreateOrderTypeHeaderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createOrderTypeHeader.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createOrderTypeHeader.');\n }\n const orderTypeHeaderDto = requestParameters.orderTypeHeaderDto;\n if (orderTypeHeaderDto === null || orderTypeHeaderDto === undefined) {\n throw new Error('Required parameter orderTypeHeaderDto was null or undefined when calling createOrderTypeHeader.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/order-type-headers`,\n orderTypeHeaderDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderTypeHeadersByWorkshopId(requestParameters: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderTypeHeadersByWorkshopId(requestParameters: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderTypeHeadersByWorkshopId(requestParameters: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderTypeHeadersByWorkshopId(requestParameters: GetOrderTypeHeadersByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getOrderTypeHeadersByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getOrderTypeHeadersByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/order-type-headers`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateOrderTypeHeaderById(requestParameters: UpdateOrderTypeHeaderByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateOrderTypeHeaderById(requestParameters: UpdateOrderTypeHeaderByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateOrderTypeHeaderById(requestParameters: UpdateOrderTypeHeaderByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateOrderTypeHeaderById(requestParameters: UpdateOrderTypeHeaderByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateOrderTypeHeaderById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateOrderTypeHeaderById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateOrderTypeHeaderById.');\n }\n const orderTypeHeaderDto = requestParameters.orderTypeHeaderDto;\n if (orderTypeHeaderDto === null || orderTypeHeaderDto === undefined) {\n throw new Error('Required parameter orderTypeHeaderDto was null or undefined when calling updateOrderTypeHeaderById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/order-type-headers/${encodeURIComponent(String(id))}`,\n orderTypeHeaderDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemExtraOperationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateOtherItemRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemExtraOperationDto: JobcardItemExtraOperationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditOtherItemRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemExtraOperationDto: JobcardItemExtraOperationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOtherItemByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n sortOrder?: string;\n page?: number;\n size?: number;\n sortBy?: 'CODE' | 'LABEL' | 'TYPE';\n filterBy?: string;\n filterValue?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveOtherItemsCountBycodeRequestParams {\n workshopId: number;\n id: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OtherItemService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOtherItem(requestParameters: CreateOtherItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createOtherItem(requestParameters: CreateOtherItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOtherItem(requestParameters: CreateOtherItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOtherItem(requestParameters: CreateOtherItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createOtherItem.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createOtherItem.');\n }\n const jobcardItemExtraOperationDto = requestParameters.jobcardItemExtraOperationDto;\n if (jobcardItemExtraOperationDto === null || jobcardItemExtraOperationDto === undefined) {\n throw new Error('Required parameter jobcardItemExtraOperationDto was null or undefined when calling createOtherItem.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/other-item`,\n jobcardItemExtraOperationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editOtherItem(requestParameters: EditOtherItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editOtherItem(requestParameters: EditOtherItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editOtherItem(requestParameters: EditOtherItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editOtherItem(requestParameters: EditOtherItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling editOtherItem.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editOtherItem.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling editOtherItem.');\n }\n const jobcardItemExtraOperationDto = requestParameters.jobcardItemExtraOperationDto;\n if (jobcardItemExtraOperationDto === null || jobcardItemExtraOperationDto === undefined) {\n throw new Error('Required parameter jobcardItemExtraOperationDto was null or undefined when calling editOtherItem.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/other-item/${encodeURIComponent(String(id))}`,\n jobcardItemExtraOperationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOtherItemByWorkshopId(requestParameters: GetOtherItemByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOtherItemByWorkshopId(requestParameters: GetOtherItemByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOtherItemByWorkshopId(requestParameters: GetOtherItemByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOtherItemByWorkshopId(requestParameters: GetOtherItemByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getOtherItemByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getOtherItemByWorkshopId.');\n }\n const sortOrder = requestParameters.sortOrder;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortBy = requestParameters.sortBy;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/other-item`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveOtherItemsCountBycode(requestParameters: RetriveOtherItemsCountBycodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retriveOtherItemsCountBycode(requestParameters: RetriveOtherItemsCountBycodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveOtherItemsCountBycode(requestParameters: RetriveOtherItemsCountBycodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveOtherItemsCountBycode(requestParameters: RetriveOtherItemsCountBycodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveOtherItemsCountBycode.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling retriveOtherItemsCountBycode.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveOtherItemsCountBycode.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/other-item/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { PaymentSubSubTypeDto } from '../model/models';\nimport { PaymentTypeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPaymentTypeByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveAllPaymentTypesRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n paymentTypeDto: PaymentTypeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SavePaymentSubSubTypesRequestParams {\n workshopId: number;\n id: number;\n subId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n paymentSubSubTypeDto: PaymentSubSubTypeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdatePaymentTypesRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n paymentTypeDto: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdatePaymentTypes1RequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n paymentTypeDto: PaymentTypeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentTypeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPaymentTypeByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPaymentTypeByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/payment-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveAllPaymentTypes(requestParameters: SaveAllPaymentTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveAllPaymentTypes(requestParameters: SaveAllPaymentTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveAllPaymentTypes(requestParameters: SaveAllPaymentTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveAllPaymentTypes(requestParameters: SaveAllPaymentTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling saveAllPaymentTypes.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveAllPaymentTypes.');\n }\n const paymentTypeDto = requestParameters.paymentTypeDto;\n if (paymentTypeDto === null || paymentTypeDto === undefined) {\n throw new Error('Required parameter paymentTypeDto was null or undefined when calling saveAllPaymentTypes.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/payment-types`,\n paymentTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public savePaymentSubSubTypes(requestParameters: SavePaymentSubSubTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public savePaymentSubSubTypes(requestParameters: SavePaymentSubSubTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savePaymentSubSubTypes(requestParameters: SavePaymentSubSubTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savePaymentSubSubTypes(requestParameters: SavePaymentSubSubTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling savePaymentSubSubTypes.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling savePaymentSubSubTypes.');\n }\n const subId = requestParameters.subId;\n if (subId === null || subId === undefined) {\n throw new Error('Required parameter subId was null or undefined when calling savePaymentSubSubTypes.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling savePaymentSubSubTypes.');\n }\n const paymentSubSubTypeDto = requestParameters.paymentSubSubTypeDto;\n if (paymentSubSubTypeDto === null || paymentSubSubTypeDto === undefined) {\n throw new Error('Required parameter paymentSubSubTypeDto was null or undefined when calling savePaymentSubSubTypes.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/payment-types/${encodeURIComponent(String(id))}/sub-types/${encodeURIComponent(String(subId))}`,\n paymentSubSubTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatePaymentTypes(requestParameters: UpdatePaymentTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePaymentTypes(requestParameters: UpdatePaymentTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updatePaymentTypes(requestParameters: UpdatePaymentTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updatePaymentTypes(requestParameters: UpdatePaymentTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updatePaymentTypes.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updatePaymentTypes.');\n }\n const paymentTypeDto = requestParameters.paymentTypeDto;\n if (paymentTypeDto === null || paymentTypeDto === undefined) {\n throw new Error('Required parameter paymentTypeDto was null or undefined when calling updatePaymentTypes.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/payment-types`,\n paymentTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatePaymentTypes1(requestParameters: UpdatePaymentTypes1RequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updatePaymentTypes1(requestParameters: UpdatePaymentTypes1RequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePaymentTypes1(requestParameters: UpdatePaymentTypes1RequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePaymentTypes1(requestParameters: UpdatePaymentTypes1RequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updatePaymentTypes1.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updatePaymentTypes1.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updatePaymentTypes1.');\n }\n const paymentTypeDto = requestParameters.paymentTypeDto;\n if (paymentTypeDto === null || paymentTypeDto === undefined) {\n throw new Error('Required parameter paymentTypeDto was null or undefined when calling updatePaymentTypes1.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/payment-types/${encodeURIComponent(String(id))}`,\n paymentTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPermissionByWorkshopIdRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getPermissionByWorkshopId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPermissionByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPermissionByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/permissions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { DefaultPriorityTypeDto } from '../model/models';\nimport { PriorityTypeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddPriorityTypeForWorkshopRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n priorityTypeDto: PriorityTypeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeletePriorityRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPriorityTypeByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n sortBy?: 'DESCRIPTION' | 'STATUS' | 'TYPE' | 'ID';\n sortOrder?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateDefaultPriorityTypeRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n defaultPriorityTypeDto: DefaultPriorityTypeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdatePriorityTypeByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n priorityTypeDto: PriorityTypeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PriorityTypeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addPriorityTypeForWorkshop(requestParameters: AddPriorityTypeForWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addPriorityTypeForWorkshop(requestParameters: AddPriorityTypeForWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addPriorityTypeForWorkshop(requestParameters: AddPriorityTypeForWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addPriorityTypeForWorkshop(requestParameters: AddPriorityTypeForWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling addPriorityTypeForWorkshop.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling addPriorityTypeForWorkshop.');\n }\n const priorityTypeDto = requestParameters.priorityTypeDto;\n if (priorityTypeDto === null || priorityTypeDto === undefined) {\n throw new Error('Required parameter priorityTypeDto was null or undefined when calling addPriorityTypeForWorkshop.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/priority-types`,\n priorityTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deletePriority(requestParameters: DeletePriorityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deletePriority(requestParameters: DeletePriorityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deletePriority(requestParameters: DeletePriorityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deletePriority(requestParameters: DeletePriorityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deletePriority.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deletePriority.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deletePriority.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/priority-types/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPriorityTypeByWorkshopId(requestParameters: GetPriorityTypeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPriorityTypeByWorkshopId(requestParameters: GetPriorityTypeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPriorityTypeByWorkshopId(requestParameters: GetPriorityTypeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPriorityTypeByWorkshopId(requestParameters: GetPriorityTypeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPriorityTypeByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPriorityTypeByWorkshopId.');\n }\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/priority-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateDefaultPriorityType(requestParameters: UpdateDefaultPriorityTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateDefaultPriorityType(requestParameters: UpdateDefaultPriorityTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateDefaultPriorityType(requestParameters: UpdateDefaultPriorityTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateDefaultPriorityType(requestParameters: UpdateDefaultPriorityTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateDefaultPriorityType.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateDefaultPriorityType.');\n }\n const defaultPriorityTypeDto = requestParameters.defaultPriorityTypeDto;\n if (defaultPriorityTypeDto === null || defaultPriorityTypeDto === undefined) {\n throw new Error('Required parameter defaultPriorityTypeDto was null or undefined when calling updateDefaultPriorityType.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/priority-types`,\n defaultPriorityTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatePriorityTypeById(requestParameters: UpdatePriorityTypeByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updatePriorityTypeById(requestParameters: UpdatePriorityTypeByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updatePriorityTypeById(requestParameters: UpdatePriorityTypeByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updatePriorityTypeById(requestParameters: UpdatePriorityTypeByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updatePriorityTypeById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updatePriorityTypeById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updatePriorityTypeById.');\n }\n const priorityTypeDto = requestParameters.priorityTypeDto;\n if (priorityTypeDto === null || priorityTypeDto === undefined) {\n throw new Error('Required parameter priorityTypeDto was null or undefined when calling updatePriorityTypeById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/priority-types/${encodeURIComponent(String(id))}`,\n priorityTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ReleaseDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetReleaseDetailsRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetReleaseDetailsAllRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReleaseService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReleaseDetails(requestParameters: GetReleaseDetailsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getReleaseDetails(requestParameters: GetReleaseDetailsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getReleaseDetails(requestParameters: GetReleaseDetailsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getReleaseDetails(requestParameters: GetReleaseDetailsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getReleaseDetails.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/release-details`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReleaseDetailsAll(requestParameters: GetReleaseDetailsAllRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getReleaseDetailsAll(requestParameters: GetReleaseDetailsAllRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getReleaseDetailsAll(requestParameters: GetReleaseDetailsAllRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getReleaseDetailsAll(requestParameters: GetReleaseDetailsAllRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getReleaseDetailsAll.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/release-details/all`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { RoleDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateRoleRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n roleDto: RoleDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetRoleByIdRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetRolesRequestParams {\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RoleService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createRole(requestParameters: CreateRoleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createRole(requestParameters: CreateRoleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createRole(requestParameters: CreateRoleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createRole(requestParameters: CreateRoleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createRole.');\n }\n const roleDto = requestParameters.roleDto;\n if (roleDto === null || roleDto === undefined) {\n throw new Error('Required parameter roleDto was null or undefined when calling createRole.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/roles`,\n roleDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRoleById(requestParameters: GetRoleByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getRoleById(requestParameters: GetRoleByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRoleById(requestParameters: GetRoleByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRoleById(requestParameters: GetRoleByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getRoleById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getRoleById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/roles/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRoles(requestParameters: GetRolesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRoles(requestParameters: GetRolesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRoles(requestParameters: GetRolesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRoles(requestParameters: GetRolesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling getRoles.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getRoles.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/roles`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { UserNotificationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SendUserNotificationRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n userNotificationDto: UserNotificationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SendNotificationControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendUserNotification(requestParameters: SendUserNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public sendUserNotification(requestParameters: SendUserNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public sendUserNotification(requestParameters: SendUserNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public sendUserNotification(requestParameters: SendUserNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling sendUserNotification.');\n }\n const userNotificationDto = requestParameters.userNotificationDto;\n if (userNotificationDto === null || userNotificationDto === undefined) {\n throw new Error('Required parameter userNotificationDto was null or undefined when calling sendUserNotification.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/notification/user`,\n userNotificationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ShiftDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateShiftRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n shiftDto: ShiftDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteShiftRequestParams {\n workshopId: number;\n shiftId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetShiftByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetShiftsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateShiftRequestParams {\n workshopId: number;\n shiftId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n shiftDto: ShiftDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ShiftService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createShift(requestParameters: CreateShiftRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createShift(requestParameters: CreateShiftRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createShift(requestParameters: CreateShiftRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createShift(requestParameters: CreateShiftRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createShift.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createShift.');\n }\n const shiftDto = requestParameters.shiftDto;\n if (shiftDto === null || shiftDto === undefined) {\n throw new Error('Required parameter shiftDto was null or undefined when calling createShift.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/shifts`,\n shiftDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteShift(requestParameters: DeleteShiftRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteShift(requestParameters: DeleteShiftRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteShift(requestParameters: DeleteShiftRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteShift(requestParameters: DeleteShiftRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteShift.');\n }\n const shiftId = requestParameters.shiftId;\n if (shiftId === null || shiftId === undefined) {\n throw new Error('Required parameter shiftId was null or undefined when calling deleteShift.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteShift.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/shifts/${encodeURIComponent(String(shiftId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getShiftById(requestParameters: GetShiftByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getShiftById(requestParameters: GetShiftByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getShiftById(requestParameters: GetShiftByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getShiftById(requestParameters: GetShiftByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getShiftById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getShiftById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getShiftById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/shifts/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getShifts(requestParameters: GetShiftsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getShifts(requestParameters: GetShiftsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getShifts(requestParameters: GetShiftsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getShifts(requestParameters: GetShiftsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getShifts.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getShifts.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/shifts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateShift(requestParameters: UpdateShiftRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateShift(requestParameters: UpdateShiftRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateShift(requestParameters: UpdateShiftRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateShift(requestParameters: UpdateShiftRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateShift.');\n }\n const shiftId = requestParameters.shiftId;\n if (shiftId === null || shiftId === undefined) {\n throw new Error('Required parameter shiftId was null or undefined when calling updateShift.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateShift.');\n }\n const shiftDto = requestParameters.shiftDto;\n if (shiftDto === null || shiftDto === undefined) {\n throw new Error('Required parameter shiftDto was null or undefined when calling updateShift.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/shifts/${encodeURIComponent(String(shiftId))}`,\n shiftDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { SkillDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetSkillByIdRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSkillsRequestParams {\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SkillService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSkillById(requestParameters: GetSkillByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSkillById(requestParameters: GetSkillByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSkillById(requestParameters: GetSkillByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSkillById(requestParameters: GetSkillByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getSkillById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getSkillById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/skills/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSkills(requestParameters: GetSkillsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSkills(requestParameters: GetSkillsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSkills(requestParameters: GetSkillsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSkills(requestParameters: GetSkillsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling getSkills.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getSkills.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/skills`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { UserGuideDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetUserGuideByLanguageRequestParams {\n language: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserGuideService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const language = requestParameters.language;\n if (language === null || language === undefined) {\n throw new Error('Required parameter language was null or undefined when calling getUserGuideByLanguage.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getUserGuideByLanguage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (language !== undefined && language !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n language, 'language');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/user-guide`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardVehicleDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateVehicleRequestParams {\n workshopId: number;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardVehicleDto: JobcardVehicleDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteVehicleByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehiclesRequestParams {\n workshopId: number;\n isAdmin: boolean;\n /** Authorization header in the format `access_token` */\n authorization: string;\n customerId?: number;\n brandId?: number;\n modelId?: number;\n stockNumber?: string;\n plate?: string;\n vin?: string;\n filterBy?: string;\n filterValue?: string;\n view?: string;\n sortBy?: 'CUSTOMER_COMPANY_DISPLAYED_NAME' | 'PLATE' | 'VIN' | 'BRAND_NAME' | 'MODEL_NAME';\n sortOrder?: string;\n page?: number;\n size?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateVehicleByIdRequestParams {\n id: number;\n acceptLanguage: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardVehicleDto: JobcardVehicleDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createVehicle(requestParameters: CreateVehicleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createVehicle(requestParameters: CreateVehicleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createVehicle(requestParameters: CreateVehicleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createVehicle(requestParameters: CreateVehicleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createVehicle.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling createVehicle.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createVehicle.');\n }\n const jobcardVehicleDto = requestParameters.jobcardVehicleDto;\n if (jobcardVehicleDto === null || jobcardVehicleDto === undefined) {\n throw new Error('Required parameter jobcardVehicleDto was null or undefined when calling createVehicle.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles`,\n jobcardVehicleDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteVehicleById(requestParameters: DeleteVehicleByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteVehicleById(requestParameters: DeleteVehicleByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteVehicleById(requestParameters: DeleteVehicleByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteVehicleById(requestParameters: DeleteVehicleByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteVehicleById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteVehicleById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteVehicleById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getVehicles.');\n }\n const isAdmin = requestParameters.isAdmin;\n if (isAdmin === null || isAdmin === undefined) {\n throw new Error('Required parameter isAdmin was null or undefined when calling getVehicles.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehicles.');\n }\n const customerId = requestParameters.customerId;\n const brandId = requestParameters.brandId;\n const modelId = requestParameters.modelId;\n const stockNumber = requestParameters.stockNumber;\n const plate = requestParameters.plate;\n const vin = requestParameters.vin;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const view = requestParameters.view;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (isAdmin !== undefined && isAdmin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isAdmin, 'isAdmin');\n }\n if (brandId !== undefined && brandId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandId, 'brandId');\n }\n if (modelId !== undefined && modelId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n modelId, 'modelId');\n }\n if (stockNumber !== undefined && stockNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n stockNumber, 'stockNumber');\n }\n if (plate !== undefined && plate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n plate, 'plate');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateVehicleById(requestParameters: UpdateVehicleByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateVehicleById(requestParameters: UpdateVehicleByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateVehicleById(requestParameters: UpdateVehicleByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateVehicleById(requestParameters: UpdateVehicleByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateVehicleById.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling updateVehicleById.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateVehicleById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateVehicleById.');\n }\n const jobcardVehicleDto = requestParameters.jobcardVehicleDto;\n if (jobcardVehicleDto === null || jobcardVehicleDto === undefined) {\n throw new Error('Required parameter jobcardVehicleDto was null or undefined when calling updateVehicleById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles/${encodeURIComponent(String(id))}`,\n jobcardVehicleDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { VehicleCourtesyDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateVehicleCourtesyRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n vehicleCourtesyDto: VehicleCourtesyDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteVehicleCourtesyByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehiclesCourtesyRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n view?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateVehicleCourtesyByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n vehicleCourtesyDto: VehicleCourtesyDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleCourtesyService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createVehicleCourtesy(requestParameters: CreateVehicleCourtesyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createVehicleCourtesy(requestParameters: CreateVehicleCourtesyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createVehicleCourtesy(requestParameters: CreateVehicleCourtesyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createVehicleCourtesy(requestParameters: CreateVehicleCourtesyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createVehicleCourtesy.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createVehicleCourtesy.');\n }\n const vehicleCourtesyDto = requestParameters.vehicleCourtesyDto;\n if (vehicleCourtesyDto === null || vehicleCourtesyDto === undefined) {\n throw new Error('Required parameter vehicleCourtesyDto was null or undefined when calling createVehicleCourtesy.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles-courtesy`,\n vehicleCourtesyDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteVehicleCourtesyById(requestParameters: DeleteVehicleCourtesyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteVehicleCourtesyById(requestParameters: DeleteVehicleCourtesyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteVehicleCourtesyById(requestParameters: DeleteVehicleCourtesyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteVehicleCourtesyById(requestParameters: DeleteVehicleCourtesyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteVehicleCourtesyById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteVehicleCourtesyById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteVehicleCourtesyById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles-courtesy/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getVehiclesCourtesy.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehiclesCourtesy.');\n }\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles-courtesy`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateVehicleCourtesyById(requestParameters: UpdateVehicleCourtesyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateVehicleCourtesyById(requestParameters: UpdateVehicleCourtesyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateVehicleCourtesyById(requestParameters: UpdateVehicleCourtesyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateVehicleCourtesyById(requestParameters: UpdateVehicleCourtesyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateVehicleCourtesyById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateVehicleCourtesyById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateVehicleCourtesyById.');\n }\n const vehicleCourtesyDto = requestParameters.vehicleCourtesyDto;\n if (vehicleCourtesyDto === null || vehicleCourtesyDto === undefined) {\n throw new Error('Required parameter vehicleCourtesyDto was null or undefined when calling updateVehicleCourtesyById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles-courtesy/${encodeURIComponent(String(id))}`,\n vehicleCourtesyDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDmsErrorCountRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopByIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopsLoggedRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopDto: WorkshopDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsErrorCount(requestParameters: GetDmsErrorCountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getDmsErrorCount(requestParameters: GetDmsErrorCountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getDmsErrorCount(requestParameters: GetDmsErrorCountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getDmsErrorCount(requestParameters: GetDmsErrorCountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsErrorCount.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDmsErrorCount.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/dms-error-count`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopsLogged(requestParameters: GetWorkshopsLoggedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopsLogged(requestParameters: GetWorkshopsLoggedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopsLogged(requestParameters: GetWorkshopsLoggedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopsLogged(requestParameters: GetWorkshopsLoggedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getWorkshopsLogged.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopsLogged.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopsLogged.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/logged`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshop(requestParameters: UpdateWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshop(requestParameters: UpdateWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshop(requestParameters: UpdateWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshop(requestParameters: UpdateWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateWorkshop.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshop.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshop.');\n }\n const workshopDto = requestParameters.workshopDto;\n if (workshopDto === null || workshopDto === undefined) {\n throw new Error('Required parameter workshopDto was null or undefined when calling updateWorkshop.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}`,\n workshopDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopBayDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddWorkshopBayByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopBayDto: WorkshopBayDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CheckWorkshopBayAppointmentsRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteWorkshopBayRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopBaysByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n isActive?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopBayRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopBayDto: WorkshopBayDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopBaysRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopBayDto: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopBayService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addWorkshopBayByWorkshopId(requestParameters: AddWorkshopBayByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addWorkshopBayByWorkshopId(requestParameters: AddWorkshopBayByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addWorkshopBayByWorkshopId(requestParameters: AddWorkshopBayByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addWorkshopBayByWorkshopId(requestParameters: AddWorkshopBayByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling addWorkshopBayByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling addWorkshopBayByWorkshopId.');\n }\n const workshopBayDto = requestParameters.workshopBayDto;\n if (workshopBayDto === null || workshopBayDto === undefined) {\n throw new Error('Required parameter workshopBayDto was null or undefined when calling addWorkshopBayByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-bays`,\n workshopBayDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkWorkshopBayAppointments(requestParameters: CheckWorkshopBayAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public checkWorkshopBayAppointments(requestParameters: CheckWorkshopBayAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public checkWorkshopBayAppointments(requestParameters: CheckWorkshopBayAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public checkWorkshopBayAppointments(requestParameters: CheckWorkshopBayAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling checkWorkshopBayAppointments.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling checkWorkshopBayAppointments.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling checkWorkshopBayAppointments.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-bays/${encodeURIComponent(String(id))}/workshop-bay-appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteWorkshopBay(requestParameters: DeleteWorkshopBayRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteWorkshopBay(requestParameters: DeleteWorkshopBayRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteWorkshopBay(requestParameters: DeleteWorkshopBayRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteWorkshopBay(requestParameters: DeleteWorkshopBayRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteWorkshopBay.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteWorkshopBay.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteWorkshopBay.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-bays/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopBaysByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopBaysByWorkshopId.');\n }\n const isActive = requestParameters.isActive;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isActive !== undefined && isActive !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isActive, 'isActive');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-bays`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopBay(requestParameters: UpdateWorkshopBayRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopBay(requestParameters: UpdateWorkshopBayRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopBay(requestParameters: UpdateWorkshopBayRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopBay(requestParameters: UpdateWorkshopBayRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshopBay.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateWorkshopBay.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopBay.');\n }\n const workshopBayDto = requestParameters.workshopBayDto;\n if (workshopBayDto === null || workshopBayDto === undefined) {\n throw new Error('Required parameter workshopBayDto was null or undefined when calling updateWorkshopBay.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-bays/${encodeURIComponent(String(id))}`,\n workshopBayDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopBays(requestParameters: UpdateWorkshopBaysRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopBays(requestParameters: UpdateWorkshopBaysRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateWorkshopBays(requestParameters: UpdateWorkshopBaysRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateWorkshopBays(requestParameters: UpdateWorkshopBaysRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshopBays.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopBays.');\n }\n const workshopBayDto = requestParameters.workshopBayDto;\n if (workshopBayDto === null || workshopBayDto === undefined) {\n throw new Error('Required parameter workshopBayDto was null or undefined when calling updateWorkshopBays.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-bays`,\n workshopBayDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopChecklistTypeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateWorkshopChecklistTypeRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopChecklistTypeDto: WorkshopChecklistTypeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteWorkshopChecklistTypeRequestParams {\n checkListTypeId: number;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetChecklistTypesByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopChecklistTypeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createWorkshopChecklistType(requestParameters: CreateWorkshopChecklistTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createWorkshopChecklistType(requestParameters: CreateWorkshopChecklistTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWorkshopChecklistType(requestParameters: CreateWorkshopChecklistTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWorkshopChecklistType(requestParameters: CreateWorkshopChecklistTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createWorkshopChecklistType.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createWorkshopChecklistType.');\n }\n const workshopChecklistTypeDto = requestParameters.workshopChecklistTypeDto;\n if (workshopChecklistTypeDto === null || workshopChecklistTypeDto === undefined) {\n throw new Error('Required parameter workshopChecklistTypeDto was null or undefined when calling createWorkshopChecklistType.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-types`,\n workshopChecklistTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteWorkshopChecklistType(requestParameters: DeleteWorkshopChecklistTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deleteWorkshopChecklistType(requestParameters: DeleteWorkshopChecklistTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteWorkshopChecklistType(requestParameters: DeleteWorkshopChecklistTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteWorkshopChecklistType(requestParameters: DeleteWorkshopChecklistTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const checkListTypeId = requestParameters.checkListTypeId;\n if (checkListTypeId === null || checkListTypeId === undefined) {\n throw new Error('Required parameter checkListTypeId was null or undefined when calling deleteWorkshopChecklistType.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteWorkshopChecklistType.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteWorkshopChecklistType.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-types/${encodeURIComponent(String(checkListTypeId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistTypesByWorkshopId(requestParameters: GetChecklistTypesByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTypesByWorkshopId(requestParameters: GetChecklistTypesByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTypesByWorkshopId(requestParameters: GetChecklistTypesByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTypesByWorkshopId(requestParameters: GetChecklistTypesByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getChecklistTypesByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getChecklistTypesByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopDiscountDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateWorkshopDiscountRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopDiscountDto: WorkshopDiscountDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteWorkshopDiscountRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDiscountByIdRequestParams {\n id: number;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDiscountByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopDiscountRequestParams {\n workshopId: number;\n id: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopDiscountDto: WorkshopDiscountDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopDiscountService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createWorkshopDiscount(requestParameters: CreateWorkshopDiscountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createWorkshopDiscount(requestParameters: CreateWorkshopDiscountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWorkshopDiscount(requestParameters: CreateWorkshopDiscountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWorkshopDiscount(requestParameters: CreateWorkshopDiscountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createWorkshopDiscount.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createWorkshopDiscount.');\n }\n const workshopDiscountDto = requestParameters.workshopDiscountDto;\n if (workshopDiscountDto === null || workshopDiscountDto === undefined) {\n throw new Error('Required parameter workshopDiscountDto was null or undefined when calling createWorkshopDiscount.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/discount`,\n workshopDiscountDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteWorkshopDiscount(requestParameters: DeleteWorkshopDiscountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteWorkshopDiscount(requestParameters: DeleteWorkshopDiscountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteWorkshopDiscount(requestParameters: DeleteWorkshopDiscountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteWorkshopDiscount(requestParameters: DeleteWorkshopDiscountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteWorkshopDiscount.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteWorkshopDiscount.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteWorkshopDiscount.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/discount/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDiscountById(requestParameters: GetDiscountByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDiscountById(requestParameters: GetDiscountByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDiscountById(requestParameters: GetDiscountByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDiscountById(requestParameters: GetDiscountByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getDiscountById.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDiscountById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDiscountById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/discount/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDiscountByWorkshopId(requestParameters: GetDiscountByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDiscountByWorkshopId(requestParameters: GetDiscountByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDiscountByWorkshopId(requestParameters: GetDiscountByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDiscountByWorkshopId(requestParameters: GetDiscountByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDiscountByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDiscountByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/discount`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopDiscount(requestParameters: UpdateWorkshopDiscountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateWorkshopDiscount(requestParameters: UpdateWorkshopDiscountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkshopDiscount(requestParameters: UpdateWorkshopDiscountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkshopDiscount(requestParameters: UpdateWorkshopDiscountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshopDiscount.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateWorkshopDiscount.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopDiscount.');\n }\n const workshopDiscountDto = requestParameters.workshopDiscountDto;\n if (workshopDiscountDto === null || workshopDiscountDto === undefined) {\n throw new Error('Required parameter workshopDiscountDto was null or undefined when calling updateWorkshopDiscount.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/discount/${encodeURIComponent(String(id))}`,\n workshopDiscountDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopUserAvailabilityDto } from '../model/models';\nimport { WorkshopUserDto } from '../model/models';\nimport { WorkshopUserPreferenceDto } from '../model/models';\nimport { WorkshopUserUnavailabilityDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateUnavailabilityRequestParams {\n workshopId: number;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopUserUnavailabilityDto: WorkshopUserUnavailabilityDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteUnavailabilityRequestParams {\n workshopId: number;\n userId: string;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUnavailabilitiesByIdRequestParams {\n userId: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUserRequestParams {\n workshopId: number;\n id: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUsersRequestParams {\n workshopId: number;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n workshopBayId?: number;\n role?: string;\n roleAbbrev?: string;\n view?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUsersAvailabilitiesRequestParams {\n workshopId: number;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateUnavailabilityRequestParams {\n workshopId: number;\n userId: string;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopUserUnavailabilityDto: WorkshopUserUnavailabilityDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUserRequestParams {\n id: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopUserDto: WorkshopUserDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUserPrefLanguageRequestParams {\n workshopId: number;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopUserPreferenceDto: WorkshopUserPreferenceDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUsersRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopUserDto: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopUserService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcadmin';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createUnavailability(requestParameters: CreateUnavailabilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createUnavailability(requestParameters: CreateUnavailabilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createUnavailability(requestParameters: CreateUnavailabilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createUnavailability(requestParameters: CreateUnavailabilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createUnavailability.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling createUnavailability.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createUnavailability.');\n }\n const workshopUserUnavailabilityDto = requestParameters.workshopUserUnavailabilityDto;\n if (workshopUserUnavailabilityDto === null || workshopUserUnavailabilityDto === undefined) {\n throw new Error('Required parameter workshopUserUnavailabilityDto was null or undefined when calling createUnavailability.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(userId))}/unavailabilities`,\n workshopUserUnavailabilityDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteUnavailability(requestParameters: DeleteUnavailabilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteUnavailability(requestParameters: DeleteUnavailabilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteUnavailability(requestParameters: DeleteUnavailabilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteUnavailability(requestParameters: DeleteUnavailabilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteUnavailability.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling deleteUnavailability.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteUnavailability.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteUnavailability.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(userId))}/unavailabilities/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUnavailabilitiesById(requestParameters: GetUnavailabilitiesByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUnavailabilitiesById(requestParameters: GetUnavailabilitiesByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUnavailabilitiesById(requestParameters: GetUnavailabilitiesByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUnavailabilitiesById(requestParameters: GetUnavailabilitiesByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getUnavailabilitiesById.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getUnavailabilitiesById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getUnavailabilitiesById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(userId))}/unavailabilities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopUser.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getWorkshopUser.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopUsers.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling getWorkshopUsers.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopUsers.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopBayId = requestParameters.workshopBayId;\n const role = requestParameters.role;\n const roleAbbrev = requestParameters.roleAbbrev;\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (role !== undefined && role !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n role, 'role');\n }\n if (roleAbbrev !== undefined && roleAbbrev !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n roleAbbrev, 'roleAbbrev');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopUsersAvailabilities.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling getWorkshopUsersAvailabilities.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopUsersAvailabilities.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/availabilities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateUnavailability(requestParameters: UpdateUnavailabilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateUnavailability(requestParameters: UpdateUnavailabilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateUnavailability(requestParameters: UpdateUnavailabilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateUnavailability(requestParameters: UpdateUnavailabilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateUnavailability.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateUnavailability.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateUnavailability.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateUnavailability.');\n }\n const workshopUserUnavailabilityDto = requestParameters.workshopUserUnavailabilityDto;\n if (workshopUserUnavailabilityDto === null || workshopUserUnavailabilityDto === undefined) {\n throw new Error('Required parameter workshopUserUnavailabilityDto was null or undefined when calling updateUnavailability.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(userId))}/unavailabilities/${encodeURIComponent(String(id))}`,\n workshopUserUnavailabilityDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateWorkshopUser.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshopUser.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopUser.');\n }\n const workshopUserDto = requestParameters.workshopUserDto;\n if (workshopUserDto === null || workshopUserDto === undefined) {\n throw new Error('Required parameter workshopUserDto was null or undefined when calling updateWorkshopUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(id))}`,\n workshopUserDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUserPrefLanguage(requestParameters: UpdateWorkshopUserPrefLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateWorkshopUserPrefLanguage(requestParameters: UpdateWorkshopUserPrefLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkshopUserPrefLanguage(requestParameters: UpdateWorkshopUserPrefLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkshopUserPrefLanguage(requestParameters: UpdateWorkshopUserPrefLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshopUserPrefLanguage.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateWorkshopUserPrefLanguage.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopUserPrefLanguage.');\n }\n const workshopUserPreferenceDto = requestParameters.workshopUserPreferenceDto;\n if (workshopUserPreferenceDto === null || workshopUserPreferenceDto === undefined) {\n throw new Error('Required parameter workshopUserPreferenceDto was null or undefined when calling updateWorkshopUserPrefLanguage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(userId))}/language`,\n workshopUserPreferenceDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUsers(requestParameters: UpdateWorkshopUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUsers(requestParameters: UpdateWorkshopUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateWorkshopUsers(requestParameters: UpdateWorkshopUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateWorkshopUsers(requestParameters: UpdateWorkshopUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshopUsers.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopUsers.');\n }\n const workshopUserDto = requestParameters.workshopUserDto;\n if (workshopUserDto === null || workshopUserDto === undefined) {\n throw new Error('Required parameter workshopUserDto was null or undefined when calling updateWorkshopUsers.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users`,\n workshopUserDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardDto } from './jobcardDto';\nimport { CustomerCompanyDto } from './customerCompanyDto';\nimport { ChecklistDamageDto } from './checklistDamageDto';\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusDto } from './appointmentStatusDto';\nimport { PriorityTypeDto } from './priorityTypeDto';\nimport { UnitStatusDto } from './unitStatusDto';\nimport { VehicleCourtesyBookingDto } from './vehicleCourtesyBookingDto';\n\n\nexport interface AppointmentDto { \n id?: number;\n mileage?: number;\n engineHours?: number;\n workshopBayId?: number;\n workshopId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n currentStatus?: string;\n repairAddress?: string;\n receptionDate?: string;\n deliveryDate?: string;\n dmsCreationDate?: string;\n types?: Array;\n checklistInstances?: Array;\n checkListDamages?: Array;\n customerCompany?: CustomerCompanyDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n vehicle?: JobcardVehicleDto;\n vehicleCourtesy?: VehicleCourtesyDto;\n jobcard?: JobcardDto;\n status?: AppointmentStatusDto;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUserDto;\n unitStatus?: UnitStatusDto;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReasonDto;\n plannedDeliveryDate?: string;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n openedBy?: string;\n orderTypeHeaderCode?: number;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingDto;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n isInUseDms?: boolean;\n failureEngineHours?: number;\n jobcardTravels?: Array;\n dmsLogError?: boolean;\n priorityType?: PriorityTypeDto;\n customerPaymentMode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignatureDto { \n id?: number;\n url?: string;\n secretKey?: string;\n secretIV?: string;\n phase?: AppointmentSignatureDto.PhaseEnum;\n time?: string;\n customerNotPresent?: boolean;\n appointmentId?: number;\n customerCompanyUserId?: number;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\nexport namespace AppointmentSignatureDto {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\n\n\nexport interface AppointmentStatusDto { \n id?: number;\n workshopUser?: WorkshopUserDto;\n customerCompanyUser?: CustomerCompanyUserDto;\n status?: string;\n time?: string;\n reason?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AzureTokenDto { \n key?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\n\n\nexport interface BrandDto { \n id?: number;\n name?: string;\n iceCode?: string;\n modelDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CheckListResultAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultAttachmentDto } from './checkListResultAttachmentDto';\n\n\nexport interface CheckListResultDto { \n id?: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface ChecklistDamageDto { \n id?: number;\n appointment?: AppointmentDto;\n url?: string;\n zone?: number;\n year?: number;\n jobOrder?: number;\n type?: string;\n filename?: string;\n sapCode?: string;\n size?: number;\n comment?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultDto } from './checkListResultDto';\nimport { AppointmentSignatureDto } from './appointmentSignatureDto';\n\n\nexport interface ChecklistInstanceDto { \n id?: number;\n summaryUrl?: string;\n content?: string;\n appointmentId?: number;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n type?: string;\n workshopUserId?: string;\n checkListResult?: Array;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n appointmentSignature?: AppointmentSignatureDto;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistTemplateDto { \n id?: number;\n type?: string;\n title?: string;\n content?: string;\n defaultChecklist?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Consumable { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConsumableAssociationDto { \n id?: number;\n workshopId?: number;\n type?: string;\n description?: string;\n ivecoPartNumber?: string;\n equivalentId?: string;\n preCode?: string;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConsumableDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CountryDto { \n id?: number;\n name?: string;\n abbrev?: string;\n market?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetailsDto { \n id?: number;\n customerName?: string;\n cityName?: string;\n address?: string;\n countryCode?: string;\n zipCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CurrencyDto { \n id?: number;\n code?: string;\n label?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\n\n\nexport interface CustomerCompanyDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n address?: string;\n zipcode?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: number;\n creditType?: string;\n dmsId?: string;\n displayedName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n customerNote?: string;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n users?: Array;\n cpdContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n customerPaymentMode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CustomerCompanyPatchDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n address?: string;\n zipcode?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: number;\n creditType?: string;\n dmsId?: string;\n displayedName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n customerNote?: string;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n isCpd?: boolean;\n isCashCust?: boolean;\n customerPaymentMode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface CustomerCompanyUserDto { \n id?: number;\n customerCompanyId?: number;\n role?: RoleDto;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n dmsId?: string;\n appointmentDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DefaultPriorityTypeDto { \n workshopId?: number;\n oldDefaultPriorityTypeId?: number;\n newDefaultPriorityTypeId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDeleted } from './jobcardItemDeleted';\nimport { JobcardMileage } from './jobcardMileage';\nimport { JobcardEngineHours } from './jobcardEngineHours';\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardTravel } from './jobcardTravel';\n\n\nexport interface Jobcard { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n jobcardItems?: Array;\n dmsJobOrder?: string;\n dmsJobOrderToClaim?: number;\n dmsJobOrderClaimNumber?: number;\n estimatedDuration?: number;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n failureDate?: string;\n mileagePictureUrl?: string;\n customerOrderNumber?: string;\n dmsOrderType?: string;\n percentage?: number;\n jobcardItemDeleted?: Array;\n jobcardAttachments?: Array;\n jobcardMileages?: Array;\n jobcardTravel?: Array;\n jobcardEngineHours?: Array;\n djcOrderType?: string;\n lastUpdatedBy?: string;\n dealerClaimNumber?: number;\n ansDossier?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardAttachment { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n jobcard?: Jobcard;\n url?: string;\n type?: string;\n fileName?: string;\n fileSize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardDto } from './jobcardDto';\n\n\nexport interface JobcardAttachmentDto { \n id?: number;\n jobcardDto?: JobcardDto;\n url?: string;\n type?: string;\n filename?: string;\n filesize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\nimport { JobcardItemDto } from './jobcardItemDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { JobcardItemDeletedDto } from './jobcardItemDeletedDto';\nimport { JobcardItemMobileDto } from './jobcardItemMobileDto';\n\n\nexport interface JobcardDto { \n id?: number;\n dmsJobOrder?: string;\n dmsToStrClaim?: number;\n claim?: number;\n dmsOrderType?: string;\n estimatedDuration?: number;\n startTime?: string;\n endTime?: string;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n mileagePictureUrl?: string;\n failureDate?: string;\n customerOrderNumber?: string;\n jobcardItems?: Array;\n jobcardItemMobileDto?: Array;\n jobcardTravels?: Array;\n percentage?: number;\n jobcardAttachmentDtos?: Array;\n jobcardMileages?: Array;\n jobcardEngineHours?: Array;\n lastUpdatedBy?: string;\n dealerClaimNumber?: string;\n ansDossier?: string;\n jobcardItemDeleted?: Array;\n djcOrderType?: string;\n jobcardSerialNumbers?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardEngineHours { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n photoUrl?: string;\n name?: string;\n fileName?: string;\n fileSize?: number;\n fileType?: string;\n year?: number;\n creationDate?: string;\n jobcard?: Jobcard;\n isDeleted?: boolean;\n reason?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { WorkshopUser } from './workshopUser';\nimport { Part } from './part';\nimport { WarrantyClaimData } from './warrantyClaimData';\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { Jobcard } from './jobcard';\nimport { JobcardItemExtraOperation } from './jobcardItemExtraOperation';\nimport { JobcardItemAttachment } from './jobcardItemAttachment';\nimport { JobcardItemStatus } from './jobcardItemStatus';\n\n\nexport interface JobcardItem { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n name?: string;\n type?: string;\n code?: string;\n description?: string;\n additionalDescription?: string;\n weight?: number;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n extraActivity?: boolean;\n customerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n causalPartCode?: string;\n duration?: number;\n status?: string;\n addOnStatus?: string;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n dmsId?: string;\n docId?: string;\n isLocked?: boolean;\n lockedBy?: string;\n lockedTimestamp?: string;\n jobcard?: Jobcard;\n jobcardItemAttachments?: Array;\n estimatedDuration?: number;\n operations?: Array;\n jobcardItemExtraOperations?: Array;\n jobcardItemStatus?: Array;\n workshopUser?: WorkshopUser;\n failureCode?: string;\n failureDescription?: string;\n causalPart?: Part;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n warrantyType?: string;\n contractNumber?: string;\n failureSeverity?: number;\n defectCode?: string;\n supplierCode?: string;\n deleted?: boolean;\n generalNote?: string;\n cause?: string;\n correction?: string;\n percentage?: number;\n startDate?: string;\n mpPlanId?: number;\n internalNotes?: string;\n workshopDiscount?: WorkshopDiscount;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimData;\n inspectionActivity?: boolean;\n officialTime?: number;\n defferDeleteReason?: string;\n sapResponse?: string;\n couponStatus?: string;\n deferredDate?: string;\n deferredToDate?: string;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n paymentType?: string;\n paymentTypeDisabled?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemAttachment { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n jobcardItem?: JobcardItem;\n creationDate?: string;\n workshopUser?: WorkshopUser;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemCustomerStatusDto { \n id?: number;\n jobcardItemId?: number;\n action?: string;\n actionDateTime?: string;\n actionPerformedBy?: string;\n actionType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardItemDeleted { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n type?: string;\n code?: string;\n jobcard?: Jobcard;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemDeletedDto { \n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { SplitDto } from './splitDto';\nimport { MpInformationDto } from './mpInformationDto';\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\nimport { JobcardItemAttachmentDto } from './jobcardItemAttachmentDto';\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { WarrantyClaimDataDto } from './warrantyClaimDataDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { WarrantyTypeDto } from './warrantyTypeDto';\nimport { JobcardItemExtraOperationDto } from './jobcardItemExtraOperationDto';\nimport { JobcardPartsBacklogDto } from './jobcardPartsBacklogDto';\n\n\nexport interface JobcardItemDto { \n workshopUserId?: string;\n id?: number;\n name?: string;\n code?: string;\n description?: string;\n deferredDate?: string;\n deferredToDate?: string;\n additionalDescription?: string;\n weight?: number;\n operations?: Array;\n estimatedDuration?: number;\n jobcardItemAttachments?: Array;\n jobcardItemStatus?: Array;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n failureCode?: string;\n failureDescription?: string;\n causalPartId?: number;\n defectCode?: string;\n supplierCode?: string;\n failureSeverity?: number;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n contractNumber?: string;\n warrantyType?: string;\n ids?: Array;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n deleted?: boolean;\n extraOperations?: Array;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n subtype?: string;\n type?: string;\n priority?: number;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformationDto;\n generalNote?: string;\n cause?: string;\n correction?: string;\n duration?: number;\n status?: string;\n percentage?: number;\n startDate?: string;\n discountTypeId?: number;\n technicians?: Array;\n addOnStatus?: string;\n internalNotes?: string;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimDataDto;\n dmsId?: string;\n inspectionActivity?: boolean;\n sapResponse?: string;\n workshopBayId?: number;\n disabled?: boolean;\n checklistInstances?: Array;\n officialTime?: number;\n errorMsg?: string;\n docId?: string;\n jobcardItemSpells?: Array;\n couponStatus?: string;\n jobcardItemCustomerStatus?: Array;\n paymentType?: PaymentTypeDto;\n payType?: string;\n jobcardPartsBacklog?: Array;\n defferDeleteReason?: string;\n paymentWarrantyType?: WarrantyTypeDto;\n tempJId?: string;\n selected?: boolean;\n paymentSubType?: PaymentSubTypeDto;\n paymentSubType2?: PaymentSubTypeDto;\n paymentSubType3?: PaymentSubTypeDto;\n isLocked?: boolean;\n lockedBy?: string;\n lockedById?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n paymentTypeDisabled?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemExtraOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n compulsory?: boolean;\n jobcardItem?: JobcardItem;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n addOnStatus?: string;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemExtraOperationDto { \n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n deleted?: boolean;\n compulsory?: boolean;\n selected?: boolean;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n disablePrice?: boolean;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n active?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\n\n\nexport interface JobcardItemMobileDto { \n id?: number;\n name?: string;\n jobcardItemStatus?: Array;\n weight?: number;\n deferred?: boolean;\n deleted?: boolean;\n status?: string;\n technicians?: Array;\n jobcardItemSpells?: Array;\n jobcardItemCustomerStatus?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\nimport { JobcardItemOperationConsumable } from './jobcardItemOperationConsumable';\n\n\nexport interface JobcardItemOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n code?: string;\n label?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n jobcardItem?: JobcardItem;\n price?: number;\n compulsory?: boolean;\n operationManufacturer?: string;\n addOnStatus?: string;\n srt?: boolean;\n isDefault?: boolean;\n type?: string;\n jobcardItemOperationParts?: Array;\n jobcardItemOperationConsumables?: Array;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Consumable } from './consumable';\n\n\nexport interface JobcardItemOperationConsumable { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: string;\n jobcardItemOperation?: JobcardItemOperation;\n consumable?: Consumable;\n price?: number;\n ewarrantyCode?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ConsumableDto } from './consumableDto';\n\n\nexport interface JobcardItemOperationConsumableDto { \n id?: number;\n quantity?: string;\n consumable?: ConsumableDto;\n compulsory?: boolean;\n price?: number;\n selected?: boolean;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationConsumableDto } from './jobcardItemOperationConsumableDto';\nimport { JobcardItemOperationPartDto } from './jobcardItemOperationPartDto';\n\n\nexport interface JobcardItemOperationDto { \n id?: number;\n code?: string;\n label?: string;\n type?: string;\n description?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n compulsory?: boolean;\n selected?: boolean;\n price?: number;\n manufacturer?: string;\n addOnStatus?: string;\n parts?: Array;\n consumables?: Array;\n isKitComplete?: boolean;\n useKitPart?: boolean;\n dmsId?: string;\n srt?: boolean;\n isDefault?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Part } from './part';\nimport { JobcardItemOperationPartLocation } from './jobcardItemOperationPartLocation';\n\n\nexport interface JobcardItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n jobcardItemOperation?: JobcardItemOperation;\n part?: Part;\n price?: number;\n cost?: number;\n tobereturned?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocation?: Array;\n pickupDate?: string;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardItemOperationPartDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobCardItemOperation?: JobcardItemOperationDto;\n pickupDate?: string;\n tobereturned?: boolean;\n compulsory?: boolean;\n price?: number;\n cost?: number;\n selected?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocationList?: Array;\n ewarrantyCode?: string;\n version?: number;\n isAvailableAtHomeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemOperationPartLocation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n locationId?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\n\n\nexport interface JobcardItemOperationPartLocationDto { \n id?: number;\n locationId?: string;\n jobcardItemOperationPart?: JobcardItemOperationPart;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n version?: number;\n availableAtHomeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\n\n\nexport interface JobcardItemSpellDto { \n id?: number;\n name?: string;\n weight?: number;\n estimatedDuration?: number;\n startDate?: string;\n workshopBayId?: number;\n technicians?: Array;\n selected?: boolean;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemStatus { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n workshopUser?: WorkshopUser;\n jobcardItem?: JobcardItem;\n reason?: string;\n otherReason?: string;\n isDeleted?: boolean;\n dmsId?: string;\n}\nexport namespace JobcardItemStatus {\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP' | 'CLOCKING_WEB' | 'CLOCKING_DMS' | 'CLOCKING_CRON';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum,\n WEB: 'CLOCKING_WEB' as ClockingStatusEnum,\n DMS: 'CLOCKING_DMS' as ClockingStatusEnum,\n CRON: 'CLOCKING_CRON' as ClockingStatusEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemStatusDto { \n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: string;\n jobcardItemId?: number;\n workshopUserId?: string;\n reason?: string;\n otherReason?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n dmsId?: string;\n hasError?: boolean;\n errorReason?: string;\n activityId?: number;\n appointmentId?: number;\n activityName?: string;\n allowedTime?: number;\n deleted?: boolean;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemTechnicianDto { \n id?: number;\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n isDeleted?: boolean;\n spellLinkId?: number;\n firstName?: string;\n lastName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardMileage { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n photoUrl?: string;\n name?: string;\n fileName?: string;\n fileSize?: number;\n fileType?: string;\n year?: number;\n creationDate?: string;\n jobcard?: Jobcard;\n reason?: string;\n isDeleted?: boolean;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardPartsBacklog { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n basicDiscount?: number;\n promoDiscount?: number;\n netPrice?: number;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n cspsOrderId?: number;\n details?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardPartsBacklogDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobcardItemId?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n netPrice?: number;\n customerCompanyId?: number;\n appointmentId?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n partId?: number;\n operation?: string;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n basicDiscount?: number;\n promoDiscount?: number;\n cspsOrderId?: number;\n workshopId?: number;\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardTravel { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n distance?: number;\n duration?: number;\n date?: string;\n jobcard?: Jobcard;\n reason?: string;\n otherReason?: string;\n isDeleted?: boolean;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n price?: number;\n travelTypeFrom?: number;\n travelTypeTo?: number;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n dmsId?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { WorkshopUserTravelPositionDto } from './workshopUserTravelPositionDto';\n\n\nexport interface JobcardTravelDto { \n id?: number;\n dmsId?: string;\n name?: string;\n duration?: number;\n jobcardId?: number;\n distance?: number;\n date?: string;\n reason?: string;\n otherReason?: string;\n deleted?: boolean;\n workshopUserId?: string;\n positions?: Array;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n paymentType?: PaymentTypeDto;\n paymentSubType?: PaymentSubTypeDto;\n paymentSubSubType2?: PaymentSubSubTypeDto;\n paymentSubSubType3?: PaymentSubSubTypeDto;\n price?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n travelTypeFrom?: string;\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { VehicleLegalInspectionDto } from './vehicleLegalInspectionDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface JobcardVehicleDto { \n id?: number;\n workshopId?: number;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n wtyStartDate?: string;\n customerCompanyId?: number;\n annualInspectionDate?: string;\n tachometerDate?: string;\n isActive?: boolean;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vehicleNote?: string;\n customerCompanyUser?: CustomerCompanyUserDto;\n ownerId?: string;\n invoiceDate?: string;\n appointments?: Array;\n stockNumber?: string;\n inspections?: Array;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDto } from './jobcardItemDto';\n\n\nexport interface KitDto { \n id?: number;\n name?: string;\n jobcardItems?: Array;\n workshopId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\n\n\nexport interface KitItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n part?: Part;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiDto { \n hoursSold?: number;\n wipHoursAveDays?: number;\n wipHoursAveDaysSecondary?: number;\n efficiency?: number;\n attendedTimeClockedTime?: number;\n totalSales?: number;\n salesBooking?: number;\n salesCheckin?: number;\n salesWorkshop?: number;\n partSalesperHour?: number;\n partSales?: number;\n workshopSales?: number;\n plannedEfficiency?: number;\n actualEfficiency?: number;\n plannedUtilisation?: number;\n actualUtilisation?: number;\n productivity?: number;\n utilisation?: number;\n recovery?: number;\n wipAveDays?: number;\n workshopId?: number;\n workOrder?: number;\n noOfInspections?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LanguageDto { \n id?: number;\n languageId?: string;\n languageName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LegalNoticeDto { \n id?: number;\n workshopId?: number;\n termsAndConditions?: string;\n privacyNotice?: string;\n termsAzureUrl?: string;\n privacyAzureUrl?: string;\n customerNotes?: string;\n docUploadForPn?: boolean;\n docUploadForTc?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BrandDto } from './brandDto';\n\n\nexport interface ModelDto { \n id?: number;\n name?: string;\n brand?: BrandDto;\n}\n\n","export * from './appointmentDto';\nexport * from './appointmentSignatureDto';\nexport * from './appointmentStatusDto';\nexport * from './azureTokenDto';\nexport * from './brandDto';\nexport * from './checkListResultAttachmentDto';\nexport * from './checkListResultDto';\nexport * from './checklistDamageDto';\nexport * from './checklistInstanceDto';\nexport * from './checklistTemplateDto';\nexport * from './consumable';\nexport * from './consumableAssociationDto';\nexport * from './consumableDto';\nexport * from './countryDto';\nexport * from './cpdContactDetailsDto';\nexport * from './currencyDto';\nexport * from './customerCompanyDto';\nexport * from './customerCompanyPatchDto';\nexport * from './customerCompanyUserDto';\nexport * from './defaultPriorityTypeDto';\nexport * from './jobcard';\nexport * from './jobcardAttachment';\nexport * from './jobcardAttachmentDto';\nexport * from './jobcardDto';\nexport * from './jobcardEngineHours';\nexport * from './jobcardItem';\nexport * from './jobcardItemAttachment';\nexport * from './jobcardItemAttachmentDto';\nexport * from './jobcardItemCustomerStatusDto';\nexport * from './jobcardItemDeleted';\nexport * from './jobcardItemDeletedDto';\nexport * from './jobcardItemDto';\nexport * from './jobcardItemExtraOperation';\nexport * from './jobcardItemExtraOperationDto';\nexport * from './jobcardItemMobileDto';\nexport * from './jobcardItemOperation';\nexport * from './jobcardItemOperationConsumable';\nexport * from './jobcardItemOperationConsumableDto';\nexport * from './jobcardItemOperationDto';\nexport * from './jobcardItemOperationPart';\nexport * from './jobcardItemOperationPartDto';\nexport * from './jobcardItemOperationPartLocation';\nexport * from './jobcardItemOperationPartLocationDto';\nexport * from './jobcardItemSpellDto';\nexport * from './jobcardItemStatus';\nexport * from './jobcardItemStatusDto';\nexport * from './jobcardItemTechnicianDto';\nexport * from './jobcardMileage';\nexport * from './jobcardPartsBacklog';\nexport * from './jobcardPartsBacklogDto';\nexport * from './jobcardTravel';\nexport * from './jobcardTravelDto';\nexport * from './jobcardVehicleDto';\nexport * from './kitDto';\nexport * from './kitItemOperationPart';\nexport * from './kpiDto';\nexport * from './languageDto';\nexport * from './legalNoticeDto';\nexport * from './modelDto';\nexport * from './mpDeltaDto';\nexport * from './mpInformationDto';\nexport * from './mpKitCompositionDto';\nexport * from './nonProductiveActivityDto';\nexport * from './nonProductiveActivityStatusDto';\nexport * from './notification';\nexport * from './notificationCreationDto';\nexport * from './notificationDto';\nexport * from './notificationSubscriptionDto';\nexport * from './notificationSubscriptionSetDto';\nexport * from './onHoldReasonDto';\nexport * from './openingDay';\nexport * from './orderTypeHeaderDto';\nexport * from './part';\nexport * from './partDetail';\nexport * from './partDto';\nexport * from './partMaster';\nexport * from './partMasterHeader';\nexport * from './partsTrackerCsps';\nexport * from './partsTrackerDms';\nexport * from './paymentSubSubTypeDto';\nexport * from './paymentSubTypeDto';\nexport * from './paymentTypeDto';\nexport * from './period';\nexport * from './priorityTypeDto';\nexport * from './releaseDto';\nexport * from './role';\nexport * from './roleDto';\nexport * from './sentBackCreationDto';\nexport * from './shiftDto';\nexport * from './shiftPeriodDto';\nexport * from './skillDto';\nexport * from './splitDto';\nexport * from './unitStatusDto';\nexport * from './userGuideDto';\nexport * from './userNotificationDto';\nexport * from './vehicleCourtesyBookingDto';\nexport * from './vehicleCourtesyDto';\nexport * from './vehicleLegalInspectionDto';\nexport * from './warrantyClaimData';\nexport * from './warrantyClaimDataDto';\nexport * from './warrantyTypeDto';\nexport * from './workshop';\nexport * from './workshopBay';\nexport * from './workshopBayDto';\nexport * from './workshopChecklistTypeDto';\nexport * from './workshopDiscount';\nexport * from './workshopDiscountDto';\nexport * from './workshopDto';\nexport * from './workshopSalesOrganizationDto';\nexport * from './workshopUser';\nexport * from './workshopUserAvailabilityDto';\nexport * from './workshopUserDto';\nexport * from './workshopUserPreferenceDto';\nexport * from './workshopUserRelation';\nexport * from './workshopUserTravelPositionDto';\nexport * from './workshopUserUnavailability';\nexport * from './workshopUserUnavailabilityDto';\nexport * from './worshopUserSetting';\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpDeltaDto { \n unit?: string;\n value?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpDeltaDto } from './mpDeltaDto';\n\n\nexport interface MpInformationDto { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpKitCompositionDto { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NonProductiveActivityDto { \n id?: number;\n dmsCode?: string;\n description?: string;\n activityName?: string;\n workshopId?: number;\n isVisible?: boolean;\n isDefault?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NonProductiveActivityDto } from './nonProductiveActivityDto';\n\n\nexport interface NonProductiveActivityStatusDto { \n id?: number;\n startTime?: string;\n endTime?: string;\n workshopUserId?: string;\n nonProductiveActivity?: NonProductiveActivityDto;\n cron?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface Notification { \n id?: number;\n sender?: WorkshopUser;\n receiver?: WorkshopUser;\n type?: string;\n appointment?: number;\n sentDate?: string;\n viewDate?: string;\n title?: string;\n body?: string;\n notificationTitle?: string;\n doneActivities?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NotificationCreationDto { \n type?: string;\n appointmentId?: number;\n nbApproved?: number;\n nbDeclined?: number;\n body?: string;\n notificationTitle?: string;\n doneActivities?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface NotificationDto { \n id?: number;\n sender?: WorkshopUserDto;\n receiver?: WorkshopUserDto;\n type?: string;\n appointment?: number;\n sentDate?: string;\n viewDate?: string;\n title?: string;\n body?: string;\n notificationTitle?: string;\n deviceToken?: string;\n doneActivities?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NotificationSubscriptionDto { \n id?: number;\n workshopUserId?: string;\n workshopId?: number;\n notificationType?: string;\n sendingWay?: string;\n dayNumberLimit?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\nimport { NotificationSubscriptionDto } from './notificationSubscriptionDto';\n\n\nexport interface NotificationSubscriptionSetDto { \n workshopUserDto?: WorkshopUserDto;\n subscriptions?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReasonDto { \n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Period } from './period';\n\n\nexport interface OpeningDay { \n weekday?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OrderTypeHeaderDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n isDefault?: boolean;\n isVisible?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartsTrackerDms } from './partsTrackerDms';\nimport { KitItemOperationPart } from './kitItemOperationPart';\nimport { Workshop } from './workshop';\nimport { JobcardPartsBacklog } from './jobcardPartsBacklog';\nimport { PartDetail } from './partDetail';\nimport { PartsTrackerCsps } from './partsTrackerCsps';\n\n\nexport interface Part { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n workshop?: Workshop;\n code?: string;\n description?: string;\n quantity?: number;\n manufacturer?: string;\n price?: number;\n partDetail?: PartDetail;\n kitOperationParts?: Array;\n partSuperseedingId?: number;\n isKit?: boolean;\n jobcardPartsBacklog?: Array;\n partsTrackerDms?: Array;\n partsTrackerCsps?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartDetail { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n firstModelYear?: string;\n lastModelYear?: string;\n partManufacturer?: string;\n manufacturerPartCode?: string;\n packageQuantity?: number;\n partChangeStatus?: number;\n partTypeCode?: string;\n partManufacturerBrand?: string;\n alternatePartCode?: string;\n brand?: string;\n partName?: string;\n hazmatDescription?: string;\n hazmatIndicator?: number;\n uomCode?: string;\n classCode?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { MpKitCompositionDto } from './mpKitCompositionDto';\n\n\nexport interface PartDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partSuperseedingId?: number;\n partDetailId?: number;\n quantity?: number;\n booking?: string;\n visitDate?: string;\n vehPlate?: string;\n customer?: string;\n activity?: string;\n manufacturer?: string;\n isKit?: boolean;\n kitParts?: Array;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n jobcardItemOperationPartLocationList?: Array;\n price?: number;\n homeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartMasterHeader } from './partMasterHeader';\nimport { Workshop } from './workshop';\n\n\nexport interface PartMaster { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n partMasterHeader?: PartMasterHeader;\n workshop?: Workshop;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartMaster } from './partMaster';\n\n\nexport interface PartMasterHeader { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n documentDateTime?: string;\n documentId?: string;\n partMasterCountryCode?: string;\n partMasterEffectiveDate?: string;\n partMaster?: PartMaster;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerCsps { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerDms { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PaymentSubSubTypeDto { \n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n weight?: number;\n isVisible?: boolean;\n paymentSubTypeId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\n\n\nexport interface PaymentSubTypeDto { \n id?: number;\n description?: string;\n type?: string;\n code?: string;\n weight?: number;\n paymentTypeId?: number;\n isVisible?: boolean;\n categoryType?: string;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\n\n\nexport interface PaymentTypeDto { \n id?: number;\n isVisible?: boolean;\n workshopId?: number;\n type?: string;\n weight?: number;\n paymentSubTypes?: Array;\n code?: string;\n name?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Period { \n id?: number;\n start?: string;\n end?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PriorityTypeDto { \n id?: number;\n description?: string;\n status?: string;\n icon?: string;\n defaultPriority?: boolean;\n workshopId?: number;\n type?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ReleaseDto { \n environment?: string;\n business?: string;\n version?: string;\n releaseDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Role { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n roleAbbrev?: string;\n iamAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RoleDto { \n id?: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SentBackCreationDto { \n type?: string;\n appointmentId?: number;\n body?: string;\n notificationTitle?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriodDto } from './shiftPeriodDto';\n\n\nexport interface ShiftDto { \n id?: number;\n description?: string;\n type?: string;\n startDate?: string;\n endDate?: string;\n userShiftId?: number;\n targetTime?: number;\n dmsId?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriodDto { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SkillDto { \n id?: number;\n description?: string;\n translationKey?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SplitDto { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n pricingId?: number;\n jobcardItemId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnitStatusDto { \n id?: number;\n date?: string;\n unitDown?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UserGuideDto { \n id?: number;\n imageUrl?: string;\n title?: string;\n description?: string;\n updatedDate?: string;\n categorie?: string;\n markdownUrl?: string;\n language?: UserGuideDto.LanguageEnum;\n}\nexport namespace UserGuideDto {\n export type LanguageEnum = 'EN' | 'ITA' | 'DE' | 'FR' | 'PL';\n export const LanguageEnum = {\n EN: 'EN' as LanguageEnum,\n ITA: 'ITA' as LanguageEnum,\n DE: 'DE' as LanguageEnum,\n FR: 'FR' as LanguageEnum,\n PL: 'PL' as LanguageEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Notification } from './notification';\n\n\nexport interface UserNotificationDto { \n notification?: Notification;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface VehicleCourtesyBookingDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n reason?: string;\n vehicleCourtesy?: VehicleCourtesyDto;\n appointment?: AppointmentDto;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { WorkshopDto } from './workshopDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface VehicleCourtesyDto { \n id?: number;\n plate?: string;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n mileage?: number;\n dmsId?: string;\n workshop?: WorkshopDto;\n vehicleNote?: string;\n status?: string;\n appointments?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleLegalInspectionDto { \n id?: number;\n label?: string;\n code?: string;\n date?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimData { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimDataDto { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyTypeDto { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { PartMaster } from './partMaster';\n\n\nexport interface Workshop { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n masterWorkshopId?: number;\n dmsUrl?: string;\n tempDmsUrl?: string;\n dmsAuthenticationId?: string;\n tempDmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n dmsClearAuthenticationPassword?: string;\n currencyCode?: string;\n cspsUserId?: string;\n enableSafetyChecklist?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n labourCost?: string;\n dmsProvider?: string;\n partMaster?: PartMaster;\n workshopDiscount?: Array;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n dealerClaimCounter?: number;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopBay { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n bayCode?: string;\n active?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface WorkshopBayDto { \n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n leadTechnician?: string;\n technicians?: Array;\n bayCode?: string;\n isActive?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopChecklistTypeDto { \n id?: number;\n workshopId?: number;\n checklistType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopDiscount { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDto } from './workshopDto';\n\n\nexport interface WorkshopDiscountDto { \n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n workshop?: WorkshopDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { OpeningDay } from './openingDay';\nimport { WorkshopSalesOrganizationDto } from './workshopSalesOrganizationDto';\n\n\nexport interface WorkshopDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n openingTime?: string;\n closureTime?: string;\n openingDays?: Array;\n masterWorkshopId?: number;\n workshopBayDto?: WorkshopBayDto;\n currencyCode?: string;\n cspsUserId?: string;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n workshopSalesOrganizations?: Array;\n paymentCode?: string;\n labourCost?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n enableSafetyChecklist?: boolean;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n dmsProvider?: string;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesOrganizationDto { \n id?: number;\n brandDivision?: string;\n market?: string;\n salesCode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Role } from './role';\nimport { WorshopUserSetting } from './worshopUserSetting';\nimport { WorkshopUserRelation } from './workshopUserRelation';\nimport { WorkshopUserUnavailability } from './workshopUserUnavailability';\n\n\nexport interface WorkshopUser { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n deviceToken?: string;\n appVersion?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n views?: string;\n isActivityApproval?: string;\n costRate?: string;\n role?: Role;\n canEditJobcard?: boolean;\n isAutomaticApproval?: string;\n canSeePrice?: boolean;\n isAssociateUser?: boolean;\n canSelfAssign?: boolean;\n clockingLog?: string;\n workshopUserUnavailability?: Array;\n workshopUserRelations?: Array;\n worshopUserSettings?: Array;\n active?: boolean;\n admin?: boolean;\n manualJobStatusOverride?: boolean;\n displayingOccupancy?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { SkillDto } from './skillDto';\nimport { ShiftDto } from './shiftDto';\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { WorkshopUserUnavailabilityDto } from './workshopUserUnavailabilityDto';\n\n\nexport interface WorkshopUserAvailabilityDto { \n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n role?: RoleDto;\n isAdmin?: boolean;\n views?: string;\n isTechnicianView?: boolean;\n skills?: Array;\n displayedName?: string;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n canSeePrice?: boolean;\n leadWorkshopBayId?: number;\n url?: string;\n isManualJobStatusOverride?: boolean;\n isDisplayingOccupancy?: boolean;\n costRate?: string;\n isAutomaticApproval?: string;\n isActivityApproval?: string;\n unavailabilities?: Array;\n workshopBays?: Array;\n shifts?: Array;\n canSelfAssign?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { WorkshopDiscountDto } from './workshopDiscountDto';\nimport { SkillDto } from './skillDto';\nimport { ShiftDto } from './shiftDto';\nimport { WorkshopDto } from './workshopDto';\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { WorkshopUserUnavailabilityDto } from './workshopUserUnavailabilityDto';\n\n\nexport interface WorkshopUserDto { \n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n role?: RoleDto;\n isAdmin?: boolean;\n isActive?: boolean;\n views?: string;\n isTechnicianView?: boolean;\n deviceToken?: string;\n appVersion?: string;\n skills?: Array;\n canEditJobcard?: boolean;\n displayedName?: string;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n canSeePrice?: boolean;\n leadWorkshopBayId?: number;\n url?: string;\n isManualJobStatusOverride?: boolean;\n isAssociateUser?: boolean;\n workshopDiscountDto?: Array;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n costRate?: string;\n isAutomaticApproval?: string;\n isActivityApproval?: string;\n unavailabilities?: Array;\n workshopBays?: Array;\n shifts?: Array;\n isAssociatedWithWorkshop?: boolean;\n canSelfAssign?: boolean;\n workshopList?: Array;\n showClockingResume?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserPreferenceDto { \n languageId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Workshop } from './workshop';\nimport { WorkshopBay } from './workshopBay';\n\n\nexport interface WorkshopUserRelation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n workshop?: Workshop;\n workshopBay?: WorkshopBay;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserTravelPositionDto { \n id?: number;\n workshopUserId?: string;\n jobcardTravelId?: number;\n latitude?: number;\n longitude?: number;\n positionDate?: string;\n positionType?: string;\n deviceStatus?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailability { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n fromDms?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailabilityDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n isFromDms?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface WorshopUserSetting { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n key?: string;\n type?: WorshopUserSetting.TypeEnum;\n intValue?: number;\n strValue?: string;\n boolValue?: boolean;\n workshopUser?: WorkshopUser;\n}\nexport namespace WorshopUserSetting {\n export type TypeEnum = 'BOOL' | 'STR' | 'INT';\n export const TypeEnum = {\n BOOL: 'BOOL' as TypeEnum,\n STR: 'STR' as TypeEnum,\n INT: 'INT' as TypeEnum\n };\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { AppointmentsService } from './api/appointments.service';\nimport { AsistFeedbackService } from './api/asistFeedback.service';\nimport { AzureService } from './api/azure.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","export * from './appointments.service';\nimport { AppointmentsService } from './appointments.service';\nexport * from './asistFeedback.service';\nimport { AsistFeedbackService } from './asistFeedback.service';\nexport * from './azure.service';\nimport { AzureService } from './azure.service';\nexport const APIS = [AppointmentsService, AsistFeedbackService, AzureService];\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAppointmentByIdForFeedbackRequestParams {\n applicationToken: string;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcasist';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentByIdForFeedback(requestParameters: GetAppointmentByIdForFeedbackRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getAppointmentByIdForFeedback(requestParameters: GetAppointmentByIdForFeedbackRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAppointmentByIdForFeedback(requestParameters: GetAppointmentByIdForFeedbackRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAppointmentByIdForFeedback(requestParameters: GetAppointmentByIdForFeedbackRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getAppointmentByIdForFeedback.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getAppointmentByIdForFeedback.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentByIdForFeedback.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/feedback/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AsistResponseDto } from '../model/models';\nimport { FeedbackAttachmentDto } from '../model/models';\nimport { FeedbackResultDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SendAssistRequestParams {\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n feedbackResultDto: FeedbackResultDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SendAssistAttachementRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n feedbackAttachmentDto: FeedbackAttachmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AsistFeedbackService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcasist';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendAssist(requestParameters: SendAssistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public sendAssist(requestParameters: SendAssistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public sendAssist(requestParameters: SendAssistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public sendAssist(requestParameters: SendAssistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling sendAssist.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling sendAssist.');\n }\n const feedbackResultDto = requestParameters.feedbackResultDto;\n if (feedbackResultDto === null || feedbackResultDto === undefined) {\n throw new Error('Required parameter feedbackResultDto was null or undefined when calling sendAssist.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/asist/sendFeedback`,\n feedbackResultDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendAssistAttachement(requestParameters: SendAssistAttachementRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public sendAssistAttachement(requestParameters: SendAssistAttachementRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public sendAssistAttachement(requestParameters: SendAssistAttachementRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public sendAssistAttachement(requestParameters: SendAssistAttachementRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling sendAssistAttachement.');\n }\n const feedbackAttachmentDto = requestParameters.feedbackAttachmentDto;\n if (feedbackAttachmentDto === null || feedbackAttachmentDto === undefined) {\n throw new Error('Required parameter feedbackAttachmentDto was null or undefined when calling sendAssistAttachement.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/asist/sendFeedbackAttachment`,\n feedbackAttachmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AzureTokenDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAzureSasTokenRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AzureService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcasist';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAzureSasToken.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/azure-token`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardDto } from './jobcardDto';\nimport { CustomerCompanyDto } from './customerCompanyDto';\nimport { ChecklistDamageDto } from './checklistDamageDto';\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusDto } from './appointmentStatusDto';\nimport { PriorityTypeDto } from './priorityTypeDto';\nimport { UnitStatusDto } from './unitStatusDto';\nimport { VehicleCourtesyBookingDto } from './vehicleCourtesyBookingDto';\n\n\nexport interface AppointmentDto { \n id?: number;\n mileage?: number;\n engineHours?: number;\n workshopBayId?: number;\n workshopId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n currentStatus?: string;\n repairAddress?: string;\n receptionDate?: string;\n deliveryDate?: string;\n dmsCreationDate?: string;\n types?: Array;\n checklistInstances?: Array;\n checkListDamages?: Array;\n customerCompany?: CustomerCompanyDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n vehicle?: JobcardVehicleDto;\n vehicleCourtesy?: VehicleCourtesyDto;\n jobcard?: JobcardDto;\n status?: AppointmentStatusDto;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUserDto;\n unitStatus?: UnitStatusDto;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReasonDto;\n plannedDeliveryDate?: string;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n openedBy?: string;\n orderTypeHeaderCode?: number;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingDto;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n isInUseDms?: boolean;\n failureEngineHours?: number;\n jobcardTravels?: Array;\n dmsLogError?: boolean;\n priorityType?: PriorityTypeDto;\n customerPaymentMode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignatureDto { \n id?: number;\n url?: string;\n secretKey?: string;\n secretIV?: string;\n phase?: AppointmentSignatureDto.PhaseEnum;\n time?: string;\n customerNotPresent?: boolean;\n appointmentId?: number;\n customerCompanyUserId?: number;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\nexport namespace AppointmentSignatureDto {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\n\n\nexport interface AppointmentStatusDto { \n id?: number;\n workshopUser?: WorkshopUserDto;\n customerCompanyUser?: CustomerCompanyUserDto;\n status?: string;\n time?: string;\n reason?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AsistResponseDto { \n Version?: string;\n RequestURL?: string;\n RequestId?: string;\n Detail?: string;\n ContactId?: string;\n ContactFound?: boolean;\n IsSuccessful?: boolean;\n RequestNumber?: string;\n RequestSubtypeCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AzureTokenDto { \n key?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\n\n\nexport interface BrandDto { \n id?: number;\n name?: string;\n iceCode?: string;\n modelDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CheckListResultAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultAttachmentDto } from './checkListResultAttachmentDto';\n\n\nexport interface CheckListResultDto { \n id?: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface ChecklistDamageDto { \n id?: number;\n appointment?: AppointmentDto;\n url?: string;\n zone?: number;\n year?: number;\n jobOrder?: number;\n type?: string;\n filename?: string;\n sapCode?: string;\n size?: number;\n comment?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultDto } from './checkListResultDto';\nimport { AppointmentSignatureDto } from './appointmentSignatureDto';\n\n\nexport interface ChecklistInstanceDto { \n id?: number;\n summaryUrl?: string;\n content?: string;\n appointmentId?: number;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n type?: string;\n workshopUserId?: string;\n checkListResult?: Array;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n appointmentSignature?: AppointmentSignatureDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConsumableDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetailsDto { \n id?: number;\n customerName?: string;\n cityName?: string;\n address?: string;\n countryCode?: string;\n zipCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\n\n\nexport interface CustomerCompanyDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n address?: string;\n zipcode?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: number;\n creditType?: string;\n dmsId?: string;\n displayedName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n customerNote?: string;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n users?: Array;\n cpdContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface CustomerCompanyUserDto { \n id?: number;\n customerCompanyId?: number;\n role?: RoleDto;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n dmsId?: string;\n appointmentDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface FeedbackAttachmentDto { \n requestId?: string;\n contactId?: string;\n blobName?: string;\n containerName?: string;\n fileName?: string;\n fileExtension?: string;\n fileSize?: string;\n storageAccount?: string;\n image?: string;\n userId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface FeedbackResultDto { \n notificationEmail?: string;\n userId?: string;\n userName?: string;\n sapCode?: string;\n brand?: string;\n userRegion?: string;\n fbCategory?: string;\n feedbackCategory?: string;\n feedbackSubcategory?: string;\n thirdCategory?: string;\n docId?: string;\n faqConsulted?: string;\n searchDetails?: string;\n iuID?: string;\n iuTitle?: string;\n image?: string;\n publication?: string;\n stReference?: string;\n stTitle?: string;\n frameId?: string;\n connectorId?: string;\n componentId?: string;\n docType?: string;\n chapter?: string;\n secondChapter?: string;\n thirdChapter?: string;\n timesheet?: string;\n group?: string;\n subgroup?: string;\n component?: string;\n browser?: string;\n page?: string;\n notes?: string;\n partDescription?: string;\n operationCode?: string;\n operationDesc?: string;\n proposedTime?: number;\n repairDetails?: string;\n legacyDocPage?: string;\n legacyDocId?: string;\n legacyDocTitle?: string;\n kaId?: string;\n kaTitle?: string;\n fcId?: string;\n fcTitle?: string;\n fcErrorCode?: string;\n symptomId?: string;\n symptomTitle?: string;\n operationOriginalTime?: string;\n parentRequest?: string;\n componentPartNumber?: string;\n interactiveMpName?: string;\n interactiveMpSelectedIntervalsId?: string;\n currentApplication?: string;\n ttName?: string;\n jobId?: string;\n applicationType?: string;\n system?: string;\n mode?: string;\n softwareVersion?: string;\n deviceModel?: string;\n dealerName?: string;\n dateRaised?: string;\n region?: number;\n noteArr?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardDto } from './jobcardDto';\n\n\nexport interface JobcardAttachmentDto { \n id?: number;\n jobcardDto?: JobcardDto;\n url?: string;\n type?: string;\n filename?: string;\n filesize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\nimport { JobcardItemDto } from './jobcardItemDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { JobcardItemDeletedDto } from './jobcardItemDeletedDto';\nimport { JobcardItemMobileDto } from './jobcardItemMobileDto';\n\n\nexport interface JobcardDto { \n id?: number;\n dmsJobOrder?: string;\n dmsToStrClaim?: number;\n claim?: number;\n dmsOrderType?: string;\n estimatedDuration?: number;\n startTime?: string;\n endTime?: string;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n mileagePictureUrl?: string;\n failureDate?: string;\n customerOrderNumber?: string;\n jobcardItems?: Array;\n jobcardItemMobileDto?: Array;\n jobcardTravels?: Array;\n percentage?: number;\n jobcardAttachmentDtos?: Array;\n jobcardMileages?: Array;\n jobcardEngineHours?: Array;\n lastUpdatedBy?: string;\n dealerClaimNumber?: string;\n ansDossier?: string;\n jobcardItemDeleted?: Array;\n djcOrderType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemCustomerStatusDto { \n id?: number;\n jobcardItemId?: number;\n action?: string;\n actionDateTime?: string;\n actionPerformedBy?: string;\n actionType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemDeletedDto { \n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { SplitDto } from './splitDto';\nimport { MpInformationDto } from './mpInformationDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\nimport { JobcardItemAttachmentDto } from './jobcardItemAttachmentDto';\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { WarrantyClaimDataDto } from './warrantyClaimDataDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { WarrantyTypeDto } from './warrantyTypeDto';\nimport { JobcardItemExtraOperationDto } from './jobcardItemExtraOperationDto';\nimport { JobcardPartsBacklogDto } from './jobcardPartsBacklogDto';\n\n\nexport interface JobcardItemDto { \n workshopUserId?: string;\n id?: number;\n name?: string;\n code?: string;\n description?: string;\n deferredDate?: string;\n deferredToDate?: string;\n additionalDescription?: string;\n weight?: number;\n operations?: Array;\n estimatedDuration?: number;\n jobcardItemAttachments?: Array;\n jobcardItemStatus?: Array;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n failureCode?: string;\n failureDescription?: string;\n causalPartId?: number;\n defectCode?: string;\n supplierCode?: string;\n failureSeverity?: number;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n contractNumber?: string;\n warrantyType?: string;\n ids?: Array;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n deleted?: boolean;\n extraOperations?: Array;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n subtype?: string;\n type?: string;\n priority?: number;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformationDto;\n generalNote?: string;\n cause?: string;\n correction?: string;\n duration?: number;\n status?: string;\n percentage?: number;\n startDate?: string;\n discountTypeId?: number;\n technicians?: Array;\n addOnStatus?: string;\n internalNotes?: string;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimDataDto;\n dmsId?: string;\n inspectionActivity?: boolean;\n sapResponse?: string;\n workshopBayId?: number;\n disabled?: boolean;\n checklistInstances?: Array;\n officialTime?: number;\n errorMsg?: string;\n docId?: string;\n jobcardItemSpells?: Array;\n couponStatus?: string;\n jobcardItemCustomerStatus?: Array;\n paymentType?: PaymentTypeDto;\n payType?: string;\n jobcardPartsBacklog?: Array;\n defferDeleteReason?: string;\n paymentWarrantyType?: WarrantyTypeDto;\n paymentTypeDisabled?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemExtraOperationDto { \n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n deleted?: boolean;\n compulsory?: boolean;\n selected?: boolean;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n disablePrice?: boolean;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n active?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\n\n\nexport interface JobcardItemMobileDto { \n id?: number;\n name?: string;\n jobcardItemStatus?: Array;\n weight?: number;\n deferred?: boolean;\n deleted?: boolean;\n status?: string;\n technicians?: Array;\n jobcardItemSpells?: Array;\n jobcardItemCustomerStatus?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n code?: string;\n label?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n price?: number;\n compulsory?: boolean;\n operationManufacturer?: string;\n addOnStatus?: string;\n srt?: boolean;\n isDefault?: boolean;\n type?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ConsumableDto } from './consumableDto';\n\n\nexport interface JobcardItemOperationConsumableDto { \n id?: number;\n quantity?: string;\n consumable?: ConsumableDto;\n compulsory?: boolean;\n price?: number;\n selected?: boolean;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationConsumableDto } from './jobcardItemOperationConsumableDto';\nimport { JobcardItemOperationPartDto } from './jobcardItemOperationPartDto';\n\n\nexport interface JobcardItemOperationDto { \n id?: number;\n code?: string;\n label?: string;\n type?: string;\n description?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n compulsory?: boolean;\n selected?: boolean;\n price?: number;\n manufacturer?: string;\n addOnStatus?: string;\n parts?: Array;\n consumables?: Array;\n isKitComplete?: boolean;\n useKitPart?: boolean;\n dmsId?: string;\n srt?: boolean;\n isDefault?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Part } from './part';\nimport { JobcardItemOperationPartLocation } from './jobcardItemOperationPartLocation';\n\n\nexport interface JobcardItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n jobcardItemOperation?: JobcardItemOperation;\n part?: Part;\n price?: number;\n cost?: number;\n tobereturned?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocation?: Array;\n pickupDate?: string;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardItemOperationPartDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobCardItemOperation?: JobcardItemOperationDto;\n pickupDate?: string;\n tobereturned?: boolean;\n compulsory?: boolean;\n price?: number;\n cost?: number;\n selected?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocationList?: Array;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\n\n\nexport interface JobcardItemOperationPartLocation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n locationId?: string;\n jobcardItemOperationPart?: JobcardItemOperationPart;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\n\n\nexport interface JobcardItemOperationPartLocationDto { \n id?: number;\n locationId?: string;\n jobcardItemOperationPart?: JobcardItemOperationPart;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\n\n\nexport interface JobcardItemSpellDto { \n id?: number;\n name?: string;\n weight?: number;\n estimatedDuration?: number;\n startDate?: string;\n workshopBayId?: number;\n technicians?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemStatusDto { \n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: string;\n jobcardItemId?: number;\n workshopUserId?: string;\n reason?: string;\n otherReason?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n dmsId?: string;\n hasError?: boolean;\n errorReason?: string;\n activityId?: number;\n appointmentId?: number;\n deleted?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemTechnicianDto { \n id?: number;\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n isDeleted?: boolean;\n spellLinkId?: number;\n firstName?: string;\n lastName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardPartsBacklogDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobcardItemId?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n netPrice?: number;\n customerCompanyId?: number;\n appointmentId?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n partId?: number;\n operation?: string;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n basicDiscount?: number;\n promoDiscount?: number;\n cspsOrderId?: number;\n workshopId?: number;\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { WorkshopUserTravelPositionDto } from './workshopUserTravelPositionDto';\n\n\nexport interface JobcardTravelDto { \n id?: number;\n dmsId?: string;\n name?: string;\n duration?: number;\n jobcardId?: number;\n distance?: number;\n date?: string;\n reason?: string;\n otherReason?: string;\n deleted?: boolean;\n workshopUserId?: string;\n positions?: Array;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n paymentType?: PaymentTypeDto;\n paymentSubType?: PaymentSubTypeDto;\n price?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n travelTypeFrom?: string;\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { VehicleLegalInspectionDto } from './vehicleLegalInspectionDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface JobcardVehicleDto { \n id?: number;\n workshopId?: number;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n wtyStartDate?: string;\n customerCompanyId?: number;\n annualInspectionDate?: string;\n tachometerDate?: string;\n isActive?: boolean;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vehicleNote?: string;\n customerCompanyUser?: CustomerCompanyUserDto;\n ownerId?: string;\n invoiceDate?: string;\n appointments?: Array;\n stockNumber?: string;\n inspections?: Array;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BrandDto } from './brandDto';\n\n\nexport interface ModelDto { \n id?: number;\n name?: string;\n brand?: BrandDto;\n}\n\n","export * from './appointmentDto';\nexport * from './appointmentSignatureDto';\nexport * from './appointmentStatusDto';\nexport * from './asistResponseDto';\nexport * from './azureTokenDto';\nexport * from './brandDto';\nexport * from './checkListResultAttachmentDto';\nexport * from './checkListResultDto';\nexport * from './checklistDamageDto';\nexport * from './checklistInstanceDto';\nexport * from './consumableDto';\nexport * from './cpdContactDetailsDto';\nexport * from './customerCompanyDto';\nexport * from './customerCompanyUserDto';\nexport * from './feedbackAttachmentDto';\nexport * from './feedbackResultDto';\nexport * from './jobcardAttachmentDto';\nexport * from './jobcardDto';\nexport * from './jobcardItemAttachmentDto';\nexport * from './jobcardItemCustomerStatusDto';\nexport * from './jobcardItemDeletedDto';\nexport * from './jobcardItemDto';\nexport * from './jobcardItemExtraOperationDto';\nexport * from './jobcardItemMobileDto';\nexport * from './jobcardItemOperation';\nexport * from './jobcardItemOperationConsumableDto';\nexport * from './jobcardItemOperationDto';\nexport * from './jobcardItemOperationPart';\nexport * from './jobcardItemOperationPartDto';\nexport * from './jobcardItemOperationPartLocation';\nexport * from './jobcardItemOperationPartLocationDto';\nexport * from './jobcardItemSpellDto';\nexport * from './jobcardItemStatusDto';\nexport * from './jobcardItemTechnicianDto';\nexport * from './jobcardPartsBacklogDto';\nexport * from './jobcardTravelDto';\nexport * from './jobcardVehicleDto';\nexport * from './modelDto';\nexport * from './mpDeltaDto';\nexport * from './mpInformationDto';\nexport * from './mpKitCompositionDto';\nexport * from './onHoldReasonDto';\nexport * from './openingDay';\nexport * from './part';\nexport * from './partDto';\nexport * from './paymentSubSubTypeDto';\nexport * from './paymentSubTypeDto';\nexport * from './paymentTypeDto';\nexport * from './period';\nexport * from './priorityTypeDto';\nexport * from './roleDto';\nexport * from './shiftDto';\nexport * from './shiftPeriodDto';\nexport * from './skillDto';\nexport * from './splitDto';\nexport * from './unitStatusDto';\nexport * from './vehicleCourtesyBookingDto';\nexport * from './vehicleCourtesyDto';\nexport * from './vehicleLegalInspectionDto';\nexport * from './warrantyClaimDataDto';\nexport * from './warrantyTypeDto';\nexport * from './workshopBayDto';\nexport * from './workshopDiscountDto';\nexport * from './workshopDto';\nexport * from './workshopSalesOrganizationDto';\nexport * from './workshopUserDto';\nexport * from './workshopUserTravelPositionDto';\nexport * from './workshopUserUnavailabilityDto';\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpDeltaDto { \n unit?: string;\n value?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpDeltaDto } from './mpDeltaDto';\n\n\nexport interface MpInformationDto { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpKitCompositionDto { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReasonDto { \n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Period } from './period';\n\n\nexport interface OpeningDay { \n weekday?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Part { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n code?: string;\n description?: string;\n quantity?: number;\n manufacturer?: string;\n price?: number;\n partSuperseedingId?: number;\n isKit?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { MpKitCompositionDto } from './mpKitCompositionDto';\n\n\nexport interface PartDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partSuperseedingId?: number;\n partDetailId?: number;\n quantity?: number;\n booking?: string;\n visitDate?: string;\n vehPlate?: string;\n customer?: string;\n activity?: string;\n manufacturer?: string;\n isKit?: boolean;\n kitParts?: Array;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n jobcardItemOperationPartLocationList?: Array;\n price?: number;\n homeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PaymentSubSubTypeDto { \n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n weight?: number;\n isVisible?: boolean;\n paymentSubTypeId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\n\n\nexport interface PaymentSubTypeDto { \n id?: number;\n description?: string;\n type?: string;\n code?: string;\n weight?: number;\n paymentTypeId?: number;\n isVisible?: boolean;\n categoryType?: string;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\n\n\nexport interface PaymentTypeDto { \n id?: number;\n isVisible?: boolean;\n workshopId?: number;\n type?: string;\n weight?: number;\n paymentSubTypes?: Array;\n code?: string;\n name?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Period { \n id?: number;\n start?: string;\n end?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PriorityTypeDto { \n id?: number;\n description?: string;\n status?: string;\n icon?: string;\n defaultPriority?: boolean;\n workshopId?: number;\n type?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RoleDto { \n id?: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriodDto } from './shiftPeriodDto';\n\n\nexport interface ShiftDto { \n id?: number;\n description?: string;\n type?: string;\n startDate?: string;\n endDate?: string;\n userShiftId?: number;\n targetTime?: number;\n dmsId?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriodDto { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SkillDto { \n id?: number;\n description?: string;\n translationKey?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SplitDto { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n pricingId?: number;\n jobcardItemId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnitStatusDto { \n id?: number;\n date?: string;\n unitDown?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface VehicleCourtesyBookingDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n reason?: string;\n vehicleCourtesy?: VehicleCourtesyDto;\n appointment?: AppointmentDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { WorkshopDto } from './workshopDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface VehicleCourtesyDto { \n id?: number;\n plate?: string;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n mileage?: number;\n dmsId?: string;\n workshop?: WorkshopDto;\n vehicleNote?: string;\n status?: string;\n appointments?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleLegalInspectionDto { \n id?: number;\n label?: string;\n code?: string;\n date?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimDataDto { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyTypeDto { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface WorkshopBayDto { \n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n leadTechnician?: string;\n technicians?: Array;\n bayCode?: string;\n isActive?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDto } from './workshopDto';\n\n\nexport interface WorkshopDiscountDto { \n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n workshop?: WorkshopDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { OpeningDay } from './openingDay';\nimport { WorkshopSalesOrganizationDto } from './workshopSalesOrganizationDto';\n\n\nexport interface WorkshopDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n openingTime?: string;\n closureTime?: string;\n openingDays?: Array;\n masterWorkshopId?: number;\n workshopBayDto?: WorkshopBayDto;\n currencyCode?: string;\n cspsUserId?: string;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n workshopSalesOrganizations?: Array;\n paymentCode?: string;\n labourCost?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n enableSafetyChecklist?: boolean;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n dmsProvider?: string;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesOrganizationDto { \n id?: number;\n brandDivision?: string;\n market?: string;\n salesCode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { WorkshopDiscountDto } from './workshopDiscountDto';\nimport { SkillDto } from './skillDto';\nimport { ShiftDto } from './shiftDto';\nimport { WorkshopDto } from './workshopDto';\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { WorkshopUserUnavailabilityDto } from './workshopUserUnavailabilityDto';\n\n\nexport interface WorkshopUserDto { \n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n role?: RoleDto;\n isAdmin?: boolean;\n isActive?: boolean;\n views?: string;\n isTechnicianView?: boolean;\n deviceToken?: string;\n appVersion?: string;\n skills?: Array;\n canEditJobcard?: boolean;\n displayedName?: string;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n canSeePrice?: boolean;\n leadWorkshopBayId?: number;\n url?: string;\n isManualJobStatusOverride?: boolean;\n isAssociateUser?: boolean;\n workshopDiscountDto?: Array;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n costRate?: string;\n isAutomaticApproval?: string;\n isActivityApproval?: string;\n unavailabilities?: Array;\n workshopBays?: Array;\n shifts?: Array;\n isAssociatedWithWorkshop?: boolean;\n canSelfAssign?: boolean;\n workshopList?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserTravelPositionDto { \n id?: number;\n workshopUserId?: string;\n jobcardTravelId?: number;\n latitude?: number;\n longitude?: number;\n positionDate?: string;\n positionType?: string;\n deviceStatus?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailabilityDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n isFromDms?: boolean;\n}\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { LoginControllerService } from './api/loginController.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","export * from './loginController.service';\nimport { LoginControllerService } from './loginController.service';\nexport const APIS = [LoginControllerService];\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApplicationToken } from '../model/models';\nimport { RefreshTokenDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface LoginRequestParams {\n authorization: string;\n userId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RefreshUserRequestParams {\n authorization: string;\n applicationToken: string;\n refreshTokenDto: RefreshTokenDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcauthservice';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public login(requestParameters: LoginRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public login(requestParameters: LoginRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public login(requestParameters: LoginRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public login(requestParameters: LoginRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling login.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling login.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n if (userId !== undefined && userId !== null) {\n headers = headers.set('userId', String(userId));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/login`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public refreshUser(requestParameters: RefreshUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public refreshUser(requestParameters: RefreshUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public refreshUser(requestParameters: RefreshUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public refreshUser(requestParameters: RefreshUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling refreshUser.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling refreshUser.');\n }\n const refreshTokenDto = requestParameters.refreshTokenDto;\n if (refreshTokenDto === null || refreshTokenDto === undefined) {\n throw new Error('Required parameter refreshTokenDto was null or undefined when calling refreshUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/login/refresh`,\n refreshTokenDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ApplicationToken { \n token?: string;\n}\n\n","export * from './applicationToken';\nexport * from './refreshTokenDto';\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RefreshTokenDto { \n workshopId?: number;\n workshopSalesOrganizationId?: number;\n}\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { AppointmentEmailsService } from './api/appointmentEmails.service';\nimport { AppointmentSignaturesService } from './api/appointmentSignatures.service';\nimport { AppointmentStatusesService } from './api/appointmentStatuses.service';\nimport { AppointmentsService } from './api/appointments.service';\nimport { AzureService } from './api/azure.service';\nimport { BrandService } from './api/brand.service';\nimport { CSPSControllerService } from './api/cSPSController.service';\nimport { ChecklistDamageService } from './api/checklistDamage.service';\nimport { ChecklistInstanceService } from './api/checklistInstance.service';\nimport { ChecklistResultService } from './api/checklistResult.service';\nimport { ChecklistResultAttachmentService } from './api/checklistResultAttachment.service';\nimport { ChecklistTemplateService } from './api/checklistTemplate.service';\nimport { ClockingService } from './api/clocking.service';\nimport { CountryService } from './api/country.service';\nimport { CustomerCompanyService } from './api/customerCompany.service';\nimport { CustomerCompanyUserService } from './api/customerCompanyUser.service';\nimport { DeferredActivitiesService } from './api/deferredActivities.service';\nimport { DmsLogsService } from './api/dmsLogs.service';\nimport { EPartsService } from './api/eParts.service';\nimport { ExportInvoicePdfService } from './api/exportInvoicePdf.service';\nimport { InWorkshopControllerService } from './api/inWorkshopController.service';\nimport { JobcardService } from './api/jobcard.service';\nimport { JobcardItemService } from './api/jobcardItem.service';\nimport { JobcardItemAttachmentService } from './api/jobcardItemAttachment.service';\nimport { JobcardItemExtraOperationService } from './api/jobcardItemExtraOperation.service';\nimport { JobcardItemOperationService } from './api/jobcardItemOperation.service';\nimport { KitService } from './api/kit.service';\nimport { KpiBenchmarkControllerService } from './api/kpiBenchmarkController.service';\nimport { LanguageService } from './api/language.service';\nimport { LegalNoticeService } from './api/legalNotice.service';\nimport { MaintenanceService } from './api/maintenance.service';\nimport { ModelService } from './api/model.service';\nimport { NonProductiveActivityService } from './api/nonProductiveActivity.service';\nimport { NotificationService } from './api/notification.service';\nimport { OnHoldReasonsService } from './api/onHoldReasons.service';\nimport { OrderTypeHeaderService } from './api/orderTypeHeader.service';\nimport { OtherItemService } from './api/otherItem.service';\nimport { PartsService } from './api/parts.service';\nimport { PartsTrackerService } from './api/partsTracker.service';\nimport { PaymentTypeService } from './api/paymentType.service';\nimport { PermissionService } from './api/permission.service';\nimport { PriorityTypeService } from './api/priorityType.service';\nimport { ReleaseService } from './api/release.service';\nimport { RoleService } from './api/role.service';\nimport { UserGuideService } from './api/userGuide.service';\nimport { VehicleService } from './api/vehicle.service';\nimport { VehicleCourtesyService } from './api/vehicleCourtesy.service';\nimport { VehicleCourtesyBookingService } from './api/vehicleCourtesyBooking.service';\nimport { VehicleLegalInspectionService } from './api/vehicleLegalInspection.service';\nimport { WarrantyService } from './api/warranty.service';\nimport { WorkshopService } from './api/workshop.service';\nimport { WorkshopBayService } from './api/workshopBay.service';\nimport { WorkshopChecklistTypeService } from './api/workshopChecklistType.service';\nimport { WorkshopSalesOrganizationService } from './api/workshopSalesOrganization.service';\nimport { WorkshopUserService } from './api/workshopUser.service';\nimport { WorkshopUsersService } from './api/workshopUsers.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","export * from './appointmentEmails.service';\nimport { AppointmentEmailsService } from './appointmentEmails.service';\nexport * from './appointmentSignatures.service';\nimport { AppointmentSignaturesService } from './appointmentSignatures.service';\nexport * from './appointmentStatuses.service';\nimport { AppointmentStatusesService } from './appointmentStatuses.service';\nexport * from './appointments.service';\nimport { AppointmentsService } from './appointments.service';\nexport * from './azure.service';\nimport { AzureService } from './azure.service';\nexport * from './brand.service';\nimport { BrandService } from './brand.service';\nexport * from './cSPSController.service';\nimport { CSPSControllerService } from './cSPSController.service';\nexport * from './checklistDamage.service';\nimport { ChecklistDamageService } from './checklistDamage.service';\nexport * from './checklistInstance.service';\nimport { ChecklistInstanceService } from './checklistInstance.service';\nexport * from './checklistResult.service';\nimport { ChecklistResultService } from './checklistResult.service';\nexport * from './checklistResultAttachment.service';\nimport { ChecklistResultAttachmentService } from './checklistResultAttachment.service';\nexport * from './checklistTemplate.service';\nimport { ChecklistTemplateService } from './checklistTemplate.service';\nexport * from './clocking.service';\nimport { ClockingService } from './clocking.service';\nexport * from './country.service';\nimport { CountryService } from './country.service';\nexport * from './customerCompany.service';\nimport { CustomerCompanyService } from './customerCompany.service';\nexport * from './customerCompanyUser.service';\nimport { CustomerCompanyUserService } from './customerCompanyUser.service';\nexport * from './deferredActivities.service';\nimport { DeferredActivitiesService } from './deferredActivities.service';\nexport * from './dmsLogs.service';\nimport { DmsLogsService } from './dmsLogs.service';\nexport * from './eParts.service';\nimport { EPartsService } from './eParts.service';\nexport * from './exportInvoicePdf.service';\nimport { ExportInvoicePdfService } from './exportInvoicePdf.service';\nexport * from './inWorkshopController.service';\nimport { InWorkshopControllerService } from './inWorkshopController.service';\nexport * from './jobcard.service';\nimport { JobcardService } from './jobcard.service';\nexport * from './jobcardItem.service';\nimport { JobcardItemService } from './jobcardItem.service';\nexport * from './jobcardItemAttachment.service';\nimport { JobcardItemAttachmentService } from './jobcardItemAttachment.service';\nexport * from './jobcardItemExtraOperation.service';\nimport { JobcardItemExtraOperationService } from './jobcardItemExtraOperation.service';\nexport * from './jobcardItemOperation.service';\nimport { JobcardItemOperationService } from './jobcardItemOperation.service';\nexport * from './kit.service';\nimport { KitService } from './kit.service';\nexport * from './kpiBenchmarkController.service';\nimport { KpiBenchmarkControllerService } from './kpiBenchmarkController.service';\nexport * from './language.service';\nimport { LanguageService } from './language.service';\nexport * from './legalNotice.service';\nimport { LegalNoticeService } from './legalNotice.service';\nexport * from './maintenance.service';\nimport { MaintenanceService } from './maintenance.service';\nexport * from './model.service';\nimport { ModelService } from './model.service';\nexport * from './nonProductiveActivity.service';\nimport { NonProductiveActivityService } from './nonProductiveActivity.service';\nexport * from './notification.service';\nimport { NotificationService } from './notification.service';\nexport * from './onHoldReasons.service';\nimport { OnHoldReasonsService } from './onHoldReasons.service';\nexport * from './orderTypeHeader.service';\nimport { OrderTypeHeaderService } from './orderTypeHeader.service';\nexport * from './otherItem.service';\nimport { OtherItemService } from './otherItem.service';\nexport * from './parts.service';\nimport { PartsService } from './parts.service';\nexport * from './partsTracker.service';\nimport { PartsTrackerService } from './partsTracker.service';\nexport * from './paymentType.service';\nimport { PaymentTypeService } from './paymentType.service';\nexport * from './permission.service';\nimport { PermissionService } from './permission.service';\nexport * from './priorityType.service';\nimport { PriorityTypeService } from './priorityType.service';\nexport * from './release.service';\nimport { ReleaseService } from './release.service';\nexport * from './role.service';\nimport { RoleService } from './role.service';\nexport * from './userGuide.service';\nimport { UserGuideService } from './userGuide.service';\nexport * from './vehicle.service';\nimport { VehicleService } from './vehicle.service';\nexport * from './vehicleCourtesy.service';\nimport { VehicleCourtesyService } from './vehicleCourtesy.service';\nexport * from './vehicleCourtesyBooking.service';\nimport { VehicleCourtesyBookingService } from './vehicleCourtesyBooking.service';\nexport * from './vehicleLegalInspection.service';\nimport { VehicleLegalInspectionService } from './vehicleLegalInspection.service';\nexport * from './warranty.service';\nimport { WarrantyService } from './warranty.service';\nexport * from './workshop.service';\nimport { WorkshopService } from './workshop.service';\nexport * from './workshopBay.service';\nimport { WorkshopBayService } from './workshopBay.service';\nexport * from './workshopChecklistType.service';\nimport { WorkshopChecklistTypeService } from './workshopChecklistType.service';\nexport * from './workshopSalesOrganization.service';\nimport { WorkshopSalesOrganizationService } from './workshopSalesOrganization.service';\nexport * from './workshopUser.service';\nimport { WorkshopUserService } from './workshopUser.service';\nexport * from './workshopUsers.service';\nimport { WorkshopUsersService } from './workshopUsers.service';\nexport const APIS = [AppointmentEmailsService, AppointmentSignaturesService, AppointmentStatusesService, AppointmentsService, AzureService, BrandService, CSPSControllerService, ChecklistDamageService, ChecklistInstanceService, ChecklistResultService, ChecklistResultAttachmentService, ChecklistTemplateService, ClockingService, CountryService, CustomerCompanyService, CustomerCompanyUserService, DeferredActivitiesService, DmsLogsService, EPartsService, ExportInvoicePdfService, InWorkshopControllerService, JobcardService, JobcardItemService, JobcardItemAttachmentService, JobcardItemExtraOperationService, JobcardItemOperationService, KitService, KpiBenchmarkControllerService, LanguageService, LegalNoticeService, MaintenanceService, ModelService, NonProductiveActivityService, NotificationService, OnHoldReasonsService, OrderTypeHeaderService, OtherItemService, PartsService, PartsTrackerService, PaymentTypeService, PermissionService, PriorityTypeService, ReleaseService, RoleService, UserGuideService, VehicleService, VehicleCourtesyService, VehicleCourtesyBookingService, VehicleLegalInspectionService, WarrantyService, WorkshopService, WorkshopBayService, WorkshopChecklistTypeService, WorkshopSalesOrganizationService, WorkshopUserService, WorkshopUsersService];\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SendAppointmentMailRequestParams {\n appointmentId: number;\n emailType: 'NEGOTIATE' | 'FINAL' | 'DEFAULT';\n acceptLanguage: string;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentEmailsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendAppointmentMail(requestParameters: SendAppointmentMailRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public sendAppointmentMail(requestParameters: SendAppointmentMailRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public sendAppointmentMail(requestParameters: SendAppointmentMailRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public sendAppointmentMail(requestParameters: SendAppointmentMailRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling sendAppointmentMail.');\n }\n const emailType = requestParameters.emailType;\n if (emailType === null || emailType === undefined) {\n throw new Error('Required parameter emailType was null or undefined when calling sendAppointmentMail.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling sendAppointmentMail.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling sendAppointmentMail.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling sendAppointmentMail.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (emailType !== undefined && emailType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n emailType, 'emailType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/email/sendAppointmentMail/${encodeURIComponent(String(appointmentId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentSignatureDto } from '../model/models';\nimport { AppointmentSignatureFileDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateAppointmentSignatureRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentSignatureDto: AppointmentSignatureDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateAppointmentSignatureWithUploadRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentSignatureFileDto: AppointmentSignatureFileDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentSignatureRequestParams {\n appointmentSignatureId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentSignaturesRequestParams {\n appointmentId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateAppointmentSignatureRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentSignatureDto: AppointmentSignatureDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentSignaturesService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointmentSignature(requestParameters: CreateAppointmentSignatureRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createAppointmentSignature(requestParameters: CreateAppointmentSignatureRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentSignature(requestParameters: CreateAppointmentSignatureRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentSignature(requestParameters: CreateAppointmentSignatureRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling createAppointmentSignature.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createAppointmentSignature.');\n }\n const appointmentSignatureDto = requestParameters.appointmentSignatureDto;\n if (appointmentSignatureDto === null || appointmentSignatureDto === undefined) {\n throw new Error('Required parameter appointmentSignatureDto was null or undefined when calling createAppointmentSignature.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointment-signatures`,\n appointmentSignatureDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointmentSignatureWithUpload(requestParameters: CreateAppointmentSignatureWithUploadRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createAppointmentSignatureWithUpload(requestParameters: CreateAppointmentSignatureWithUploadRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentSignatureWithUpload(requestParameters: CreateAppointmentSignatureWithUploadRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentSignatureWithUpload(requestParameters: CreateAppointmentSignatureWithUploadRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling createAppointmentSignatureWithUpload.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createAppointmentSignatureWithUpload.');\n }\n const appointmentSignatureFileDto = requestParameters.appointmentSignatureFileDto;\n if (appointmentSignatureFileDto === null || appointmentSignatureFileDto === undefined) {\n throw new Error('Required parameter appointmentSignatureFileDto was null or undefined when calling createAppointmentSignatureWithUpload.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointment-signatures/v2`,\n appointmentSignatureFileDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentSignature(requestParameters: GetAppointmentSignatureRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAppointmentSignature(requestParameters: GetAppointmentSignatureRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentSignature(requestParameters: GetAppointmentSignatureRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentSignature(requestParameters: GetAppointmentSignatureRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentSignatureId = requestParameters.appointmentSignatureId;\n if (appointmentSignatureId === null || appointmentSignatureId === undefined) {\n throw new Error('Required parameter appointmentSignatureId was null or undefined when calling getAppointmentSignature.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentSignature.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointment-signatures/${encodeURIComponent(String(appointmentSignatureId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentSignatures(requestParameters: GetAppointmentSignaturesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentSignatures(requestParameters: GetAppointmentSignaturesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentSignatures(requestParameters: GetAppointmentSignaturesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentSignatures(requestParameters: GetAppointmentSignaturesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling getAppointmentSignatures.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentSignatures.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointment-signatures/appointment-signatures`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateAppointmentSignature(requestParameters: PartialUpdateAppointmentSignatureRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateAppointmentSignature(requestParameters: PartialUpdateAppointmentSignatureRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateAppointmentSignature(requestParameters: PartialUpdateAppointmentSignatureRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateAppointmentSignature(requestParameters: PartialUpdateAppointmentSignatureRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateAppointmentSignature.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateAppointmentSignature.');\n }\n const appointmentSignatureDto = requestParameters.appointmentSignatureDto;\n if (appointmentSignatureDto === null || appointmentSignatureDto === undefined) {\n throw new Error('Required parameter appointmentSignatureDto was null or undefined when calling partialUpdateAppointmentSignature.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/appointment-signatures/${encodeURIComponent(String(id))}`,\n appointmentSignatureDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentStatusPatchDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface PartialUpdateAppointmentStatusRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentStatusPatchDto: AppointmentStatusPatchDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentStatusesService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateAppointmentStatus(requestParameters: PartialUpdateAppointmentStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateAppointmentStatus(requestParameters: PartialUpdateAppointmentStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateAppointmentStatus(requestParameters: PartialUpdateAppointmentStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateAppointmentStatus(requestParameters: PartialUpdateAppointmentStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateAppointmentStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateAppointmentStatus.');\n }\n const appointmentStatusPatchDto = requestParameters.appointmentStatusPatchDto;\n if (appointmentStatusPatchDto === null || appointmentStatusPatchDto === undefined) {\n throw new Error('Required parameter appointmentStatusPatchDto was null or undefined when calling partialUpdateAppointmentStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/appointment-statuses/${encodeURIComponent(String(id))}`,\n appointmentStatusPatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiResponseDto } from '../model/models';\nimport { AppointmentDto } from '../model/models';\nimport { AppointmentPatchDto } from '../model/models';\nimport { AppointmentShortDto } from '../model/models';\nimport { AppointmentViewDto } from '../model/models';\nimport { BookingAppointmentDto } from '../model/models';\nimport { CustomerAppointmentDto } from '../model/models';\nimport { CustomerCompanyAppointmentCheckDto } from '../model/models';\nimport { JobcardItemShortDto } from '../model/models';\nimport { NewAppointmentDto } from '../model/models';\nimport { UpdateAppointmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateAppointmentRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n bookingAppointmentDtoCustomerAppointmentDto: BookingAppointmentDto | CustomerAppointmentDto;\n isComplete?: boolean;\n src?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentByIdRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n src?: 'web' | 'mobile';\n withDeferred?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsRequestParams {\n applicationToken: string;\n endDate: string;\n displayedJobcardStatuses: Array;\n src: 'web' | 'mobile';\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n appointmentStatuses?: Array;\n priorityTypes?: Array;\n searchAll?: boolean;\n text?: string;\n page?: number;\n size?: number;\n sortBy?: string;\n sortOrder?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetBayActivitiesByWorkshopIdRequestParams {\n workshopUserId: string;\n workshopBayId: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFutureAppointmentsCreatedFromChecklistRequestParams {\n applicationToken: string;\n customerCompanyId: number;\n vehicleId: number;\n startDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleAppointmentHistoryRequestParams {\n applicationToken: string;\n vin: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleAppointmentsRequestParams {\n vehicleId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface IsAppointmentInUseRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateAppointmentRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentPatchDto: AppointmentPatchDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveAppointmentsForWorkspaceClockingRequestParams {\n workshopId: number;\n startDate: string;\n endDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveCustomersCountByCustomerIdRequestParams {\n applicationToken: string;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveDeferredVehiclesActivitiesRequestParams {\n workshopId: number;\n vehicleId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveTechniciansAgendaRequestParams {\n startDate: string;\n endDate: string;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n page?: number;\n size?: number;\n sortBy?: string;\n sortOrder?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveAppointmentsBookingPageRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveAppointmentsCountByVehicleIdRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n vehicleId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n bookingAppointmentDtoCustomerAppointmentDto: BookingAppointmentDto | CustomerAppointmentDto;\n isComplete?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentForMobileRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n updateAppointmentDto: UpdateAppointmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentOpenedRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentPatchDto: AppointmentPatchDto;\n src?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpsertOrderRequestParams {\n applicationToken: string;\n acceptLanguage: string;\n id: number;\n type: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n date?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointment(requestParameters: CreateAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createAppointment(requestParameters: CreateAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointment(requestParameters: CreateAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointment(requestParameters: CreateAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling createAppointment.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createAppointment.');\n }\n const bookingAppointmentDtoCustomerAppointmentDto = requestParameters.bookingAppointmentDtoCustomerAppointmentDto;\n if (bookingAppointmentDtoCustomerAppointmentDto === null || bookingAppointmentDtoCustomerAppointmentDto === undefined) {\n throw new Error('Required parameter bookingAppointmentDtoCustomerAppointmentDto was null or undefined when calling createAppointment.');\n }\n const isComplete = requestParameters.isComplete;\n const src = requestParameters.src;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isComplete !== undefined && isComplete !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isComplete, 'isComplete');\n }\n if (src !== undefined && src !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n src, 'src');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointments`,\n bookingAppointmentDtoCustomerAppointmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentById(requestParameters: GetAppointmentByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAppointmentById(requestParameters: GetAppointmentByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentById(requestParameters: GetAppointmentByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentById(requestParameters: GetAppointmentByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getAppointmentById.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getAppointmentById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentById.');\n }\n const src = requestParameters.src;\n const withDeferred = requestParameters.withDeferred;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (src !== undefined && src !== null) {\n headers = headers.set('src', String(src));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointments(requestParameters: GetAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointments(requestParameters: GetAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointments(requestParameters: GetAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointments(requestParameters: GetAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getAppointments.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getAppointments.');\n }\n const displayedJobcardStatuses = requestParameters.displayedJobcardStatuses;\n if (displayedJobcardStatuses === null || displayedJobcardStatuses === undefined) {\n throw new Error('Required parameter displayedJobcardStatuses was null or undefined when calling getAppointments.');\n }\n const src = requestParameters.src;\n if (src === null || src === undefined) {\n throw new Error('Required parameter src was null or undefined when calling getAppointments.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointments.');\n }\n const startDate = requestParameters.startDate;\n const appointmentStatuses = requestParameters.appointmentStatuses;\n const priorityTypes = requestParameters.priorityTypes;\n const searchAll = requestParameters.searchAll;\n const text = requestParameters.text;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (displayedJobcardStatuses) {\n displayedJobcardStatuses.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'displayedJobcardStatuses');\n })\n }\n if (appointmentStatuses) {\n appointmentStatuses.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'appointmentStatuses');\n })\n }\n if (priorityTypes) {\n priorityTypes.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'priorityTypes');\n })\n }\n if (searchAll !== undefined && searchAll !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchAll, 'searchAll');\n }\n if (text !== undefined && text !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n text, 'text');\n }\n if (src !== undefined && src !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n src, 'src');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBayActivitiesByWorkshopId(requestParameters: GetBayActivitiesByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getBayActivitiesByWorkshopId(requestParameters: GetBayActivitiesByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getBayActivitiesByWorkshopId(requestParameters: GetBayActivitiesByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getBayActivitiesByWorkshopId(requestParameters: GetBayActivitiesByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopUserId = requestParameters.workshopUserId;\n if (workshopUserId === null || workshopUserId === undefined) {\n throw new Error('Required parameter workshopUserId was null or undefined when calling getBayActivitiesByWorkshopId.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n if (workshopBayId === null || workshopBayId === undefined) {\n throw new Error('Required parameter workshopBayId was null or undefined when calling getBayActivitiesByWorkshopId.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getBayActivitiesByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getBayActivitiesByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(workshopUserId))}/bay-activities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFutureAppointmentsCreatedFromChecklist(requestParameters: GetFutureAppointmentsCreatedFromChecklistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getFutureAppointmentsCreatedFromChecklist(requestParameters: GetFutureAppointmentsCreatedFromChecklistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getFutureAppointmentsCreatedFromChecklist(requestParameters: GetFutureAppointmentsCreatedFromChecklistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getFutureAppointmentsCreatedFromChecklist(requestParameters: GetFutureAppointmentsCreatedFromChecklistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const customerCompanyId = requestParameters.customerCompanyId;\n if (customerCompanyId === null || customerCompanyId === undefined) {\n throw new Error('Required parameter customerCompanyId was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const vehicleId = requestParameters.vehicleId;\n if (vehicleId === null || vehicleId === undefined) {\n throw new Error('Required parameter vehicleId was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/from-checklist`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleAppointmentHistory(requestParameters: GetVehicleAppointmentHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getVehicleAppointmentHistory(requestParameters: GetVehicleAppointmentHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getVehicleAppointmentHistory(requestParameters: GetVehicleAppointmentHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getVehicleAppointmentHistory(requestParameters: GetVehicleAppointmentHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getVehicleAppointmentHistory.');\n }\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getVehicleAppointmentHistory.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehicleAppointmentHistory.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/vehicle-jobcard-history`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleAppointments(requestParameters: GetVehicleAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleAppointments(requestParameters: GetVehicleAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicleAppointments(requestParameters: GetVehicleAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicleAppointments(requestParameters: GetVehicleAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vehicleId = requestParameters.vehicleId;\n if (vehicleId === null || vehicleId === undefined) {\n throw new Error('Required parameter vehicleId was null or undefined when calling getVehicleAppointments.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehicleAppointments.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/vehicle-appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public isAppointmentInUse(requestParameters: IsAppointmentInUseRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public isAppointmentInUse(requestParameters: IsAppointmentInUseRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public isAppointmentInUse(requestParameters: IsAppointmentInUseRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public isAppointmentInUse(requestParameters: IsAppointmentInUseRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling isAppointmentInUse.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling isAppointmentInUse.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling isAppointmentInUse.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}/used`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateAppointment(requestParameters: PartialUpdateAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateAppointment(requestParameters: PartialUpdateAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateAppointment(requestParameters: PartialUpdateAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateAppointment(requestParameters: PartialUpdateAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateAppointment.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling partialUpdateAppointment.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateAppointment.');\n }\n const appointmentPatchDto = requestParameters.appointmentPatchDto;\n if (appointmentPatchDto === null || appointmentPatchDto === undefined) {\n throw new Error('Required parameter appointmentPatchDto was null or undefined when calling partialUpdateAppointment.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}`,\n appointmentPatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveAppointmentsForWorkspaceClocking(requestParameters: RetrieveAppointmentsForWorkspaceClockingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retrieveAppointmentsForWorkspaceClocking(requestParameters: RetrieveAppointmentsForWorkspaceClockingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retrieveAppointmentsForWorkspaceClocking(requestParameters: RetrieveAppointmentsForWorkspaceClockingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retrieveAppointmentsForWorkspaceClocking(requestParameters: RetrieveAppointmentsForWorkspaceClockingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retrieveAppointmentsForWorkspaceClocking.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retrieveAppointmentsForWorkspaceClocking.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retrieveAppointmentsForWorkspaceClocking.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrieveAppointmentsForWorkspaceClocking.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/workshop/${encodeURIComponent(String(workshopId))}/workspace-clocking`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveCustomersCountByCustomerId(requestParameters: RetrieveCustomersCountByCustomerIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retrieveCustomersCountByCustomerId(requestParameters: RetrieveCustomersCountByCustomerIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveCustomersCountByCustomerId(requestParameters: RetrieveCustomersCountByCustomerIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveCustomersCountByCustomerId(requestParameters: RetrieveCustomersCountByCustomerIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retrieveCustomersCountByCustomerId.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling retrieveCustomersCountByCustomerId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrieveCustomersCountByCustomerId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/customer-company/${encodeURIComponent(String(id))}/has-appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveDeferredVehiclesActivities(requestParameters: RetrieveDeferredVehiclesActivitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveDeferredVehiclesActivities(requestParameters: RetrieveDeferredVehiclesActivitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveDeferredVehiclesActivities(requestParameters: RetrieveDeferredVehiclesActivitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveDeferredVehiclesActivities(requestParameters: RetrieveDeferredVehiclesActivitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retrieveDeferredVehiclesActivities.');\n }\n const vehicleId = requestParameters.vehicleId;\n if (vehicleId === null || vehicleId === undefined) {\n throw new Error('Required parameter vehicleId was null or undefined when calling retrieveDeferredVehiclesActivities.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrieveDeferredVehiclesActivities.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/jobcardItems/deferred`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveTechniciansAgenda(requestParameters: RetrieveTechniciansAgendaRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveTechniciansAgenda(requestParameters: RetrieveTechniciansAgendaRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveTechniciansAgenda(requestParameters: RetrieveTechniciansAgendaRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveTechniciansAgenda(requestParameters: RetrieveTechniciansAgendaRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retrieveTechniciansAgenda.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retrieveTechniciansAgenda.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retrieveTechniciansAgenda.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrieveTechniciansAgenda.');\n }\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/technicians-appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveAppointmentsBookingPage(requestParameters: RetriveAppointmentsBookingPageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveAppointmentsBookingPage(requestParameters: RetriveAppointmentsBookingPageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveAppointmentsBookingPage(requestParameters: RetriveAppointmentsBookingPageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveAppointmentsBookingPage(requestParameters: RetriveAppointmentsBookingPageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retriveAppointmentsBookingPage.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveAppointmentsBookingPage.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/booking/appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveAppointmentsCountByVehicleId(requestParameters: RetriveAppointmentsCountByVehicleIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public retriveAppointmentsCountByVehicleId(requestParameters: RetriveAppointmentsCountByVehicleIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveAppointmentsCountByVehicleId(requestParameters: RetriveAppointmentsCountByVehicleIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveAppointmentsCountByVehicleId(requestParameters: RetriveAppointmentsCountByVehicleIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retriveAppointmentsCountByVehicleId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveAppointmentsCountByVehicleId.');\n }\n const vehicleId = requestParameters.vehicleId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/vehicle-in-use`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointment(requestParameters: UpdateAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointment(requestParameters: UpdateAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointment(requestParameters: UpdateAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointment(requestParameters: UpdateAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointment.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateAppointment.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateAppointment.');\n }\n const bookingAppointmentDtoCustomerAppointmentDto = requestParameters.bookingAppointmentDtoCustomerAppointmentDto;\n if (bookingAppointmentDtoCustomerAppointmentDto === null || bookingAppointmentDtoCustomerAppointmentDto === undefined) {\n throw new Error('Required parameter bookingAppointmentDtoCustomerAppointmentDto was null or undefined when calling updateAppointment.');\n }\n const isComplete = requestParameters.isComplete;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isComplete !== undefined && isComplete !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isComplete, 'isComplete');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}`,\n bookingAppointmentDtoCustomerAppointmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentForMobile(requestParameters: UpdateAppointmentForMobileRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateAppointmentForMobile(requestParameters: UpdateAppointmentForMobileRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateAppointmentForMobile(requestParameters: UpdateAppointmentForMobileRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateAppointmentForMobile(requestParameters: UpdateAppointmentForMobileRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentForMobile.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateAppointmentForMobile.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateAppointmentForMobile.');\n }\n const updateAppointmentDto = requestParameters.updateAppointmentDto;\n if (updateAppointmentDto === null || updateAppointmentDto === undefined) {\n throw new Error('Required parameter updateAppointmentDto was null or undefined when calling updateAppointmentForMobile.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}/mobile`,\n updateAppointmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentOpened(requestParameters: UpdateAppointmentOpenedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentOpened(requestParameters: UpdateAppointmentOpenedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentOpened(requestParameters: UpdateAppointmentOpenedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentOpened(requestParameters: UpdateAppointmentOpenedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentOpened.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateAppointmentOpened.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateAppointmentOpened.');\n }\n const appointmentPatchDto = requestParameters.appointmentPatchDto;\n if (appointmentPatchDto === null || appointmentPatchDto === undefined) {\n throw new Error('Required parameter appointmentPatchDto was null or undefined when calling updateAppointmentOpened.');\n }\n const src = requestParameters.src;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (src !== undefined && src !== null) {\n headers = headers.set('src', String(src));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}/is-appointment-opened`,\n appointmentPatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public upsertOrder(requestParameters: UpsertOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public upsertOrder(requestParameters: UpsertOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public upsertOrder(requestParameters: UpsertOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public upsertOrder(requestParameters: UpsertOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling upsertOrder.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling upsertOrder.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling upsertOrder.');\n }\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling upsertOrder.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling upsertOrder.');\n }\n const date = requestParameters.date;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n if (date !== undefined && date !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n date, 'date');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}/order`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AzureTokenDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAzureSasTokenRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AzureService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAzureSasToken(requestParameters: GetAzureSasTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAzureSasToken.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/azure-token`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { BrandDto } from '../model/models';\nimport { BrandPatchDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetBrandByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetBrandsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n name?: string;\n customerId?: number;\n vehicleId?: number;\n sortBy?: 'NAME' | 'ID' | 'ISVECO';\n sortOrder?: string;\n page?: number;\n size?: number;\n filterBy?: string;\n filterValue?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateBrandRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n brandPatchDto: BrandPatchDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrandService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBrandById(requestParameters: GetBrandByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getBrandById(requestParameters: GetBrandByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getBrandById(requestParameters: GetBrandByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getBrandById(requestParameters: GetBrandByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getBrandById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getBrandById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getBrandById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/brands/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBrands(requestParameters: GetBrandsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrands(requestParameters: GetBrandsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBrands(requestParameters: GetBrandsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBrands(requestParameters: GetBrandsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getBrands.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getBrands.');\n }\n const name = requestParameters.name;\n const customerId = requestParameters.customerId;\n const vehicleId = requestParameters.vehicleId;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/brands`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateBrand(requestParameters: PartialUpdateBrandRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateBrand(requestParameters: PartialUpdateBrandRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateBrand(requestParameters: PartialUpdateBrandRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateBrand(requestParameters: PartialUpdateBrandRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling partialUpdateBrand.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateBrand.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateBrand.');\n }\n const brandPatchDto = requestParameters.brandPatchDto;\n if (brandPatchDto === null || brandPatchDto === undefined) {\n throw new Error('Required parameter brandPatchDto was null or undefined when calling partialUpdateBrand.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/brands/${encodeURIComponent(String(id))}`,\n brandPatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CspsPartAvailabilityDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPartsAvailabilityInCspsRequestParams {\n partsCode: Array;\n userId: string;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CSPSControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsAvailabilityInCsps(requestParameters: GetPartsAvailabilityInCspsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsAvailabilityInCsps(requestParameters: GetPartsAvailabilityInCspsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsAvailabilityInCsps(requestParameters: GetPartsAvailabilityInCspsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsAvailabilityInCsps(requestParameters: GetPartsAvailabilityInCspsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const partsCode = requestParameters.partsCode;\n if (partsCode === null || partsCode === undefined) {\n throw new Error('Required parameter partsCode was null or undefined when calling getPartsAvailabilityInCsps.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getPartsAvailabilityInCsps.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getPartsAvailabilityInCsps.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPartsAvailabilityInCsps.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (partsCode) {\n partsCode.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'partsCode');\n })\n }\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/csps/parts/availability`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ChecklistDamageDto } from '../model/models';\nimport { ChecklistDamagePatchDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateChecklistDamageRequestParams {\n appointmentId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checklistDamageDto: ChecklistDamageDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateChecklistDamageRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checklistDamagePatchDto: ChecklistDamagePatchDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecklistDamageService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistDamage(requestParameters: CreateChecklistDamageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createChecklistDamage(requestParameters: CreateChecklistDamageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistDamage(requestParameters: CreateChecklistDamageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistDamage(requestParameters: CreateChecklistDamageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling createChecklistDamage.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createChecklistDamage.');\n }\n const checklistDamageDto = requestParameters.checklistDamageDto;\n if (checklistDamageDto === null || checklistDamageDto === undefined) {\n throw new Error('Required parameter checklistDamageDto was null or undefined when calling createChecklistDamage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/checklist-damages`,\n checklistDamageDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateChecklistDamage(requestParameters: PartialUpdateChecklistDamageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateChecklistDamage(requestParameters: PartialUpdateChecklistDamageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateChecklistDamage(requestParameters: PartialUpdateChecklistDamageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateChecklistDamage(requestParameters: PartialUpdateChecklistDamageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateChecklistDamage.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateChecklistDamage.');\n }\n const checklistDamagePatchDto = requestParameters.checklistDamagePatchDto;\n if (checklistDamagePatchDto === null || checklistDamagePatchDto === undefined) {\n throw new Error('Required parameter checklistDamagePatchDto was null or undefined when calling partialUpdateChecklistDamage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/checklist-damages/${encodeURIComponent(String(id))}`,\n checklistDamagePatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ChecklistInstanceDto } from '../model/models';\nimport { ChecklistInstancePatchDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateChecklistInstanceRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n checklistInstanceDto: Array;\n jobcardItemId?: number;\n appointmentId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteChecklistInstanceRequestParams {\n id: number;\n version: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateChecklistInstanceRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checklistInstancePatchDto: ChecklistInstancePatchDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecklistInstanceService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistInstance(requestParameters: CreateChecklistInstanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistInstance(requestParameters: CreateChecklistInstanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createChecklistInstance(requestParameters: CreateChecklistInstanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createChecklistInstance(requestParameters: CreateChecklistInstanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createChecklistInstance.');\n }\n const checklistInstanceDto = requestParameters.checklistInstanceDto;\n if (checklistInstanceDto === null || checklistInstanceDto === undefined) {\n throw new Error('Required parameter checklistInstanceDto was null or undefined when calling createChecklistInstance.');\n }\n const jobcardItemId = requestParameters.jobcardItemId;\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardItemId !== undefined && jobcardItemId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardItemId, 'jobcardItemId');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/checklist-instances`,\n checklistInstanceDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteChecklistInstance(requestParameters: DeleteChecklistInstanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteChecklistInstance(requestParameters: DeleteChecklistInstanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteChecklistInstance(requestParameters: DeleteChecklistInstanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteChecklistInstance(requestParameters: DeleteChecklistInstanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteChecklistInstance.');\n }\n const version = requestParameters.version;\n if (version === null || version === undefined) {\n throw new Error('Required parameter version was null or undefined when calling deleteChecklistInstance.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteChecklistInstance.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (version !== undefined && version !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n version, 'version');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/checklist-instances/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateChecklistInstance(requestParameters: PartialUpdateChecklistInstanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateChecklistInstance(requestParameters: PartialUpdateChecklistInstanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateChecklistInstance(requestParameters: PartialUpdateChecklistInstanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateChecklistInstance(requestParameters: PartialUpdateChecklistInstanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateChecklistInstance.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateChecklistInstance.');\n }\n const checklistInstancePatchDto = requestParameters.checklistInstancePatchDto;\n if (checklistInstancePatchDto === null || checklistInstancePatchDto === undefined) {\n throw new Error('Required parameter checklistInstancePatchDto was null or undefined when calling partialUpdateChecklistInstance.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/checklist-instances/${encodeURIComponent(String(id))}`,\n checklistInstancePatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CheckListResultDto } from '../model/models';\nimport { CheckListResultPatchDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateChecklistResultRequestParams {\n checklistInstanceId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checkListResultDto: CheckListResultDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateCheckListResultRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checkListResultPatchDto: CheckListResultPatchDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecklistResultService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistResult(requestParameters: CreateChecklistResultRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createChecklistResult(requestParameters: CreateChecklistResultRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistResult(requestParameters: CreateChecklistResultRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistResult(requestParameters: CreateChecklistResultRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const checklistInstanceId = requestParameters.checklistInstanceId;\n if (checklistInstanceId === null || checklistInstanceId === undefined) {\n throw new Error('Required parameter checklistInstanceId was null or undefined when calling createChecklistResult.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createChecklistResult.');\n }\n const checkListResultDto = requestParameters.checkListResultDto;\n if (checkListResultDto === null || checkListResultDto === undefined) {\n throw new Error('Required parameter checkListResultDto was null or undefined when calling createChecklistResult.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (checklistInstanceId !== undefined && checklistInstanceId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n checklistInstanceId, 'checklistInstanceId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/checklist-results`,\n checkListResultDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateCheckListResult(requestParameters: PartialUpdateCheckListResultRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateCheckListResult(requestParameters: PartialUpdateCheckListResultRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateCheckListResult(requestParameters: PartialUpdateCheckListResultRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateCheckListResult(requestParameters: PartialUpdateCheckListResultRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateCheckListResult.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateCheckListResult.');\n }\n const checkListResultPatchDto = requestParameters.checkListResultPatchDto;\n if (checkListResultPatchDto === null || checkListResultPatchDto === undefined) {\n throw new Error('Required parameter checkListResultPatchDto was null or undefined when calling partialUpdateCheckListResult.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/checklist-results/${encodeURIComponent(String(id))}`,\n checkListResultPatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CheckListResultAttachmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateChecklistResultAttachmentRequestParams {\n checkListResultId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checkListResultAttachmentDto: CheckListResultAttachmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteChecklistResultAttachmentRequestParams {\n id: number;\n version: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecklistResultAttachmentService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistResultAttachment(requestParameters: CreateChecklistResultAttachmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createChecklistResultAttachment(requestParameters: CreateChecklistResultAttachmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistResultAttachment(requestParameters: CreateChecklistResultAttachmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistResultAttachment(requestParameters: CreateChecklistResultAttachmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const checkListResultId = requestParameters.checkListResultId;\n if (checkListResultId === null || checkListResultId === undefined) {\n throw new Error('Required parameter checkListResultId was null or undefined when calling createChecklistResultAttachment.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createChecklistResultAttachment.');\n }\n const checkListResultAttachmentDto = requestParameters.checkListResultAttachmentDto;\n if (checkListResultAttachmentDto === null || checkListResultAttachmentDto === undefined) {\n throw new Error('Required parameter checkListResultAttachmentDto was null or undefined when calling createChecklistResultAttachment.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (checkListResultId !== undefined && checkListResultId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n checkListResultId, 'checkListResultId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/checklist-result-attachments`,\n checkListResultAttachmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteChecklistResultAttachment(requestParameters: DeleteChecklistResultAttachmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteChecklistResultAttachment(requestParameters: DeleteChecklistResultAttachmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteChecklistResultAttachment(requestParameters: DeleteChecklistResultAttachmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteChecklistResultAttachment(requestParameters: DeleteChecklistResultAttachmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteChecklistResultAttachment.');\n }\n const version = requestParameters.version;\n if (version === null || version === undefined) {\n throw new Error('Required parameter version was null or undefined when calling deleteChecklistResultAttachment.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteChecklistResultAttachment.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (version !== undefined && version !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n version, 'version');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/checklist-result-attachments/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ChecklistTemplateDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetChecklistTemplateRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetChecklistTemplatesRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n type?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecklistTemplateService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getChecklistTemplate.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getChecklistTemplate.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getChecklistTemplate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-templates/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getChecklistTemplates.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getChecklistTemplates.');\n }\n const type = requestParameters.type;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-templates`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemStatusDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateClockingRequestParams {\n applicationToken: string;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemStatusDto: JobcardItemStatusDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetJobcardItemStatusClockingErrorsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n page?: number;\n size?: number;\n sortBy?: string;\n sortOrder?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateClockingRequestParams {\n id: number;\n workshopId: number;\n userId: string;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemStatusDto: JobcardItemStatusDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClockingService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createClocking(requestParameters: CreateClockingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createClocking(requestParameters: CreateClockingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createClocking(requestParameters: CreateClockingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createClocking(requestParameters: CreateClockingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling createClocking.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling createClocking.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createClocking.');\n }\n const jobcardItemStatusDto = requestParameters.jobcardItemStatusDto;\n if (jobcardItemStatusDto === null || jobcardItemStatusDto === undefined) {\n throw new Error('Required parameter jobcardItemStatusDto was null or undefined when calling createClocking.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/clockings`,\n jobcardItemStatusDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getJobcardItemStatusClockingErrors(requestParameters: GetJobcardItemStatusClockingErrorsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getJobcardItemStatusClockingErrors(requestParameters: GetJobcardItemStatusClockingErrorsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getJobcardItemStatusClockingErrors(requestParameters: GetJobcardItemStatusClockingErrorsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getJobcardItemStatusClockingErrors(requestParameters: GetJobcardItemStatusClockingErrorsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getJobcardItemStatusClockingErrors.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getJobcardItemStatusClockingErrors.');\n }\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/clockingErrors/workshop/${encodeURIComponent(String(workshopId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateClocking(requestParameters: UpdateClockingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateClocking(requestParameters: UpdateClockingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateClocking(requestParameters: UpdateClockingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateClocking(requestParameters: UpdateClockingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateClocking.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateClocking.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateClocking.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling updateClocking.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateClocking.');\n }\n const jobcardItemStatusDto = requestParameters.jobcardItemStatusDto;\n if (jobcardItemStatusDto === null || jobcardItemStatusDto === undefined) {\n throw new Error('Required parameter jobcardItemStatusDto was null or undefined when calling updateClocking.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/clockings/${encodeURIComponent(String(id))}/workshop/${encodeURIComponent(String(workshopId))}/user/${encodeURIComponent(String(userId))}`,\n jobcardItemStatusDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CountryDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAllCountriesRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CountryService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllCountries(requestParameters: GetAllCountriesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllCountries(requestParameters: GetAllCountriesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllCountries(requestParameters: GetAllCountriesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllCountries(requestParameters: GetAllCountriesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAllCountries.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/countries`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CustomerCompanyDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetCustomerCompaniesRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n isActive?: boolean;\n dmsId?: string;\n name?: string;\n sortBy?: 'NAME' | 'DMS_ID' | 'COUNTRY' | 'ZIPCODE' | 'CITY';\n sortOrder?: string;\n page?: number;\n size?: number;\n filterBy?: string;\n filterValue?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomerCompanyByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerCompanyService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanies(requestParameters: GetCustomerCompaniesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanies(requestParameters: GetCustomerCompaniesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerCompanies(requestParameters: GetCustomerCompaniesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerCompanies(requestParameters: GetCustomerCompaniesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getCustomerCompanies.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getCustomerCompanies.');\n }\n const isActive = requestParameters.isActive;\n const dmsId = requestParameters.dmsId;\n const name = requestParameters.name;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isActive !== undefined && isActive !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isActive, 'isActive');\n }\n if (dmsId !== undefined && dmsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsId, 'dmsId');\n }\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-companies`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getCustomerCompanyById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getCustomerCompanyById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getCustomerCompanyById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-companies/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CustomerCompanyUserDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetCustomerCompanyUsersRequestParams {\n workshopId: number;\n customerId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerCompanyUserService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanyUsers(requestParameters: GetCustomerCompanyUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyUsers(requestParameters: GetCustomerCompanyUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerCompanyUsers(requestParameters: GetCustomerCompanyUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerCompanyUsers(requestParameters: GetCustomerCompanyUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getCustomerCompanyUsers.');\n }\n const customerId = requestParameters.customerId;\n if (customerId === null || customerId === undefined) {\n throw new Error('Required parameter customerId was null or undefined when calling getCustomerCompanyUsers.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getCustomerCompanyUsers.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/customer-company-users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemDeferredDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface DeleteDeferActivityRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemDeferredDto: JobcardItemDeferredDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeferredActivitiesService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteDeferActivity(requestParameters: DeleteDeferActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteDeferActivity(requestParameters: DeleteDeferActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteDeferActivity(requestParameters: DeleteDeferActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteDeferActivity(requestParameters: DeleteDeferActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteDeferActivity.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteDeferActivity.');\n }\n const jobcardItemDeferredDto = requestParameters.jobcardItemDeferredDto;\n if (jobcardItemDeferredDto === null || jobcardItemDeferredDto === undefined) {\n throw new Error('Required parameter jobcardItemDeferredDto was null or undefined when calling deleteDeferActivity.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/defer-activity/delete/${encodeURIComponent(String(id))}`,\n jobcardItemDeferredDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { VehicleLegalInspectionDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetVehicleInspectionRequestParams {\n vehicleId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DmsLogsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleInspection(requestParameters: GetVehicleInspectionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleInspection(requestParameters: GetVehicleInspectionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicleInspection(requestParameters: GetVehicleInspectionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicleInspection(requestParameters: GetVehicleInspectionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vehicleId = requestParameters.vehicleId;\n if (vehicleId === null || vehicleId === undefined) {\n throw new Error('Required parameter vehicleId was null or undefined when calling getVehicleInspection.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehicleInspection.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dms/vehicle-inspection-dates`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { EPartsMarketMappingDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetEPartMarketMappingsRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EPartsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getEPartMarketMappings(requestParameters: GetEPartMarketMappingsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEPartMarketMappings(requestParameters: GetEPartMarketMappingsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getEPartMarketMappings(requestParameters: GetEPartMarketMappingsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getEPartMarketMappings(requestParameters: GetEPartMarketMappingsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getEPartMarketMappings.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/eparts/market-mappings`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveAppoinmentPdfExportRequestParams {\n applicationToken: string;\n acceptLanguage: string;\n pdfType: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExportInvoicePdfService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveAppoinmentPdfExport(requestParameters: RetriveAppoinmentPdfExportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable;\n public retriveAppoinmentPdfExport(requestParameters: RetriveAppoinmentPdfExportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable>;\n public retriveAppoinmentPdfExport(requestParameters: RetriveAppoinmentPdfExportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable>;\n public retriveAppoinmentPdfExport(requestParameters: RetriveAppoinmentPdfExportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/pdf'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retriveAppoinmentPdfExport.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling retriveAppoinmentPdfExport.');\n }\n const pdfType = requestParameters.pdfType;\n if (pdfType === null || pdfType === undefined) {\n throw new Error('Required parameter pdfType was null or undefined when calling retriveAppoinmentPdfExport.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveAppoinmentPdfExport.');\n }\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (pdfType !== undefined && pdfType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pdfType, 'pdfType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/pdf'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/pdf-export`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopInStatus } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetInWorkshopStatusRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InWorkshopControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInWorkshopStatus(requestParameters: GetInWorkshopStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getInWorkshopStatus(requestParameters: GetInWorkshopStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getInWorkshopStatus(requestParameters: GetInWorkshopStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getInWorkshopStatus(requestParameters: GetInWorkshopStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getInWorkshopStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getInWorkshopStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/inworkshop/status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardPatchDto } from '../model/models';\nimport { JobcardTravelDto } from '../model/models';\nimport { UnitStatusDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface PartialUpdateJobcardRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardPatchDto: JobcardPatchDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateUnitStatusRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n unitStatusDto: UnitStatusDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveJobcardTravelRequestParams {\n applicationToken: string;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardTravelDto: JobcardTravelDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateJobcard(requestParameters: PartialUpdateJobcardRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateJobcard(requestParameters: PartialUpdateJobcardRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateJobcard(requestParameters: PartialUpdateJobcardRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateJobcard(requestParameters: PartialUpdateJobcardRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateJobcard.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateJobcard.');\n }\n const jobcardPatchDto = requestParameters.jobcardPatchDto;\n if (jobcardPatchDto === null || jobcardPatchDto === undefined) {\n throw new Error('Required parameter jobcardPatchDto was null or undefined when calling partialUpdateJobcard.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/jobcards/${encodeURIComponent(String(id))}`,\n jobcardPatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateUnitStatus(requestParameters: PartialUpdateUnitStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateUnitStatus(requestParameters: PartialUpdateUnitStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateUnitStatus(requestParameters: PartialUpdateUnitStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateUnitStatus(requestParameters: PartialUpdateUnitStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateUnitStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateUnitStatus.');\n }\n const unitStatusDto = requestParameters.unitStatusDto;\n if (unitStatusDto === null || unitStatusDto === undefined) {\n throw new Error('Required parameter unitStatusDto was null or undefined when calling partialUpdateUnitStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/unit-statuses/${encodeURIComponent(String(id))}`,\n unitStatusDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveJobcardTravel(requestParameters: SaveJobcardTravelRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveJobcardTravel(requestParameters: SaveJobcardTravelRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveJobcardTravel(requestParameters: SaveJobcardTravelRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveJobcardTravel(requestParameters: SaveJobcardTravelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling saveJobcardTravel.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling saveJobcardTravel.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveJobcardTravel.');\n }\n const jobcardTravelDto = requestParameters.jobcardTravelDto;\n if (jobcardTravelDto === null || jobcardTravelDto === undefined) {\n throw new Error('Required parameter jobcardTravelDto was null or undefined when calling saveJobcardTravel.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcards/${encodeURIComponent(String(id))}/travel`,\n jobcardTravelDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ClockingStartedDto } from '../model/models';\nimport { JobcardItemDto } from '../model/models';\nimport { JobcardItemPatchDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateJobcardItemRequestParams {\n jobcardId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemDto: JobcardItemDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetJobcardItemRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface IsClockingActiveRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface IsClockingStartedRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartialUpdateJobcardItemRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemPatchDto: JobcardItemPatchDto;\n appointmentId?: number;\n src?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateJobcardItemRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemDto: JobcardItemDto;\n view?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateJobcardItemsRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemDto: Array;\n view?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardItemService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createJobcardItem(requestParameters: CreateJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createJobcardItem(requestParameters: CreateJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createJobcardItem(requestParameters: CreateJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createJobcardItem(requestParameters: CreateJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardId = requestParameters.jobcardId;\n if (jobcardId === null || jobcardId === undefined) {\n throw new Error('Required parameter jobcardId was null or undefined when calling createJobcardItem.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createJobcardItem.');\n }\n const jobcardItemDto = requestParameters.jobcardItemDto;\n if (jobcardItemDto === null || jobcardItemDto === undefined) {\n throw new Error('Required parameter jobcardItemDto was null or undefined when calling createJobcardItem.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardId !== undefined && jobcardId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardId, 'jobcardId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcard-items`,\n jobcardItemDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getJobcardItem(requestParameters: GetJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getJobcardItem(requestParameters: GetJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getJobcardItem(requestParameters: GetJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getJobcardItem(requestParameters: GetJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getJobcardItem.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getJobcardItem.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/jobcard-items/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public isClockingActive(requestParameters: IsClockingActiveRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public isClockingActive(requestParameters: IsClockingActiveRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isClockingActive(requestParameters: IsClockingActiveRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isClockingActive(requestParameters: IsClockingActiveRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling isClockingActive.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling isClockingActive.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/jobcard-items/${encodeURIComponent(String(id))}/isClockingActive`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public isClockingStarted(requestParameters: IsClockingStartedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public isClockingStarted(requestParameters: IsClockingStartedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isClockingStarted(requestParameters: IsClockingStartedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isClockingStarted(requestParameters: IsClockingStartedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling isClockingStarted.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling isClockingStarted.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/jobcard-items/${encodeURIComponent(String(id))}/isClockingStarted`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateJobcardItem(requestParameters: PartialUpdateJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateJobcardItem(requestParameters: PartialUpdateJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateJobcardItem(requestParameters: PartialUpdateJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateJobcardItem(requestParameters: PartialUpdateJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateJobcardItem.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling partialUpdateJobcardItem.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateJobcardItem.');\n }\n const jobcardItemPatchDto = requestParameters.jobcardItemPatchDto;\n if (jobcardItemPatchDto === null || jobcardItemPatchDto === undefined) {\n throw new Error('Required parameter jobcardItemPatchDto was null or undefined when calling partialUpdateJobcardItem.');\n }\n const appointmentId = requestParameters.appointmentId;\n const src = requestParameters.src;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (src !== undefined && src !== null) {\n headers = headers.set('src', String(src));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/jobcard-items/${encodeURIComponent(String(id))}`,\n jobcardItemPatchDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateJobcardItem(requestParameters: UpdateJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateJobcardItem(requestParameters: UpdateJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcardItem(requestParameters: UpdateJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcardItem(requestParameters: UpdateJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateJobcardItem.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateJobcardItem.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateJobcardItem.');\n }\n const jobcardItemDto = requestParameters.jobcardItemDto;\n if (jobcardItemDto === null || jobcardItemDto === undefined) {\n throw new Error('Required parameter jobcardItemDto was null or undefined when calling updateJobcardItem.');\n }\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/jobcard-items/${encodeURIComponent(String(id))}`,\n jobcardItemDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateJobcardItems(requestParameters: UpdateJobcardItemsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcardItems(requestParameters: UpdateJobcardItemsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateJobcardItems(requestParameters: UpdateJobcardItemsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateJobcardItems(requestParameters: UpdateJobcardItemsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateJobcardItems.');\n }\n const jobcardItemDto = requestParameters.jobcardItemDto;\n if (jobcardItemDto === null || jobcardItemDto === undefined) {\n throw new Error('Required parameter jobcardItemDto was null or undefined when calling updateJobcardItems.');\n }\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/jobcard-items`,\n jobcardItemDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemAttachmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateJobcardItemAttachmentRequestParams {\n jobcardItemId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemAttachmentDto: JobcardItemAttachmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteJobcardItemAttachmentRequestParams {\n id: number;\n version: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardItemAttachmentService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createJobcardItemAttachment(requestParameters: CreateJobcardItemAttachmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createJobcardItemAttachment(requestParameters: CreateJobcardItemAttachmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createJobcardItemAttachment(requestParameters: CreateJobcardItemAttachmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createJobcardItemAttachment(requestParameters: CreateJobcardItemAttachmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardItemId = requestParameters.jobcardItemId;\n if (jobcardItemId === null || jobcardItemId === undefined) {\n throw new Error('Required parameter jobcardItemId was null or undefined when calling createJobcardItemAttachment.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createJobcardItemAttachment.');\n }\n const jobcardItemAttachmentDto = requestParameters.jobcardItemAttachmentDto;\n if (jobcardItemAttachmentDto === null || jobcardItemAttachmentDto === undefined) {\n throw new Error('Required parameter jobcardItemAttachmentDto was null or undefined when calling createJobcardItemAttachment.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardItemId !== undefined && jobcardItemId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardItemId, 'jobcardItemId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcard-item-attachments`,\n jobcardItemAttachmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteJobcardItemAttachment(requestParameters: DeleteJobcardItemAttachmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteJobcardItemAttachment(requestParameters: DeleteJobcardItemAttachmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteJobcardItemAttachment(requestParameters: DeleteJobcardItemAttachmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteJobcardItemAttachment(requestParameters: DeleteJobcardItemAttachmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteJobcardItemAttachment.');\n }\n const version = requestParameters.version;\n if (version === null || version === undefined) {\n throw new Error('Required parameter version was null or undefined when calling deleteJobcardItemAttachment.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteJobcardItemAttachment.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (version !== undefined && version !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n version, 'version');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/jobcard-item-attachments/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemExtraOperationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateJobcardItemExtraOperationRequestParams {\n jobcardItemId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemExtraOperationDto: JobcardItemExtraOperationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardItemExtraOperationService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createJobcardItemExtraOperation(requestParameters: CreateJobcardItemExtraOperationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createJobcardItemExtraOperation(requestParameters: CreateJobcardItemExtraOperationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createJobcardItemExtraOperation(requestParameters: CreateJobcardItemExtraOperationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createJobcardItemExtraOperation(requestParameters: CreateJobcardItemExtraOperationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardItemId = requestParameters.jobcardItemId;\n if (jobcardItemId === null || jobcardItemId === undefined) {\n throw new Error('Required parameter jobcardItemId was null or undefined when calling createJobcardItemExtraOperation.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createJobcardItemExtraOperation.');\n }\n const jobcardItemExtraOperationDto = requestParameters.jobcardItemExtraOperationDto;\n if (jobcardItemExtraOperationDto === null || jobcardItemExtraOperationDto === undefined) {\n throw new Error('Required parameter jobcardItemExtraOperationDto was null or undefined when calling createJobcardItemExtraOperation.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardItemId !== undefined && jobcardItemId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardItemId, 'jobcardItemId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcard-item-extra-operations`,\n jobcardItemExtraOperationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemOperationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateJobcardItemOperationRequestParams {\n jobcardItemId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemOperationDto: JobcardItemOperationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteJobcardItemOperationRequestParams {\n id: number;\n version: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardItemOperationService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createJobcardItemOperation(requestParameters: CreateJobcardItemOperationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createJobcardItemOperation(requestParameters: CreateJobcardItemOperationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createJobcardItemOperation(requestParameters: CreateJobcardItemOperationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createJobcardItemOperation(requestParameters: CreateJobcardItemOperationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardItemId = requestParameters.jobcardItemId;\n if (jobcardItemId === null || jobcardItemId === undefined) {\n throw new Error('Required parameter jobcardItemId was null or undefined when calling createJobcardItemOperation.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createJobcardItemOperation.');\n }\n const jobcardItemOperationDto = requestParameters.jobcardItemOperationDto;\n if (jobcardItemOperationDto === null || jobcardItemOperationDto === undefined) {\n throw new Error('Required parameter jobcardItemOperationDto was null or undefined when calling createJobcardItemOperation.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardItemId !== undefined && jobcardItemId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardItemId, 'jobcardItemId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcard-item-operations`,\n jobcardItemOperationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteJobcardItemOperation(requestParameters: DeleteJobcardItemOperationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteJobcardItemOperation(requestParameters: DeleteJobcardItemOperationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteJobcardItemOperation(requestParameters: DeleteJobcardItemOperationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteJobcardItemOperation(requestParameters: DeleteJobcardItemOperationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteJobcardItemOperation.');\n }\n const version = requestParameters.version;\n if (version === null || version === undefined) {\n throw new Error('Required parameter version was null or undefined when calling deleteJobcardItemOperation.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteJobcardItemOperation.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (version !== undefined && version !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n version, 'version');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/jobcard-item-operations/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KitDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetKitsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KitService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKits(requestParameters: GetKitsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKits(requestParameters: GetKitsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getKits(requestParameters: GetKitsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getKits(requestParameters: GetKitsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getKits.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getKits.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kits`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KpiDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetKpisBenchmarkRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiBenchmarkControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKpisBenchmark(requestParameters: GetKpisBenchmarkRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKpisBenchmark(requestParameters: GetKpisBenchmarkRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpisBenchmark(requestParameters: GetKpisBenchmarkRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpisBenchmark(requestParameters: GetKpisBenchmarkRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getKpisBenchmark.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getKpisBenchmark.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpis-benchmark`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { LanguageDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAllLanguagesRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllLanguages(requestParameters: GetAllLanguagesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllLanguages(requestParameters: GetAllLanguagesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllLanguages(requestParameters: GetAllLanguagesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllLanguages(requestParameters: GetAllLanguagesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAllLanguages.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/languages`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { LegalNoticeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetLegalNoticeByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LegalNoticeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getLegalNoticeByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getLegalNoticeByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/legal-notice`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SaveMaintenanceRequestParams {\n appointmentId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n requestBody?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MaintenanceService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveMaintenance(requestParameters: SaveMaintenanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public saveMaintenance(requestParameters: SaveMaintenanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveMaintenance(requestParameters: SaveMaintenanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveMaintenance(requestParameters: SaveMaintenanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling saveMaintenance.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveMaintenance.');\n }\n const requestBody = requestParameters.requestBody;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/save-maintenance`,\n requestBody,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ModelDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetModelsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n name?: string;\n customerId?: number;\n vehicleId?: number;\n brandId?: number;\n sortBy?: 'NAME' | 'ID' | 'ISVECO';\n sortOrder?: string;\n page?: number;\n size?: number;\n filterBy?: string;\n filterValue?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModelService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getModels(requestParameters: GetModelsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getModels.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getModels.');\n }\n const name = requestParameters.name;\n const customerId = requestParameters.customerId;\n const vehicleId = requestParameters.vehicleId;\n const brandId = requestParameters.brandId;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (brandId !== undefined && brandId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandId, 'brandId');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/models`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { NonProductiveActivityDto } from '../model/models';\nimport { NonProductiveActivityStatusDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetNonProductiveActivitiesByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNonProductiveActivityByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNonProductiveStatusByCronRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNonProductiveStatusByDatesRequestParams {\n startTime: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n endTime?: string;\n workshopUserId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateNonProductiveActivityStatusRequestParams {\n id: number;\n workshopId: number;\n userId: string;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n nonProductiveActivityStatusDto: NonProductiveActivityStatusDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NonProductiveActivityService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveActivitiesByWorkshopId(requestParameters: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNonProductiveActivitiesByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNonProductiveActivitiesByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveActivityById(requestParameters: GetNonProductiveActivityByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getNonProductiveActivityById(requestParameters: GetNonProductiveActivityByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveActivityById(requestParameters: GetNonProductiveActivityByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveActivityById(requestParameters: GetNonProductiveActivityByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNonProductiveActivityById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getNonProductiveActivityById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNonProductiveActivityById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveStatusByCron(requestParameters: GetNonProductiveStatusByCronRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveStatusByCron(requestParameters: GetNonProductiveStatusByCronRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveStatusByCron(requestParameters: GetNonProductiveStatusByCronRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveStatusByCron(requestParameters: GetNonProductiveStatusByCronRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNonProductiveStatusByCron.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNonProductiveStatusByCron.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/non-productive-status/cron`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveStatusByDates(requestParameters: GetNonProductiveStatusByDatesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveStatusByDates(requestParameters: GetNonProductiveStatusByDatesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveStatusByDates(requestParameters: GetNonProductiveStatusByDatesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveStatusByDates(requestParameters: GetNonProductiveStatusByDatesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startTime = requestParameters.startTime;\n if (startTime === null || startTime === undefined) {\n throw new Error('Required parameter startTime was null or undefined when calling getNonProductiveStatusByDates.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNonProductiveStatusByDates.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNonProductiveStatusByDates.');\n }\n const endTime = requestParameters.endTime;\n const workshopUserId = requestParameters.workshopUserId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startTime !== undefined && startTime !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startTime, 'startTime');\n }\n if (endTime !== undefined && endTime !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endTime, 'endTime');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/non-productive-status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateNonProductiveActivityStatus(requestParameters: UpdateNonProductiveActivityStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateNonProductiveActivityStatus(requestParameters: UpdateNonProductiveActivityStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNonProductiveActivityStatus(requestParameters: UpdateNonProductiveActivityStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNonProductiveActivityStatus(requestParameters: UpdateNonProductiveActivityStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const nonProductiveActivityStatusDto = requestParameters.nonProductiveActivityStatusDto;\n if (nonProductiveActivityStatusDto === null || nonProductiveActivityStatusDto === undefined) {\n throw new Error('Required parameter nonProductiveActivityStatusDto was null or undefined when calling updateNonProductiveActivityStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/non-productive-activities/non-productive-status/${encodeURIComponent(String(id))}`,\n nonProductiveActivityStatusDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { NotificationCreationDto } from '../model/models';\nimport { NotificationDto } from '../model/models';\nimport { SentBackCreationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateNotificationRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n notificationDto: NotificationDto;\n profile?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface FlagNotificationAsViewedByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNotificationsRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PostNotificationRequestParams {\n applicationToken: string;\n acceptLanguage: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n notificationCreationDto: NotificationCreationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveAllNotificationsByworkshopUserIdRequestParams {\n applicationToken: string;\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveNotificationByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveSentBackRequestRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n sentBackCreationDto: SentBackCreationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateNotificationByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n notificationDto: NotificationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createNotification(requestParameters: CreateNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createNotification(requestParameters: CreateNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createNotification(requestParameters: CreateNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createNotification(requestParameters: CreateNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createNotification.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createNotification.');\n }\n const notificationDto = requestParameters.notificationDto;\n if (notificationDto === null || notificationDto === undefined) {\n throw new Error('Required parameter notificationDto was null or undefined when calling createNotification.');\n }\n const profile = requestParameters.profile;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (profile !== undefined && profile !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n profile, 'profile');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications`,\n notificationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling flagNotificationAsViewedById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling flagNotificationAsViewedById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling flagNotificationAsViewedById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/viewed/${encodeURIComponent(String(id))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNotifications(requestParameters: GetNotificationsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotifications(requestParameters: GetNotificationsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotifications(requestParameters: GetNotificationsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotifications(requestParameters: GetNotificationsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getNotifications.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNotifications.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getNotifications.');\n }\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public postNotification(requestParameters: PostNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public postNotification(requestParameters: PostNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public postNotification(requestParameters: PostNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public postNotification(requestParameters: PostNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling postNotification.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling postNotification.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling postNotification.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling postNotification.');\n }\n const notificationCreationDto = requestParameters.notificationCreationDto;\n if (notificationCreationDto === null || notificationCreationDto === undefined) {\n throw new Error('Required parameter notificationCreationDto was null or undefined when calling postNotification.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/create`,\n notificationCreationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeAllNotificationsByworkshopUserId(requestParameters: RemoveAllNotificationsByworkshopUserIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public removeAllNotificationsByworkshopUserId(requestParameters: RemoveAllNotificationsByworkshopUserIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public removeAllNotificationsByworkshopUserId(requestParameters: RemoveAllNotificationsByworkshopUserIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public removeAllNotificationsByworkshopUserId(requestParameters: RemoveAllNotificationsByworkshopUserIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling removeAllNotificationsByworkshopUserId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling removeAllNotificationsByworkshopUserId.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeAllNotificationsByworkshopUserId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling removeAllNotificationsByworkshopUserId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/workshopUser/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling removeNotificationById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeNotificationById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling removeNotificationById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling saveSentBackRequest.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling saveSentBackRequest.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveSentBackRequest.');\n }\n const sentBackCreationDto = requestParameters.sentBackCreationDto;\n if (sentBackCreationDto === null || sentBackCreationDto === undefined) {\n throw new Error('Required parameter sentBackCreationDto was null or undefined when calling saveSentBackRequest.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/sentBackToTechnicians`,\n sentBackCreationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateNotificationById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateNotificationById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateNotificationById.');\n }\n const notificationDto = requestParameters.notificationDto;\n if (notificationDto === null || notificationDto === undefined) {\n throw new Error('Required parameter notificationDto was null or undefined when calling updateNotificationById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/notifications/${encodeURIComponent(String(id))}`,\n notificationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { OnHoldReasonDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetOnHoldStatusByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnHoldReasonsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOnHoldStatusByWorkshopId(requestParameters: GetOnHoldStatusByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOnHoldStatusByWorkshopId(requestParameters: GetOnHoldStatusByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOnHoldStatusByWorkshopId(requestParameters: GetOnHoldStatusByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOnHoldStatusByWorkshopId(requestParameters: GetOnHoldStatusByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getOnHoldStatusByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getOnHoldStatusByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/onholdreasons`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { OrderTypeHeaderDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetOrderTypeHeadersByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrderTypeHeaderService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderTypeHeadersByWorkshopId(requestParameters: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderTypeHeadersByWorkshopId(requestParameters: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderTypeHeadersByWorkshopId(requestParameters: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderTypeHeadersByWorkshopId(requestParameters: GetOrderTypeHeadersByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getOrderTypeHeadersByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getOrderTypeHeadersByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/order-type-headers`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemExtraOperationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetOtherItemByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n sortOrder?: string;\n page?: number;\n size?: number;\n sortBy?: 'CODE' | 'LABEL' | 'TYPE';\n filterBy?: string;\n filterValue?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OtherItemService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOtherItemByWorkshopId(requestParameters: GetOtherItemByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOtherItemByWorkshopId(requestParameters: GetOtherItemByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOtherItemByWorkshopId(requestParameters: GetOtherItemByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOtherItemByWorkshopId(requestParameters: GetOtherItemByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getOtherItemByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getOtherItemByWorkshopId.');\n }\n const sortOrder = requestParameters.sortOrder;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortBy = requestParameters.sortBy;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/other-item`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemOperationDto } from '../model/models';\nimport { PartDto } from '../model/models';\nimport { PartReturnDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetOpMasterByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n code?: string;\n page?: number;\n size?: number;\n sortBy?: string;\n sortOrder?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsByIdRequestParams {\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsReturnRequestParams {\n workshopId: number;\n salesOrganization: string;\n failureDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PartsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOpMasterByWorkshopId(requestParameters: GetOpMasterByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOpMasterByWorkshopId(requestParameters: GetOpMasterByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOpMasterByWorkshopId(requestParameters: GetOpMasterByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOpMasterByWorkshopId(requestParameters: GetOpMasterByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getOpMasterByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getOpMasterByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/operations-master`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getParts(requestParameters: GetPartsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getParts(requestParameters: GetPartsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getParts(requestParameters: GetPartsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getParts(requestParameters: GetPartsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getParts.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getParts.');\n }\n const code = requestParameters.code;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (code !== undefined && code !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n code, 'code');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/parts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPartsById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getPartsById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPartsById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/parts/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsReturn(requestParameters: GetPartsReturnRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsReturn(requestParameters: GetPartsReturnRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsReturn(requestParameters: GetPartsReturnRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsReturn(requestParameters: GetPartsReturnRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPartsReturn.');\n }\n const salesOrganization = requestParameters.salesOrganization;\n if (salesOrganization === null || salesOrganization === undefined) {\n throw new Error('Required parameter salesOrganization was null or undefined when calling getPartsReturn.');\n }\n const failureDate = requestParameters.failureDate;\n if (failureDate === null || failureDate === undefined) {\n throw new Error('Required parameter failureDate was null or undefined when calling getPartsReturn.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPartsReturn.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (salesOrganization !== undefined && salesOrganization !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n salesOrganization, 'salesOrganization');\n }\n if (failureDate !== undefined && failureDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n failureDate, 'failureDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/parts/return`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { PartsTrackerCspsDto } from '../model/models';\nimport { PartsTrackerDmsDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateOrUpdateCspsTrackerRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n partsTrackerCspsDto: PartsTrackerCspsDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateOrUpdateDmsTrackerRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n partsTrackerDmsDto: PartsTrackerDmsDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PartsTrackerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOrUpdateCspsTracker(requestParameters: CreateOrUpdateCspsTrackerRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createOrUpdateCspsTracker(requestParameters: CreateOrUpdateCspsTrackerRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOrUpdateCspsTracker(requestParameters: CreateOrUpdateCspsTrackerRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOrUpdateCspsTracker(requestParameters: CreateOrUpdateCspsTrackerRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createOrUpdateCspsTracker.');\n }\n const partsTrackerCspsDto = requestParameters.partsTrackerCspsDto;\n if (partsTrackerCspsDto === null || partsTrackerCspsDto === undefined) {\n throw new Error('Required parameter partsTrackerCspsDto was null or undefined when calling createOrUpdateCspsTracker.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/parts-csps-tracker`,\n partsTrackerCspsDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOrUpdateDmsTracker(requestParameters: CreateOrUpdateDmsTrackerRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public createOrUpdateDmsTracker(requestParameters: CreateOrUpdateDmsTrackerRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public createOrUpdateDmsTracker(requestParameters: CreateOrUpdateDmsTrackerRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public createOrUpdateDmsTracker(requestParameters: CreateOrUpdateDmsTrackerRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createOrUpdateDmsTracker.');\n }\n const partsTrackerDmsDto = requestParameters.partsTrackerDmsDto;\n if (partsTrackerDmsDto === null || partsTrackerDmsDto === undefined) {\n throw new Error('Required parameter partsTrackerDmsDto was null or undefined when calling createOrUpdateDmsTracker.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/parts-dms-tracker`,\n partsTrackerDmsDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { PaymentTypeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPaymentTypeByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentTypeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPaymentTypeByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPaymentTypeByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/payment-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPermissionByWorkshopIdRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getPermissionByWorkshopId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPermissionByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPermissionByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/permissions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { PriorityTypeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPriorityTypeByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n sortBy?: 'DESCRIPTION' | 'STATUS' | 'TYPE' | 'ID';\n sortOrder?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PriorityTypeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPriorityTypeByWorkshopId(requestParameters: GetPriorityTypeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPriorityTypeByWorkshopId(requestParameters: GetPriorityTypeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPriorityTypeByWorkshopId(requestParameters: GetPriorityTypeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPriorityTypeByWorkshopId(requestParameters: GetPriorityTypeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPriorityTypeByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPriorityTypeByWorkshopId.');\n }\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/priority-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ReleaseDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetReleaseDetailsRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetReleaseDetailsAllRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReleaseService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReleaseDetails(requestParameters: GetReleaseDetailsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getReleaseDetails(requestParameters: GetReleaseDetailsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getReleaseDetails(requestParameters: GetReleaseDetailsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getReleaseDetails(requestParameters: GetReleaseDetailsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getReleaseDetails.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/release-details`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReleaseDetailsAll(requestParameters: GetReleaseDetailsAllRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getReleaseDetailsAll(requestParameters: GetReleaseDetailsAllRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getReleaseDetailsAll(requestParameters: GetReleaseDetailsAllRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getReleaseDetailsAll(requestParameters: GetReleaseDetailsAllRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getReleaseDetailsAll.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/release-details/all`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { RoleDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetRolesRequestParams {\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RoleService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRoles(requestParameters: GetRolesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRoles(requestParameters: GetRolesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRoles(requestParameters: GetRolesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRoles(requestParameters: GetRolesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling getRoles.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getRoles.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/roles`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { UserGuideDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetUserGuideByLanguageRequestParams {\n language: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserGuideService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const language = requestParameters.language;\n if (language === null || language === undefined) {\n throw new Error('Required parameter language was null or undefined when calling getUserGuideByLanguage.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getUserGuideByLanguage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (language !== undefined && language !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n language, 'language');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/user-guide`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardVehicleDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetVehiclesRequestParams {\n workshopId: number;\n isAdmin: boolean;\n /** Authorization header in the format `access_token` */\n authorization: string;\n customerId?: number;\n brandId?: number;\n modelId?: number;\n stockNumber?: string;\n plate?: string;\n vin?: string;\n filterBy?: string;\n filterValue?: string;\n view?: string;\n sortBy?: 'CUSTOMER_COMPANY_DISPLAYED_NAME' | 'PLATE' | 'VIN' | 'BRAND_NAME' | 'MODEL_NAME';\n sortOrder?: string;\n page?: number;\n size?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getVehicles.');\n }\n const isAdmin = requestParameters.isAdmin;\n if (isAdmin === null || isAdmin === undefined) {\n throw new Error('Required parameter isAdmin was null or undefined when calling getVehicles.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehicles.');\n }\n const customerId = requestParameters.customerId;\n const brandId = requestParameters.brandId;\n const modelId = requestParameters.modelId;\n const stockNumber = requestParameters.stockNumber;\n const plate = requestParameters.plate;\n const vin = requestParameters.vin;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const view = requestParameters.view;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (isAdmin !== undefined && isAdmin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isAdmin, 'isAdmin');\n }\n if (brandId !== undefined && brandId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandId, 'brandId');\n }\n if (modelId !== undefined && modelId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n modelId, 'modelId');\n }\n if (stockNumber !== undefined && stockNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n stockNumber, 'stockNumber');\n }\n if (plate !== undefined && plate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n plate, 'plate');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { VehicleCourtesyDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetVehiclesCourtesyRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n view?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleCourtesyService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getVehiclesCourtesy.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehiclesCourtesy.');\n }\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/vehicles-courtesy`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { VehicleCourtesyBookingDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateVehicleCourtesyRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n vehicleCourtesyBookingDto: VehicleCourtesyBookingDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteVehicleCourtesyBookingRequestParams {\n id: number;\n version: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveVehicleCourtesyBookingForCVRequestParams {\n workshopId: number;\n startDate: string;\n endDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateVehicleCourtesyBookingByIdRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n vehicleCourtesyBookingDto: VehicleCourtesyBookingDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleCourtesyBookingService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createVehicleCourtesy(requestParameters: CreateVehicleCourtesyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createVehicleCourtesy(requestParameters: CreateVehicleCourtesyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createVehicleCourtesy(requestParameters: CreateVehicleCourtesyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createVehicleCourtesy(requestParameters: CreateVehicleCourtesyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createVehicleCourtesy.');\n }\n const vehicleCourtesyBookingDto = requestParameters.vehicleCourtesyBookingDto;\n if (vehicleCourtesyBookingDto === null || vehicleCourtesyBookingDto === undefined) {\n throw new Error('Required parameter vehicleCourtesyBookingDto was null or undefined when calling createVehicleCourtesy.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/vehicles-courtesy-booking`,\n vehicleCourtesyBookingDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteVehicleCourtesyBooking(requestParameters: DeleteVehicleCourtesyBookingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deleteVehicleCourtesyBooking(requestParameters: DeleteVehicleCourtesyBookingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteVehicleCourtesyBooking(requestParameters: DeleteVehicleCourtesyBookingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deleteVehicleCourtesyBooking(requestParameters: DeleteVehicleCourtesyBookingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteVehicleCourtesyBooking.');\n }\n const version = requestParameters.version;\n if (version === null || version === undefined) {\n throw new Error('Required parameter version was null or undefined when calling deleteVehicleCourtesyBooking.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deleteVehicleCourtesyBooking.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (version !== undefined && version !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n version, 'version');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/vehicles-courtesy-booking/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveVehicleCourtesyBookingForCV(requestParameters: RetriveVehicleCourtesyBookingForCVRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveVehicleCourtesyBookingForCV(requestParameters: RetriveVehicleCourtesyBookingForCVRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retriveVehicleCourtesyBookingForCV(requestParameters: RetriveVehicleCourtesyBookingForCVRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retriveVehicleCourtesyBookingForCV(requestParameters: RetriveVehicleCourtesyBookingForCVRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveVehicleCourtesyBookingForCV.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveVehicleCourtesyBookingForCV.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retriveVehicleCourtesyBookingForCV.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveVehicleCourtesyBookingForCV.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/vehicles-courtesy-booking/cv/bookings/workshop/${encodeURIComponent(String(workshopId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateVehicleCourtesyBookingById(requestParameters: UpdateVehicleCourtesyBookingByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateVehicleCourtesyBookingById(requestParameters: UpdateVehicleCourtesyBookingByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateVehicleCourtesyBookingById(requestParameters: UpdateVehicleCourtesyBookingByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateVehicleCourtesyBookingById(requestParameters: UpdateVehicleCourtesyBookingByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateVehicleCourtesyBookingById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateVehicleCourtesyBookingById.');\n }\n const vehicleCourtesyBookingDto = requestParameters.vehicleCourtesyBookingDto;\n if (vehicleCourtesyBookingDto === null || vehicleCourtesyBookingDto === undefined) {\n throw new Error('Required parameter vehicleCourtesyBookingDto was null or undefined when calling updateVehicleCourtesyBookingById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/vehicles-courtesy-booking/${encodeURIComponent(String(id))}`,\n vehicleCourtesyBookingDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { VehicleLegalInspectionDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface PartialUpdateVehicleLegalInspectionRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n vehicleLegalInspectionDto: VehicleLegalInspectionDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleLegalInspectionService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateVehicleLegalInspection(requestParameters: PartialUpdateVehicleLegalInspectionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateVehicleLegalInspection(requestParameters: PartialUpdateVehicleLegalInspectionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateVehicleLegalInspection(requestParameters: PartialUpdateVehicleLegalInspectionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateVehicleLegalInspection(requestParameters: PartialUpdateVehicleLegalInspectionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateVehicleLegalInspection.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateVehicleLegalInspection.');\n }\n const vehicleLegalInspectionDto = requestParameters.vehicleLegalInspectionDto;\n if (vehicleLegalInspectionDto === null || vehicleLegalInspectionDto === undefined) {\n throw new Error('Required parameter vehicleLegalInspectionDto was null or undefined when calling partialUpdateVehicleLegalInspection.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/vehicle-legal-inspections/${encodeURIComponent(String(id))}`,\n vehicleLegalInspectionDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { OperationWarrantyDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetWarrantyServicesByOperationCodeRequestParams {\n code: string;\n failure: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WarrantyService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWarrantyServicesByOperationCode(requestParameters: GetWarrantyServicesByOperationCodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWarrantyServicesByOperationCode(requestParameters: GetWarrantyServicesByOperationCodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWarrantyServicesByOperationCode(requestParameters: GetWarrantyServicesByOperationCodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWarrantyServicesByOperationCode(requestParameters: GetWarrantyServicesByOperationCodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const code = requestParameters.code;\n if (code === null || code === undefined) {\n throw new Error('Required parameter code was null or undefined when calling getWarrantyServicesByOperationCode.');\n }\n const failure = requestParameters.failure;\n if (failure === null || failure === undefined) {\n throw new Error('Required parameter failure was null or undefined when calling getWarrantyServicesByOperationCode.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWarrantyServicesByOperationCode.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/operations/${encodeURIComponent(String(code))}/${encodeURIComponent(String(failure))}/warranty`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDmsErrorCountRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopByIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopsLoggedRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsErrorCount(requestParameters: GetDmsErrorCountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getDmsErrorCount(requestParameters: GetDmsErrorCountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getDmsErrorCount(requestParameters: GetDmsErrorCountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getDmsErrorCount(requestParameters: GetDmsErrorCountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsErrorCount.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDmsErrorCount.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/dms-error-count`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopsLogged(requestParameters: GetWorkshopsLoggedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopsLogged(requestParameters: GetWorkshopsLoggedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopsLogged(requestParameters: GetWorkshopsLoggedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopsLogged(requestParameters: GetWorkshopsLoggedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getWorkshopsLogged.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopsLogged.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopsLogged.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/logged`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopBayDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetWorkshopBaysByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n isActive?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopBayService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopBaysByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopBaysByWorkshopId.');\n }\n const isActive = requestParameters.isActive;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isActive !== undefined && isActive !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isActive, 'isActive');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-bays`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopChecklistTypeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetChecklistTypesByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopChecklistTypeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistTypesByWorkshopId(requestParameters: GetChecklistTypesByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTypesByWorkshopId(requestParameters: GetChecklistTypesByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTypesByWorkshopId(requestParameters: GetChecklistTypesByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTypesByWorkshopId(requestParameters: GetChecklistTypesByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getChecklistTypesByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getChecklistTypesByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/checklist-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopSalesOrganizationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface PartialUpdateWorkshopSalesOrganizationRequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopSalesOrganizationDto: WorkshopSalesOrganizationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopSalesOrganizationService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partialUpdateWorkshopSalesOrganization(requestParameters: PartialUpdateWorkshopSalesOrganizationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partialUpdateWorkshopSalesOrganization(requestParameters: PartialUpdateWorkshopSalesOrganizationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateWorkshopSalesOrganization(requestParameters: PartialUpdateWorkshopSalesOrganizationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partialUpdateWorkshopSalesOrganization(requestParameters: PartialUpdateWorkshopSalesOrganizationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partialUpdateWorkshopSalesOrganization.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling partialUpdateWorkshopSalesOrganization.');\n }\n const workshopSalesOrganizationDto = requestParameters.workshopSalesOrganizationDto;\n if (workshopSalesOrganizationDto === null || workshopSalesOrganizationDto === undefined) {\n throw new Error('Required parameter workshopSalesOrganizationDto was null or undefined when calling partialUpdateWorkshopSalesOrganization.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/workshop-sales-organizations/${encodeURIComponent(String(id))}`,\n workshopSalesOrganizationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopUserAvailabilityDto } from '../model/models';\nimport { WorkshopUserDto } from '../model/models';\nimport { WorkshopUserPreferenceDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetWorkshopUserRequestParams {\n workshopId: number;\n id: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUsersRequestParams {\n workshopId: number;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n workshopBayId?: number;\n role?: string;\n roleAbbrev?: string;\n view?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUsersAvailabilitiesRequestParams {\n workshopId: number;\n acceptLanguage: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUserRequestParams {\n id: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopUserDto: WorkshopUserDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUserPrefLanguageRequestParams {\n workshopId: number;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopUserPreferenceDto: WorkshopUserPreferenceDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopUserService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopUser.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getWorkshopUser.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopUsers.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling getWorkshopUsers.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopUsers.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopBayId = requestParameters.workshopBayId;\n const role = requestParameters.role;\n const roleAbbrev = requestParameters.roleAbbrev;\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (role !== undefined && role !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n role, 'role');\n }\n if (roleAbbrev !== undefined && roleAbbrev !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n roleAbbrev, 'roleAbbrev');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopUsersAvailabilities.');\n }\n const acceptLanguage = requestParameters.acceptLanguage;\n if (acceptLanguage === null || acceptLanguage === undefined) {\n throw new Error('Required parameter acceptLanguage was null or undefined when calling getWorkshopUsersAvailabilities.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopUsersAvailabilities.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (acceptLanguage !== undefined && acceptLanguage !== null) {\n headers = headers.set('Accept-Language', String(acceptLanguage));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/availabilities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateWorkshopUser.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshopUser.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopUser.');\n }\n const workshopUserDto = requestParameters.workshopUserDto;\n if (workshopUserDto === null || workshopUserDto === undefined) {\n throw new Error('Required parameter workshopUserDto was null or undefined when calling updateWorkshopUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(id))}`,\n workshopUserDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUserPrefLanguage(requestParameters: UpdateWorkshopUserPrefLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateWorkshopUserPrefLanguage(requestParameters: UpdateWorkshopUserPrefLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkshopUserPrefLanguage(requestParameters: UpdateWorkshopUserPrefLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkshopUserPrefLanguage(requestParameters: UpdateWorkshopUserPrefLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshopUserPrefLanguage.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateWorkshopUserPrefLanguage.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopUserPrefLanguage.');\n }\n const workshopUserPreferenceDto = requestParameters.workshopUserPreferenceDto;\n if (workshopUserPreferenceDto === null || workshopUserPreferenceDto === undefined) {\n throw new Error('Required parameter workshopUserPreferenceDto was null or undefined when calling updateWorkshopUserPrefLanguage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshop-users/${encodeURIComponent(String(userId))}/language`,\n workshopUserPreferenceDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopUserDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface UpdateWorkshopUserClockingLogRequestParams {\n clockingLogDate: string;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopUsersService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcbooking';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUserClockingLog(requestParameters: UpdateWorkshopUserClockingLogRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateWorkshopUserClockingLog(requestParameters: UpdateWorkshopUserClockingLogRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkshopUserClockingLog(requestParameters: UpdateWorkshopUserClockingLogRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkshopUserClockingLog(requestParameters: UpdateWorkshopUserClockingLogRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const clockingLogDate = requestParameters.clockingLogDate;\n if (clockingLogDate === null || clockingLogDate === undefined) {\n throw new Error('Required parameter clockingLogDate was null or undefined when calling updateWorkshopUserClockingLog.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateWorkshopUserClockingLog.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkshopUserClockingLog.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (clockingLogDate !== undefined && clockingLogDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n clockingLogDate, 'clockingLogDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshop-users/clocking-log/${encodeURIComponent(String(userId))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartDetailDto } from './partDetailDto';\n\n\nexport interface ActivityShortDto { \n activityName?: string;\n workshopBayId?: number;\n workshopBayName?: string;\n missingParts?: Array;\n partDetails?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ApiResponseDto { \n code?: string;\n description?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardDto } from './jobcardDto';\nimport { CustomerCompanyDto } from './customerCompanyDto';\nimport { ChecklistDamageDto } from './checklistDamageDto';\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusDto } from './appointmentStatusDto';\nimport { PriorityTypeDto } from './priorityTypeDto';\nimport { UnitStatusDto } from './unitStatusDto';\nimport { VehicleCourtesyBookingDto } from './vehicleCourtesyBookingDto';\n\n\nexport interface AppointmentDto { \n id?: number;\n mileage?: number;\n engineHours?: number;\n workshopBayId?: number;\n workshopId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n currentStatus?: string;\n repairAddress?: string;\n receptionDate?: string;\n deliveryDate?: string;\n dmsCreationDate?: string;\n types?: Array;\n checklistInstances?: Array;\n checkListDamages?: Array;\n customerCompany?: CustomerCompanyDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n vehicle?: JobcardVehicleDto;\n vehicleCourtesy?: VehicleCourtesyDto;\n jobcard?: JobcardDto;\n status?: AppointmentStatusDto;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUserDto;\n unitStatus?: UnitStatusDto;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReasonDto;\n plannedDeliveryDate?: string;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n openedBy?: string;\n orderTypeHeaderCode?: number;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingDto;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n isInUseDms?: boolean;\n failureEngineHours?: number;\n jobcardTravels?: Array;\n dmsLogError?: boolean;\n priorityType?: PriorityTypeDto;\n customerPaymentMode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentPatchDto { \n workshopUserId?: string;\n workshopId?: number;\n deliveryDate?: string;\n engineHours?: number;\n mileage?: number;\n priorityTypeId?: number;\n failureEngineHours?: number;\n customerNeed?: string;\n isBreakdownAppt?: boolean;\n repairAddress?: string;\n salesOrganizationId?: number;\n types?: Array;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n workshopBayId?: number;\n receptionDate?: string;\n isAppointmentOpened?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n orderTypeHeaderCode?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyShortDto } from './customerCompanyShortDto';\nimport { PriorityTypeShortDto } from './priorityTypeShortDto';\nimport { VehicleShortDto } from './vehicleShortDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { OnHoldReasonShortDto } from './onHoldReasonShortDto';\nimport { ActivityShortDto } from './activityShortDto';\n\n\nexport interface AppointmentShortDto { \n appointmentId?: number;\n currentStatus?: string;\n receptionDate?: string;\n deliveryDate?: string;\n activities?: Array;\n appointmentBayName?: string;\n onHoldReason?: OnHoldReasonShortDto;\n isBreakdownApt?: boolean;\n dmsError?: boolean;\n dmsOrderNumber?: string;\n jobOrderNumber?: number;\n priorityType?: PriorityTypeShortDto;\n customerCompany?: CustomerCompanyShortDto;\n cpdContactDetail?: CpdContactDetailsDto;\n documentStatus?: string;\n vehicle?: VehicleShortDto;\n vehicleCourtesy?: VehicleShortDto;\n customerStatus?: number;\n djcOrderType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignatureDto { \n id?: number;\n url?: string;\n secretKey?: string;\n secretIV?: string;\n phase?: AppointmentSignatureDto.PhaseEnum;\n time?: string;\n customerNotPresent?: boolean;\n appointmentId?: number;\n customerCompanyUserId?: number;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\nexport namespace AppointmentSignatureDto {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentSignatureDto } from './appointmentSignatureDto';\n\n\nexport interface AppointmentSignatureFileDto { \n appointmentSignature?: AppointmentSignatureDto;\n signatureFile?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\n\n\nexport interface AppointmentStatusDto { \n id?: number;\n workshopUser?: WorkshopUserDto;\n customerCompanyUser?: CustomerCompanyUserDto;\n status?: string;\n time?: string;\n reason?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentStatusPatchDto { \n id?: number;\n workshopUserId?: string;\n customerCompanyUserId?: number;\n status?: string;\n time?: string;\n reason?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyUserShortDto } from './customerCompanyUserShortDto';\n\n\nexport interface AppointmentStatusShortDto { \n id?: number;\n workshopUserId?: string;\n time?: string;\n status?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n customerCompanyUser?: CustomerCompanyUserShortDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyShortDto } from './customerCompanyShortDto';\nimport { JobcardViewDto } from './jobcardViewDto';\nimport { ChecklistDamageDto } from './checklistDamageDto';\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { CustomerCompanyUserShortDto } from './customerCompanyUserShortDto';\nimport { ChecklistInstanceViewDto } from './checklistInstanceViewDto';\nimport { AppointmentStatusDto } from './appointmentStatusDto';\nimport { PriorityTypeDto } from './priorityTypeDto';\nimport { UnitStatusDto } from './unitStatusDto';\nimport { VehicleCourtesyBookingShortDto } from './vehicleCourtesyBookingShortDto';\n\n\nexport interface AppointmentViewDto { \n id?: number;\n mileage?: number;\n workshopId?: number;\n engineHours?: number;\n workshopBayId?: number;\n currentStatus?: string;\n onHold?: boolean;\n onHoldReasonId?: number;\n onHoldReasonDescription?: string;\n orderTypeHeaderCode?: number;\n orderTypeHeaderDescription?: string;\n isBreakdownAppt?: boolean;\n repairAddress?: string;\n dmsCreationDate?: string;\n receptionDate?: string;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n deliveryDate?: string;\n plannedDeliveryDate?: string;\n vehicle?: JobcardVehicleDto;\n vehicleCourtesy?: VehicleCourtesyDto;\n vehicleCourtesyBookingShortDto?: VehicleCourtesyBookingShortDto;\n customerPaymentMode?: string;\n status?: AppointmentStatusDto;\n customerCompany?: CustomerCompanyShortDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n driver?: CustomerCompanyUserShortDto;\n checklistInstances?: Array;\n checkListDamages?: Array;\n jobcard?: JobcardViewDto;\n customerNeed?: string;\n workshopUserId?: string;\n priorityType?: PriorityTypeDto;\n salesOrganizationId?: number;\n unitStatus?: UnitStatusDto;\n isAppointmentOpened?: boolean;\n openedBy?: string;\n openedById?: string;\n src?: AppointmentViewDto.SrcEnum;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\nexport namespace AppointmentViewDto {\n export type SrcEnum = 'web' | 'mobile';\n export const SrcEnum = {\n Web: 'web' as SrcEnum,\n Mobile: 'mobile' as SrcEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AzureTokenDto { \n key?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardShortDto } from './jobcardShortDto';\n\n\nexport interface BaseAppointmentDto { \n temporaryId?: string;\n appointmentType: BaseAppointmentDto.AppointmentTypeEnum;\n jobcard?: JobcardShortDto;\n checklistInstances?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\nexport namespace BaseAppointmentDto {\n export type AppointmentTypeEnum = 'CUSTOMER' | 'BOOKING';\n export const AppointmentTypeEnum = {\n CUSTOMER: 'CUSTOMER' as AppointmentTypeEnum,\n BOOKING: 'BOOKING' as AppointmentTypeEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BaseAppointmentDto } from './baseAppointmentDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardShortDto } from './jobcardShortDto';\nimport { BookingAppointmentDtoAllOf } from './bookingAppointmentDtoAllOf';\nimport { VehicleCourtesyBookingShortDto } from './vehicleCourtesyBookingShortDto';\n\n\nexport interface BookingAppointmentDto extends BaseAppointmentDto { \n workshopBayId?: number;\n deliveryDate?: string;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingShortDto;\n receptionDate?: string;\n}\nexport namespace BookingAppointmentDto {\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehicleCourtesyBookingShortDto } from './vehicleCourtesyBookingShortDto';\n\n\nexport interface BookingAppointmentDtoAllOf { \n workshopBayId?: number;\n deliveryDate?: string;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingShortDto;\n receptionDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\n\n\nexport interface BrandDto { \n id?: number;\n name?: string;\n iceCode?: string;\n modelDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BrandPatchDto { \n id?: number;\n name?: string;\n iceCode?: string;\n isIveco?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CheckListResultAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultAttachmentDto } from './checkListResultAttachmentDto';\n\n\nexport interface CheckListResultDto { \n id?: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CheckListResultPatchDto { \n id?: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface ChecklistDamageDto { \n id?: number;\n appointment?: AppointmentDto;\n url?: string;\n zone?: number;\n year?: number;\n jobOrder?: number;\n type?: string;\n filename?: string;\n sapCode?: string;\n size?: number;\n comment?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistDamagePatchDto { \n id?: number;\n comment?: string;\n isDeleted?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultDto } from './checkListResultDto';\nimport { AppointmentSignatureDto } from './appointmentSignatureDto';\n\n\nexport interface ChecklistInstanceDto { \n id?: number;\n summaryUrl?: string;\n content?: string;\n appointmentId?: number;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n type?: string;\n workshopUserId?: string;\n checkListResult?: Array;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n appointmentSignature?: AppointmentSignatureDto;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistInstancePatchDto { \n id?: number;\n summaryUrl?: string;\n content?: string;\n appointmentId?: number;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n type?: string;\n workshopUserId?: string;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultDto } from './checkListResultDto';\n\n\nexport interface ChecklistInstanceViewDto { \n id?: number;\n type?: string;\n content?: string;\n workshopUserId?: string;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n submitted?: boolean;\n checkListResult?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistTemplateDto { \n id?: number;\n type?: string;\n title?: string;\n content?: string;\n defaultChecklist?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ClockingStartedDto { \n isClockingStarted?: boolean;\n fullNames?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Consumable { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConsumableDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CountryDto { \n id?: number;\n name?: string;\n abbrev?: string;\n market?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetailsDto { \n id?: number;\n customerName?: string;\n cityName?: string;\n address?: string;\n countryCode?: string;\n zipCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CspsPartAvailabilityDto { \n partCode?: string;\n localCode?: string;\n localName?: string;\n localAvailable_qty?: number;\n localReserved_qty?: number;\n localAssigned_qty?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyShortDto } from './customerCompanyShortDto';\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { BaseAppointmentDto } from './baseAppointmentDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusShortDto } from './appointmentStatusShortDto';\nimport { CustomerCompanyUserShortDto } from './customerCompanyUserShortDto';\nimport { JobcardShortDto } from './jobcardShortDto';\nimport { CustomerAppointmentDtoAllOf } from './customerAppointmentDtoAllOf';\nimport { UnitStatusShortDto } from './unitStatusShortDto';\n\n\nexport interface CustomerAppointmentDto extends BaseAppointmentDto { \n workshopUserId?: string;\n workshopId?: number;\n customerCompany?: CustomerCompanyShortDto;\n status?: AppointmentStatusShortDto;\n driver?: CustomerCompanyUserShortDto;\n deliveryDate?: string;\n engineHours?: number;\n mileage?: number;\n priorityTypeId?: number;\n failureEngineHours?: number;\n customerNeed?: string;\n isBreakdownAppt?: boolean;\n repairAddress?: string;\n unitStatus?: UnitStatusShortDto;\n salesOrganizationId?: number;\n orderTypeHeaderCode?: number;\n types?: Array;\n onHoldReason?: OnHoldReasonDto;\n vehicle?: JobcardVehicleDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n}\nexport namespace CustomerAppointmentDto {\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyShortDto } from './customerCompanyShortDto';\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusShortDto } from './appointmentStatusShortDto';\nimport { CustomerCompanyUserShortDto } from './customerCompanyUserShortDto';\nimport { UnitStatusShortDto } from './unitStatusShortDto';\n\n\nexport interface CustomerAppointmentDtoAllOf { \n workshopUserId?: string;\n workshopId?: number;\n customerCompany?: CustomerCompanyShortDto;\n status?: AppointmentStatusShortDto;\n driver?: CustomerCompanyUserShortDto;\n deliveryDate?: string;\n engineHours?: number;\n mileage?: number;\n priorityTypeId?: number;\n failureEngineHours?: number;\n customerNeed?: string;\n isBreakdownAppt?: boolean;\n repairAddress?: string;\n unitStatus?: UnitStatusShortDto;\n salesOrganizationId?: number;\n orderTypeHeaderCode?: number;\n types?: Array;\n onHoldReason?: OnHoldReasonDto;\n vehicle?: JobcardVehicleDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CustomerCompanyAppointmentCheckDto { \n hasAppointments?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\n\n\nexport interface CustomerCompanyDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n address?: string;\n zipcode?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: number;\n creditType?: string;\n dmsId?: string;\n displayedName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n customerNote?: string;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n users?: Array;\n cpdContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n customerPaymentMode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\n\n\nexport interface CustomerCompanyShortDto { \n id?: number;\n dmsId?: string;\n displayedName?: string;\n name?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n cpdContactDetails?: Array;\n customerNote?: string;\n customerPaymentMode?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: number;\n creditType?: string;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface CustomerCompanyUserDto { \n id?: number;\n customerCompanyId?: number;\n role?: RoleDto;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n dmsId?: string;\n appointmentDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CustomerCompanyUserShortDto { \n id?: number;\n lastName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n customerCompanyId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface EPartsMarketMappingDto { \n id?: number;\n tidbMarketCode?: number;\n epartsMarketCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDeleted } from './jobcardItemDeleted';\nimport { JobcardMileage } from './jobcardMileage';\nimport { JobcardEngineHours } from './jobcardEngineHours';\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardTravel } from './jobcardTravel';\n\n\nexport interface Jobcard { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n jobcardItems?: Array;\n dmsJobOrder?: string;\n dmsJobOrderToClaim?: number;\n dmsJobOrderClaimNumber?: number;\n estimatedDuration?: number;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n failureDate?: string;\n mileagePictureUrl?: string;\n customerOrderNumber?: string;\n dmsOrderType?: string;\n percentage?: number;\n jobcardItemDeleted?: Array;\n jobcardAttachments?: Array;\n jobcardMileages?: Array;\n jobcardTravel?: Array;\n jobcardEngineHours?: Array;\n djcOrderType?: string;\n lastUpdatedBy?: string;\n dealerClaimNumber?: number;\n ansDossier?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardAttachment { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n jobcard?: Jobcard;\n url?: string;\n type?: string;\n fileName?: string;\n fileSize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardDto } from './jobcardDto';\n\n\nexport interface JobcardAttachmentDto { \n id?: number;\n jobcardDto?: JobcardDto;\n url?: string;\n type?: string;\n filename?: string;\n filesize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\nimport { JobcardItemDto } from './jobcardItemDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { JobcardItemDeletedDto } from './jobcardItemDeletedDto';\nimport { JobcardItemMobileDto } from './jobcardItemMobileDto';\n\n\nexport interface JobcardDto { \n id?: number;\n dmsJobOrder?: string;\n dmsToStrClaim?: number;\n claim?: number;\n dmsOrderType?: string;\n estimatedDuration?: number;\n startTime?: string;\n endTime?: string;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n mileagePictureUrl?: string;\n failureDate?: string;\n customerOrderNumber?: string;\n jobcardItems?: Array;\n jobcardItemMobileDto?: Array;\n jobcardTravels?: Array;\n percentage?: number;\n jobcardAttachmentDtos?: Array;\n jobcardMileages?: Array;\n jobcardEngineHours?: Array;\n lastUpdatedBy?: string;\n dealerClaimNumber?: string;\n ansDossier?: string;\n jobcardItemDeleted?: Array;\n djcOrderType?: string;\n jobcardSerialNumbers?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardEngineHours { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n photoUrl?: string;\n name?: string;\n fileName?: string;\n fileSize?: number;\n fileType?: string;\n year?: number;\n creationDate?: string;\n jobcard?: Jobcard;\n isDeleted?: boolean;\n reason?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { WorkshopUser } from './workshopUser';\nimport { Part } from './part';\nimport { WarrantyClaimData } from './warrantyClaimData';\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { Jobcard } from './jobcard';\nimport { JobcardItemExtraOperation } from './jobcardItemExtraOperation';\nimport { JobcardItemAttachment } from './jobcardItemAttachment';\nimport { JobcardItemStatus } from './jobcardItemStatus';\n\n\nexport interface JobcardItem { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n name?: string;\n type?: string;\n code?: string;\n description?: string;\n additionalDescription?: string;\n weight?: number;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n extraActivity?: boolean;\n customerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n causalPartCode?: string;\n duration?: number;\n status?: string;\n addOnStatus?: string;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n dmsId?: string;\n docId?: string;\n isLocked?: boolean;\n lockedBy?: string;\n lockedTimestamp?: string;\n jobcard?: Jobcard;\n jobcardItemAttachments?: Array;\n estimatedDuration?: number;\n operations?: Array;\n jobcardItemExtraOperations?: Array;\n jobcardItemStatus?: Array;\n workshopUser?: WorkshopUser;\n failureCode?: string;\n failureDescription?: string;\n causalPart?: Part;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n warrantyType?: string;\n contractNumber?: string;\n failureSeverity?: number;\n defectCode?: string;\n supplierCode?: string;\n deleted?: boolean;\n generalNote?: string;\n cause?: string;\n correction?: string;\n percentage?: number;\n startDate?: string;\n mpPlanId?: number;\n internalNotes?: string;\n workshopDiscount?: WorkshopDiscount;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimData;\n inspectionActivity?: boolean;\n officialTime?: number;\n defferDeleteReason?: string;\n sapResponse?: string;\n couponStatus?: string;\n deferredDate?: string;\n deferredToDate?: string;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n paymentType?: string;\n src?: JobcardItem.SrcEnum;\n paymentTypeDisabled?: boolean;\n}\nexport namespace JobcardItem {\n export type SrcEnum = 'web' | 'mobile';\n export const SrcEnum = {\n Web: 'web' as SrcEnum,\n Mobile: 'mobile' as SrcEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemAttachment { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n jobcardItem?: JobcardItem;\n creationDate?: string;\n workshopUser?: WorkshopUser;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemCustomerStatusDto { \n id?: number;\n jobcardItemId?: number;\n action?: string;\n actionDateTime?: string;\n actionPerformedBy?: string;\n actionType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemDeferredDto { \n id?: number;\n defferDeleteReason?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardItemDeleted { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n type?: string;\n code?: string;\n jobcard?: Jobcard;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemDeletedDto { \n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { SplitDto } from './splitDto';\nimport { MpInformationDto } from './mpInformationDto';\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\nimport { JobcardItemAttachmentDto } from './jobcardItemAttachmentDto';\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { WarrantyClaimDataDto } from './warrantyClaimDataDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { WarrantyTypeDto } from './warrantyTypeDto';\nimport { JobcardItemExtraOperationDto } from './jobcardItemExtraOperationDto';\nimport { JobcardPartsBacklogDto } from './jobcardPartsBacklogDto';\n\n\nexport interface JobcardItemDto { \n workshopUserId?: string;\n id?: number;\n name?: string;\n code?: string;\n description?: string;\n deferredDate?: string;\n deferredToDate?: string;\n additionalDescription?: string;\n weight?: number;\n operations?: Array;\n estimatedDuration?: number;\n jobcardItemAttachments?: Array;\n jobcardItemStatus?: Array;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n failureCode?: string;\n failureDescription?: string;\n causalPartId?: number;\n defectCode?: string;\n supplierCode?: string;\n failureSeverity?: number;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n contractNumber?: string;\n warrantyType?: string;\n ids?: Array;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n deleted?: boolean;\n extraOperations?: Array;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n subtype?: string;\n type?: string;\n priority?: number;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformationDto;\n generalNote?: string;\n cause?: string;\n correction?: string;\n duration?: number;\n status?: string;\n percentage?: number;\n startDate?: string;\n discountTypeId?: number;\n technicians?: Array;\n addOnStatus?: string;\n internalNotes?: string;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimDataDto;\n dmsId?: string;\n inspectionActivity?: boolean;\n sapResponse?: string;\n workshopBayId?: number;\n disabled?: boolean;\n checklistInstances?: Array;\n officialTime?: number;\n errorMsg?: string;\n docId?: string;\n jobcardItemSpells?: Array;\n couponStatus?: string;\n jobcardItemCustomerStatus?: Array;\n paymentType?: PaymentTypeDto;\n payType?: string;\n jobcardPartsBacklog?: Array;\n defferDeleteReason?: string;\n paymentWarrantyType?: WarrantyTypeDto;\n tempJId?: string;\n selected?: boolean;\n paymentSubType?: PaymentSubTypeDto;\n paymentSubType2?: PaymentSubTypeDto;\n paymentSubType3?: PaymentSubTypeDto;\n isLocked?: boolean;\n lockedBy?: string;\n lockedById?: string;\n src?: JobcardItemDto.SrcEnum;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n paymentTypeDisabled?: boolean;\n}\nexport namespace JobcardItemDto {\n export type SrcEnum = 'web' | 'mobile';\n export const SrcEnum = {\n Web: 'web' as SrcEnum,\n Mobile: 'mobile' as SrcEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemExtraOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n compulsory?: boolean;\n jobcardItem?: JobcardItem;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n addOnStatus?: string;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemExtraOperationDto { \n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n deleted?: boolean;\n compulsory?: boolean;\n selected?: boolean;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n disablePrice?: boolean;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n active?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\n\n\nexport interface JobcardItemMobileDto { \n id?: number;\n name?: string;\n jobcardItemStatus?: Array;\n weight?: number;\n deferred?: boolean;\n deleted?: boolean;\n status?: string;\n technicians?: Array;\n jobcardItemSpells?: Array;\n jobcardItemCustomerStatus?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\nimport { JobcardItemOperationConsumable } from './jobcardItemOperationConsumable';\n\n\nexport interface JobcardItemOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n code?: string;\n label?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n jobcardItem?: JobcardItem;\n price?: number;\n compulsory?: boolean;\n operationManufacturer?: string;\n addOnStatus?: string;\n srt?: boolean;\n isDefault?: boolean;\n type?: string;\n jobcardItemOperationParts?: Array;\n jobcardItemOperationConsumables?: Array;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Consumable } from './consumable';\n\n\nexport interface JobcardItemOperationConsumable { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: string;\n jobcardItemOperation?: JobcardItemOperation;\n consumable?: Consumable;\n price?: number;\n ewarrantyCode?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ConsumableDto } from './consumableDto';\n\n\nexport interface JobcardItemOperationConsumableDto { \n id?: number;\n quantity?: string;\n consumable?: ConsumableDto;\n compulsory?: boolean;\n price?: number;\n selected?: boolean;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationConsumableDto } from './jobcardItemOperationConsumableDto';\nimport { JobcardItemOperationPartDto } from './jobcardItemOperationPartDto';\n\n\nexport interface JobcardItemOperationDto { \n id?: number;\n code?: string;\n label?: string;\n type?: string;\n description?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n compulsory?: boolean;\n selected?: boolean;\n price?: number;\n manufacturer?: string;\n addOnStatus?: string;\n parts?: Array;\n consumables?: Array;\n isKitComplete?: boolean;\n useKitPart?: boolean;\n dmsId?: string;\n srt?: boolean;\n isDefault?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Part } from './part';\nimport { JobcardItemOperationPartLocation } from './jobcardItemOperationPartLocation';\n\n\nexport interface JobcardItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n jobcardItemOperation?: JobcardItemOperation;\n part?: Part;\n price?: number;\n cost?: number;\n tobereturned?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocation?: Array;\n pickupDate?: string;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardItemOperationPartDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobCardItemOperation?: JobcardItemOperationDto;\n pickupDate?: string;\n tobereturned?: boolean;\n compulsory?: boolean;\n price?: number;\n cost?: number;\n selected?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocationList?: Array;\n ewarrantyCode?: string;\n version?: number;\n isAvailableAtHomeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemOperationPartLocation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n locationId?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\n\n\nexport interface JobcardItemOperationPartLocationDto { \n id?: number;\n locationId?: string;\n jobcardItemOperationPart?: JobcardItemOperationPart;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n version?: number;\n availableAtHomeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\nimport { JobcardItemAttachmentDto } from './jobcardItemAttachmentDto';\n\n\nexport interface JobcardItemPatchDto { \n workshopUserId?: string;\n id?: number;\n name?: string;\n code?: string;\n description?: string;\n deferredDate?: string;\n deferredToDate?: string;\n additionalDescription?: string;\n weight?: number;\n estimatedDuration?: number;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n failureCode?: string;\n failureDescription?: string;\n causalPartId?: number;\n defectCode?: string;\n supplierCode?: string;\n failureSeverity?: number;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n contractNumber?: string;\n warrantyType?: string;\n ids?: Array;\n jobcardItemAttachments?: Array;\n jobcardItemCustomerStatuses?: Array;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n deleted?: boolean;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n isPaymentTypeDisabled?: boolean;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n type?: string;\n causalPartCode?: string;\n generalNote?: string;\n cause?: string;\n correction?: string;\n duration?: number;\n percentage?: number;\n startDate?: string;\n discountTypeId?: number;\n addOnStatus?: string;\n internalNotes?: string;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n dmsId?: string;\n inspectionActivity?: boolean;\n sapResponse?: string;\n officialTime?: number;\n docId?: string;\n couponStatus?: string;\n defferDeleteReason?: string;\n isLocked?: boolean;\n lockedBy?: string;\n lockedTimestamp?: string;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { MpInformationDto } from './mpInformationDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\nimport { JobcardItemAttachmentDto } from './jobcardItemAttachmentDto';\nimport { JobcardItemExtraOperationDto } from './jobcardItemExtraOperationDto';\n\n\nexport interface JobcardItemShortDto { \n id?: number;\n name?: string;\n code?: string;\n description?: string;\n additionalDescription?: string;\n deferredDate?: string;\n weight?: number;\n operations?: Array;\n extraOperations?: Array;\n estimatedDuration?: number;\n jobcardItemAttachments?: Array;\n jobcardItemStatus?: Array;\n deferred?: boolean;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n visible?: boolean;\n failureCode?: string;\n failureDescription?: string;\n supplierCode?: string;\n defectCode?: string;\n failureSeverity?: number;\n warrantyCoverage?: boolean;\n warrantyType?: string;\n deleted?: boolean;\n isPaymentTypeDisabled?: boolean;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n authorizerName?: string;\n serviceParticipation?: number;\n type?: string;\n causalPartId?: number;\n causalPartCode?: string;\n startDate?: string;\n discountTypeId?: number;\n workshopBayId?: number;\n checklistInstances?: Array;\n officialTime?: number;\n jobcardItemSpells?: Array;\n mpInfo?: MpInformationDto;\n couponStatus?: string;\n activityValidated?: boolean;\n agreementCustomerName?: string;\n jobcardItemCustomerStatus?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n cause?: string;\n correction?: string;\n generalNote?: string;\n internalNotes?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\n\n\nexport interface JobcardItemSpellDto { \n id?: number;\n name?: string;\n weight?: number;\n estimatedDuration?: number;\n startDate?: string;\n workshopBayId?: number;\n technicians?: Array;\n selected?: boolean;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemStatus { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n workshopUser?: WorkshopUser;\n jobcardItem?: JobcardItem;\n reason?: string;\n otherReason?: string;\n isDeleted?: boolean;\n dmsId?: string;\n}\nexport namespace JobcardItemStatus {\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP' | 'CLOCKING_WEB' | 'CLOCKING_DMS' | 'CLOCKING_CRON';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum,\n WEB: 'CLOCKING_WEB' as ClockingStatusEnum,\n DMS: 'CLOCKING_DMS' as ClockingStatusEnum,\n CRON: 'CLOCKING_CRON' as ClockingStatusEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemStatusDto { \n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: string;\n jobcardItemId?: number;\n workshopUserId?: string;\n reason?: string;\n otherReason?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n dmsId?: string;\n hasError?: boolean;\n errorReason?: string;\n activityId?: number;\n appointmentId?: number;\n activityName?: string;\n allowedTime?: number;\n deleted?: boolean;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemTechnicianDto { \n id?: number;\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n isDeleted?: boolean;\n spellLinkId?: number;\n firstName?: string;\n lastName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardMileage { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n photoUrl?: string;\n name?: string;\n fileName?: string;\n fileSize?: number;\n fileType?: string;\n year?: number;\n creationDate?: string;\n jobcard?: Jobcard;\n reason?: string;\n isDeleted?: boolean;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardPartsBacklog { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n basicDiscount?: number;\n promoDiscount?: number;\n netPrice?: number;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n cspsOrderId?: number;\n details?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardPartsBacklogDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobcardItemId?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n netPrice?: number;\n customerCompanyId?: number;\n appointmentId?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n partId?: number;\n operation?: string;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n basicDiscount?: number;\n promoDiscount?: number;\n cspsOrderId?: number;\n workshopId?: number;\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\n\n\nexport interface JobcardPatchDto { \n id?: number;\n dmsJobOrder?: string;\n dmsToStrClaim?: number;\n dmsOrderType?: string;\n estimatedDuration?: number;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n mileagePictureUrl?: string;\n failureDate?: string;\n customerOrderNumber?: string;\n percentage?: number;\n lastUpdatedBy?: string;\n dealerClaimNumber?: string;\n ansDossier?: string;\n djcOrderType?: string;\n jobcardEngineHours?: Array;\n jobcardMileages?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { JobcardItemDeletedDto } from './jobcardItemDeletedDto';\nimport { JobcardItemShortDto } from './jobcardItemShortDto';\n\n\nexport interface JobcardShortDto { \n id?: number;\n dmsToStrClaim?: number;\n dmsOrderType?: string;\n djcOrderType?: string;\n jobcardTravels?: Array;\n jobcardItemDeleted?: Array;\n jobcardAttachmentDtos?: Array;\n jobcardEngineHours?: Array;\n jobcardMileages?: Array;\n dmsJobOrder?: string;\n failureDate?: string;\n customerOrderNumber?: string;\n ansDossier?: string;\n jobcardItems?: Array;\n estimatedDuration?: number;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardTravel { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n distance?: number;\n duration?: number;\n date?: string;\n jobcard?: Jobcard;\n reason?: string;\n otherReason?: string;\n isDeleted?: boolean;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n price?: number;\n travelTypeFrom?: number;\n travelTypeTo?: number;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n dmsId?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { WorkshopUserTravelPositionDto } from './workshopUserTravelPositionDto';\n\n\nexport interface JobcardTravelDto { \n id?: number;\n dmsId?: string;\n name?: string;\n duration?: number;\n jobcardId?: number;\n distance?: number;\n date?: string;\n reason?: string;\n otherReason?: string;\n deleted?: boolean;\n workshopUserId?: string;\n positions?: Array;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n paymentType?: PaymentTypeDto;\n paymentSubType?: PaymentSubTypeDto;\n paymentSubSubType2?: PaymentSubSubTypeDto;\n paymentSubSubType3?: PaymentSubSubTypeDto;\n price?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n travelTypeFrom?: string;\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { VehicleLegalInspectionDto } from './vehicleLegalInspectionDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface JobcardVehicleDto { \n id?: number;\n workshopId?: number;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n wtyStartDate?: string;\n customerCompanyId?: number;\n annualInspectionDate?: string;\n tachometerDate?: string;\n isActive?: boolean;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vehicleNote?: string;\n customerCompanyUser?: CustomerCompanyUserDto;\n ownerId?: string;\n invoiceDate?: string;\n appointments?: Array;\n stockNumber?: string;\n inspections?: Array;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\nimport { JobcardItemDto } from './jobcardItemDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { JobcardItemDeletedDto } from './jobcardItemDeletedDto';\n\n\nexport interface JobcardViewDto { \n id?: number;\n djcOrderType?: string;\n dmsOrderType?: string;\n dmsJobOrder?: string;\n dmsToStrClaim?: number;\n dealerClaimNumber?: string;\n failureDate?: string;\n jobcardMileages?: Array;\n jobcardAttachmentDtos?: Array;\n jobcardEngineHours?: Array;\n jobcardTravels?: Array;\n customerOrderNumber?: string;\n estimatedDuration?: number;\n jobcardItems?: Array;\n jobcardItemDeleted?: Array;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n mileagePictureUrl?: string;\n lastSyncTimestamp?: string;\n lastUpdatedFields?: string;\n lastUpdatedTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDto } from './jobcardItemDto';\n\n\nexport interface KitDto { \n id?: number;\n name?: string;\n jobcardItems?: Array;\n workshopId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\n\n\nexport interface KitItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n part?: Part;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiDto { \n hoursSold?: number;\n wipHoursAveDays?: number;\n wipHoursAveDaysSecondary?: number;\n efficiency?: number;\n attendedTimeClockedTime?: number;\n totalSales?: number;\n salesBooking?: number;\n salesCheckin?: number;\n salesWorkshop?: number;\n partSalesperHour?: number;\n partSales?: number;\n workshopSales?: number;\n plannedEfficiency?: number;\n actualEfficiency?: number;\n plannedUtilisation?: number;\n actualUtilisation?: number;\n productivity?: number;\n utilisation?: number;\n recovery?: number;\n wipAveDays?: number;\n workshopId?: number;\n workOrder?: number;\n noOfInspections?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LanguageDto { \n id?: number;\n languageId?: string;\n languageName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LegalNoticeDto { \n id?: number;\n workshopId?: number;\n termsAndConditions?: string;\n privacyNotice?: string;\n termsAzureUrl?: string;\n privacyAzureUrl?: string;\n customerNotes?: string;\n docUploadForTc?: boolean;\n docUploadForPn?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BrandDto } from './brandDto';\n\n\nexport interface ModelDto { \n id?: number;\n name?: string;\n brand?: BrandDto;\n}\n\n","export * from './activityShortDto';\nexport * from './apiResponseDto';\nexport * from './appointmentDto';\nexport * from './appointmentPatchDto';\nexport * from './appointmentShortDto';\nexport * from './appointmentSignatureDto';\nexport * from './appointmentSignatureFileDto';\nexport * from './appointmentStatusDto';\nexport * from './appointmentStatusPatchDto';\nexport * from './appointmentStatusShortDto';\nexport * from './appointmentViewDto';\nexport * from './azureTokenDto';\nexport * from './baseAppointmentDto';\nexport * from './bookingAppointmentDto';\nexport * from './bookingAppointmentDtoAllOf';\nexport * from './brandDto';\nexport * from './brandPatchDto';\nexport * from './checkListResultAttachmentDto';\nexport * from './checkListResultDto';\nexport * from './checkListResultPatchDto';\nexport * from './checklistDamageDto';\nexport * from './checklistDamagePatchDto';\nexport * from './checklistInstanceDto';\nexport * from './checklistInstancePatchDto';\nexport * from './checklistInstanceViewDto';\nexport * from './checklistTemplateDto';\nexport * from './clockingStartedDto';\nexport * from './consumable';\nexport * from './consumableDto';\nexport * from './countryDto';\nexport * from './cpdContactDetailsDto';\nexport * from './cspsPartAvailabilityDto';\nexport * from './customerAppointmentDto';\nexport * from './customerAppointmentDtoAllOf';\nexport * from './customerCompanyAppointmentCheckDto';\nexport * from './customerCompanyDto';\nexport * from './customerCompanyShortDto';\nexport * from './customerCompanyUserDto';\nexport * from './customerCompanyUserShortDto';\nexport * from './ePartsMarketMappingDto';\nexport * from './jobcard';\nexport * from './jobcardAttachment';\nexport * from './jobcardAttachmentDto';\nexport * from './jobcardDto';\nexport * from './jobcardEngineHours';\nexport * from './jobcardItem';\nexport * from './jobcardItemAttachment';\nexport * from './jobcardItemAttachmentDto';\nexport * from './jobcardItemCustomerStatusDto';\nexport * from './jobcardItemDeferredDto';\nexport * from './jobcardItemDeleted';\nexport * from './jobcardItemDeletedDto';\nexport * from './jobcardItemDto';\nexport * from './jobcardItemExtraOperation';\nexport * from './jobcardItemExtraOperationDto';\nexport * from './jobcardItemMobileDto';\nexport * from './jobcardItemOperation';\nexport * from './jobcardItemOperationConsumable';\nexport * from './jobcardItemOperationConsumableDto';\nexport * from './jobcardItemOperationDto';\nexport * from './jobcardItemOperationPart';\nexport * from './jobcardItemOperationPartDto';\nexport * from './jobcardItemOperationPartLocation';\nexport * from './jobcardItemOperationPartLocationDto';\nexport * from './jobcardItemPatchDto';\nexport * from './jobcardItemShortDto';\nexport * from './jobcardItemSpellDto';\nexport * from './jobcardItemStatus';\nexport * from './jobcardItemStatusDto';\nexport * from './jobcardItemTechnicianDto';\nexport * from './jobcardMileage';\nexport * from './jobcardPartsBacklog';\nexport * from './jobcardPartsBacklogDto';\nexport * from './jobcardPatchDto';\nexport * from './jobcardShortDto';\nexport * from './jobcardTravel';\nexport * from './jobcardTravelDto';\nexport * from './jobcardVehicleDto';\nexport * from './jobcardViewDto';\nexport * from './kitDto';\nexport * from './kitItemOperationPart';\nexport * from './kpiDto';\nexport * from './languageDto';\nexport * from './legalNoticeDto';\nexport * from './modelDto';\nexport * from './mpDeltaDto';\nexport * from './mpInformationDto';\nexport * from './mpKitCompositionDto';\nexport * from './newAppointmentDto';\nexport * from './nonProductiveActivityDto';\nexport * from './nonProductiveActivityStatusDto';\nexport * from './notificationCreationDto';\nexport * from './notificationDto';\nexport * from './onHoldReasonDto';\nexport * from './onHoldReasonShortDto';\nexport * from './openingDay';\nexport * from './operationWarrantyDto';\nexport * from './orderTypeHeaderDto';\nexport * from './part';\nexport * from './partDetail';\nexport * from './partDetailDto';\nexport * from './partDto';\nexport * from './partMaster';\nexport * from './partMasterHeader';\nexport * from './partReturnDto';\nexport * from './partsTrackerCsps';\nexport * from './partsTrackerCspsDto';\nexport * from './partsTrackerDms';\nexport * from './partsTrackerDmsDto';\nexport * from './paymentSubSubTypeDto';\nexport * from './paymentSubTypeDto';\nexport * from './paymentTypeDto';\nexport * from './period';\nexport * from './priorityTypeDto';\nexport * from './priorityTypeShortDto';\nexport * from './releaseDto';\nexport * from './role';\nexport * from './roleDto';\nexport * from './sentBackCreationDto';\nexport * from './shiftDto';\nexport * from './shiftPeriodDto';\nexport * from './skillDto';\nexport * from './splitDto';\nexport * from './unitStatusDto';\nexport * from './unitStatusShortDto';\nexport * from './updateAppointmentDto';\nexport * from './userGuideDto';\nexport * from './vehicleCourtesyBookingDto';\nexport * from './vehicleCourtesyBookingShortDto';\nexport * from './vehicleCourtesyDto';\nexport * from './vehicleLegalInspectionDto';\nexport * from './vehicleShortDto';\nexport * from './warrantyClaimData';\nexport * from './warrantyClaimDataDto';\nexport * from './warrantyTypeDto';\nexport * from './workshop';\nexport * from './workshopBay';\nexport * from './workshopBayDto';\nexport * from './workshopChecklistTypeDto';\nexport * from './workshopDiscount';\nexport * from './workshopDiscountDto';\nexport * from './workshopDto';\nexport * from './workshopInStatus';\nexport * from './workshopSalesOrganizationDto';\nexport * from './workshopUser';\nexport * from './workshopUserAvailabilityDto';\nexport * from './workshopUserDto';\nexport * from './workshopUserPreferenceDto';\nexport * from './workshopUserRelation';\nexport * from './workshopUserTravelPositionDto';\nexport * from './workshopUserUnavailability';\nexport * from './workshopUserUnavailabilityDto';\nexport * from './worshopUserSetting';\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpDeltaDto { \n unit?: string;\n value?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpDeltaDto } from './mpDeltaDto';\n\n\nexport interface MpInformationDto { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpKitCompositionDto { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NewAppointmentDto { \n id?: number;\n temporaryId?: string;\n dmsCreationDate?: string;\n expiration?: number;\n timeUnit?: NewAppointmentDto.TimeUnitEnum;\n}\nexport namespace NewAppointmentDto {\n export type TimeUnitEnum = 'NANOSECONDS' | 'MICROSECONDS' | 'MILLISECONDS' | 'SECONDS' | 'MINUTES' | 'HOURS' | 'DAYS';\n export const TimeUnitEnum = {\n NANOSECONDS: 'NANOSECONDS' as TimeUnitEnum,\n MICROSECONDS: 'MICROSECONDS' as TimeUnitEnum,\n MILLISECONDS: 'MILLISECONDS' as TimeUnitEnum,\n SECONDS: 'SECONDS' as TimeUnitEnum,\n MINUTES: 'MINUTES' as TimeUnitEnum,\n HOURS: 'HOURS' as TimeUnitEnum,\n DAYS: 'DAYS' as TimeUnitEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NonProductiveActivityDto { \n id?: number;\n dmsCode?: string;\n description?: string;\n activityName?: string;\n workshopId?: number;\n isVisible?: boolean;\n isDefault?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NonProductiveActivityDto } from './nonProductiveActivityDto';\n\n\nexport interface NonProductiveActivityStatusDto { \n id?: number;\n startTime?: string;\n endTime?: string;\n workshopUserId?: string;\n nonProductiveActivity?: NonProductiveActivityDto;\n cron?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NotificationCreationDto { \n type?: string;\n appointmentId?: number;\n nbApproved?: number;\n nbDeclined?: number;\n body?: string;\n notificationTitle?: string;\n doneActivities?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface NotificationDto { \n id?: number;\n sender?: WorkshopUserDto;\n receiver?: WorkshopUserDto;\n type?: string;\n appointment?: number;\n sentDate?: string;\n viewDate?: string;\n title?: string;\n body?: string;\n notificationTitle?: string;\n deviceToken?: string;\n doneActivities?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReasonDto { \n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReasonShortDto { \n onHold?: boolean;\n onHoldReason?: string;\n workshopId?: number;\n lastClockedOutDateTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Period } from './period';\n\n\nexport interface OpeningDay { \n weekday?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OperationWarrantyDto { \n failureCode?: string;\n operationCode?: string;\n warrantyTypes?: Array;\n selectedWarrantyType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OrderTypeHeaderDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n isDefault?: boolean;\n isVisible?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartsTrackerDms } from './partsTrackerDms';\nimport { KitItemOperationPart } from './kitItemOperationPart';\nimport { Workshop } from './workshop';\nimport { JobcardPartsBacklog } from './jobcardPartsBacklog';\nimport { PartDetail } from './partDetail';\nimport { PartsTrackerCsps } from './partsTrackerCsps';\n\n\nexport interface Part { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n workshop?: Workshop;\n code?: string;\n description?: string;\n quantity?: number;\n manufacturer?: string;\n price?: number;\n partDetail?: PartDetail;\n kitOperationParts?: Array;\n partSuperseedingId?: number;\n isKit?: boolean;\n jobcardPartsBacklog?: Array;\n partsTrackerDms?: Array;\n partsTrackerCsps?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartDetail { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n firstModelYear?: string;\n lastModelYear?: string;\n partManufacturer?: string;\n manufacturerPartCode?: string;\n packageQuantity?: number;\n partChangeStatus?: number;\n partTypeCode?: string;\n partManufacturerBrand?: string;\n alternatePartCode?: string;\n brand?: string;\n partName?: string;\n hazmatDescription?: string;\n hazmatIndicator?: number;\n uomCode?: string;\n classCode?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartDetailDto { \n code?: string;\n description?: string;\n manufacturer?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { MpKitCompositionDto } from './mpKitCompositionDto';\n\n\nexport interface PartDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partSuperseedingId?: number;\n partDetailId?: number;\n quantity?: number;\n booking?: string;\n visitDate?: string;\n vehPlate?: string;\n customer?: string;\n activity?: string;\n manufacturer?: string;\n isKit?: boolean;\n kitParts?: Array;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n jobcardItemOperationPartLocationList?: Array;\n price?: number;\n homeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartMasterHeader } from './partMasterHeader';\nimport { Workshop } from './workshop';\n\n\nexport interface PartMaster { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n partMasterHeader?: PartMasterHeader;\n workshop?: Workshop;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartMaster } from './partMaster';\n\n\nexport interface PartMasterHeader { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n documentDateTime?: string;\n documentId?: string;\n partMasterCountryCode?: string;\n partMasterEffectiveDate?: string;\n partMaster?: PartMaster;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartReturnDto { \n counterQuantity?: number;\n partNumber?: string;\n quantity?: number;\n startDate?: string;\n endDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerCsps { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerCspsDto { \n id?: number;\n workshopId?: number;\n partId?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerDms { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerDmsDto { \n id?: number;\n workshopId?: number;\n partId?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PaymentSubSubTypeDto { \n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n weight?: number;\n isVisible?: boolean;\n paymentSubTypeId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\n\n\nexport interface PaymentSubTypeDto { \n id?: number;\n description?: string;\n type?: string;\n code?: string;\n weight?: number;\n paymentTypeId?: number;\n isVisible?: boolean;\n categoryType?: string;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\n\n\nexport interface PaymentTypeDto { \n id?: number;\n isVisible?: boolean;\n workshopId?: number;\n type?: string;\n weight?: number;\n paymentSubTypes?: Array;\n code?: string;\n name?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Period { \n id?: number;\n start?: string;\n end?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PriorityTypeDto { \n id?: number;\n description?: string;\n status?: string;\n icon?: string;\n defaultPriority?: boolean;\n workshopId?: number;\n type?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PriorityTypeShortDto { \n description?: string;\n status?: string;\n icon?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ReleaseDto { \n environment?: string;\n business?: string;\n version?: string;\n releaseDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Role { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n roleAbbrev?: string;\n iamAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RoleDto { \n id?: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SentBackCreationDto { \n type?: string;\n appointmentId?: number;\n body?: string;\n notificationTitle?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriodDto } from './shiftPeriodDto';\n\n\nexport interface ShiftDto { \n id?: number;\n description?: string;\n type?: string;\n startDate?: string;\n endDate?: string;\n userShiftId?: number;\n targetTime?: number;\n dmsId?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriodDto { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SkillDto { \n id?: number;\n description?: string;\n translationKey?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SplitDto { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n pricingId?: number;\n jobcardItemId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnitStatusDto { \n id?: number;\n date?: string;\n unitDown?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnitStatusShortDto { \n id?: number;\n date?: string;\n unitDown?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyShortDto } from './customerCompanyShortDto';\nimport { ChecklistDamageDto } from './checklistDamageDto';\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusShortDto } from './appointmentStatusShortDto';\nimport { CustomerCompanyUserShortDto } from './customerCompanyUserShortDto';\nimport { JobcardShortDto } from './jobcardShortDto';\nimport { UnitStatusShortDto } from './unitStatusShortDto';\nimport { VehicleCourtesyBookingShortDto } from './vehicleCourtesyBookingShortDto';\n\n\nexport interface UpdateAppointmentDto { \n workshopUserId?: string;\n workshopId?: number;\n deliveryDate?: string;\n engineHours?: number;\n mileage?: number;\n priorityTypeId?: number;\n failureEngineHours?: number;\n customerNeed?: string;\n isBreakdownAppt?: boolean;\n repairAddress?: string;\n salesOrganizationId?: number;\n types?: Array;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n workshopBayId?: number;\n receptionDate?: string;\n isAppointmentOpened?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n customerCompany?: CustomerCompanyShortDto;\n status?: AppointmentStatusShortDto;\n driver?: CustomerCompanyUserShortDto;\n jobcard?: JobcardShortDto;\n unitStatus?: UnitStatusShortDto;\n checklistInstances?: Array;\n checklistDamages?: Array;\n onHoldReason?: OnHoldReasonDto;\n vehicle?: JobcardVehicleDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingShortDto;\n orderTypeHeaderCode?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UserGuideDto { \n id?: number;\n imageUrl?: string;\n title?: string;\n description?: string;\n updatedDate?: string;\n categorie?: string;\n markdownUrl?: string;\n language?: UserGuideDto.LanguageEnum;\n}\nexport namespace UserGuideDto {\n export type LanguageEnum = 'EN' | 'ITA' | 'DE' | 'FR' | 'PL';\n export const LanguageEnum = {\n EN: 'EN' as LanguageEnum,\n ITA: 'ITA' as LanguageEnum,\n DE: 'DE' as LanguageEnum,\n FR: 'FR' as LanguageEnum,\n PL: 'PL' as LanguageEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface VehicleCourtesyBookingDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n reason?: string;\n vehicleCourtesy?: VehicleCourtesyDto;\n appointment?: AppointmentDto;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleCourtesyBookingShortDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n reason?: string;\n vehicleCourtesyId?: number;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { WorkshopDto } from './workshopDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface VehicleCourtesyDto { \n id?: number;\n plate?: string;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n mileage?: number;\n dmsId?: string;\n workshop?: WorkshopDto;\n vehicleNote?: string;\n status?: string;\n appointments?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleLegalInspectionDto { \n id?: number;\n label?: string;\n code?: string;\n date?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleShortDto { \n vehiclePlate?: string;\n vehicleModel?: string;\n vehicleVin?: string;\n brandName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimData { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimDataDto { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyTypeDto { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { PartMaster } from './partMaster';\n\n\nexport interface Workshop { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n masterWorkshopId?: number;\n dmsUrl?: string;\n tempDmsUrl?: string;\n dmsAuthenticationId?: string;\n tempDmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n dmsClearAuthenticationPassword?: string;\n currencyCode?: string;\n cspsUserId?: string;\n enableSafetyChecklist?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n labourCost?: string;\n dmsProvider?: string;\n partMaster?: PartMaster;\n workshopDiscount?: Array;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n dealerClaimCounter?: number;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopBay { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n bayCode?: string;\n active?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface WorkshopBayDto { \n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n leadTechnician?: string;\n technicians?: Array;\n bayCode?: string;\n isActive?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopChecklistTypeDto { \n id?: number;\n workshopId?: number;\n checklistType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopDiscount { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDto } from './workshopDto';\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface WorkshopDiscountDto { \n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n workshop?: WorkshopDto;\n workshopUsers?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { OpeningDay } from './openingDay';\nimport { WorkshopSalesOrganizationDto } from './workshopSalesOrganizationDto';\n\n\nexport interface WorkshopDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n openingTime?: string;\n closureTime?: string;\n openingDays?: Array;\n masterWorkshopId?: number;\n workshopBayDto?: WorkshopBayDto;\n currencyCode?: string;\n cspsUserId?: string;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n workshopSalesOrganizations?: Array;\n paymentCode?: string;\n labourCost?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n enableSafetyChecklist?: boolean;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n dmsProvider?: string;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopInStatus { \n workfileValidated?: number;\n appointments?: number;\n vehicles?: number;\n warrantyValidationPending?: number;\n repairing?: number;\n sentBackError?: number;\n received?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesOrganizationDto { \n id?: number;\n brandDivision?: string;\n market?: string;\n salesCode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Role } from './role';\nimport { WorshopUserSetting } from './worshopUserSetting';\nimport { WorkshopUserRelation } from './workshopUserRelation';\nimport { WorkshopUserUnavailability } from './workshopUserUnavailability';\n\n\nexport interface WorkshopUser { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n deviceToken?: string;\n appVersion?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n views?: string;\n isActivityApproval?: string;\n costRate?: string;\n role?: Role;\n canEditJobcard?: boolean;\n isAutomaticApproval?: string;\n canSeePrice?: boolean;\n isAssociateUser?: boolean;\n canSelfAssign?: boolean;\n clockingLog?: string;\n workshopUserUnavailability?: Array;\n workshopUserRelations?: Array;\n worshopUserSettings?: Array;\n active?: boolean;\n admin?: boolean;\n manualJobStatusOverride?: boolean;\n displayingOccupancy?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { SkillDto } from './skillDto';\nimport { ShiftDto } from './shiftDto';\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { WorkshopUserUnavailabilityDto } from './workshopUserUnavailabilityDto';\n\n\nexport interface WorkshopUserAvailabilityDto { \n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n role?: RoleDto;\n isAdmin?: boolean;\n views?: string;\n isTechnicianView?: boolean;\n skills?: Array;\n displayedName?: string;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n canSeePrice?: boolean;\n leadWorkshopBayId?: number;\n url?: string;\n isManualJobStatusOverride?: boolean;\n isDisplayingOccupancy?: boolean;\n costRate?: string;\n isAutomaticApproval?: string;\n isActivityApproval?: string;\n unavailabilities?: Array;\n workshopBays?: Array;\n shifts?: Array;\n canSelfAssign?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { WorkshopDiscountDto } from './workshopDiscountDto';\nimport { SkillDto } from './skillDto';\nimport { ShiftDto } from './shiftDto';\nimport { WorkshopDto } from './workshopDto';\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { WorkshopUserUnavailabilityDto } from './workshopUserUnavailabilityDto';\n\n\nexport interface WorkshopUserDto { \n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n role?: RoleDto;\n isAdmin?: boolean;\n isActive?: boolean;\n views?: string;\n isTechnicianView?: boolean;\n deviceToken?: string;\n appVersion?: string;\n skills?: Array;\n canEditJobcard?: boolean;\n displayedName?: string;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n canSeePrice?: boolean;\n leadWorkshopBayId?: number;\n url?: string;\n isManualJobStatusOverride?: boolean;\n isAssociateUser?: boolean;\n workshopDiscountDto?: Array;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n costRate?: string;\n isAutomaticApproval?: string;\n isActivityApproval?: string;\n unavailabilities?: Array;\n workshopBays?: Array;\n shifts?: Array;\n isAssociatedWithWorkshop?: boolean;\n canSelfAssign?: boolean;\n workshopList?: Array;\n showClockingResume?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserPreferenceDto { \n languageId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Workshop } from './workshop';\nimport { WorkshopBay } from './workshopBay';\n\n\nexport interface WorkshopUserRelation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n workshop?: Workshop;\n workshopBay?: WorkshopBay;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserTravelPositionDto { \n id?: number;\n workshopUserId?: string;\n jobcardTravelId?: number;\n latitude?: number;\n longitude?: number;\n positionDate?: string;\n positionType?: string;\n deviceStatus?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailability { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n fromDms?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailabilityDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n isFromDms?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface WorshopUserSetting { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n key?: string;\n type?: WorshopUserSetting.TypeEnum;\n intValue?: number;\n strValue?: string;\n boolValue?: boolean;\n workshopUser?: WorkshopUser;\n}\nexport namespace WorshopUserSetting {\n export type TypeEnum = 'BOOL' | 'STR' | 'INT';\n export const TypeEnum = {\n BOOL: 'BOOL' as TypeEnum,\n STR: 'STR' as TypeEnum,\n INT: 'INT' as TypeEnum\n };\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { DmsCommunicationControllerService } from './api/dmsCommunicationController.service';\nimport { DmsControllerService } from './api/dmsController.service';\nimport { DmsLogControllerService } from './api/dmsLogController.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","export * from './dmsCommunicationController.service';\nimport { DmsCommunicationControllerService } from './dmsCommunicationController.service';\nexport * from './dmsController.service';\nimport { DmsControllerService } from './dmsController.service';\nexport * from './dmsLogController.service';\nimport { DmsLogControllerService } from './dmsLogController.service';\nexport const APIS = [DmsCommunicationControllerService, DmsControllerService, DmsLogControllerService];\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { DmsCommunicationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDmsCommunicationRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDmsCommunication1RequestParams {\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateDmsCommunicationRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n dmsCommunicationDto: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DmsCommunicationControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcdmsclient';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsCommunication(requestParameters: GetDmsCommunicationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsCommunication(requestParameters: GetDmsCommunicationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsCommunication(requestParameters: GetDmsCommunicationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsCommunication(requestParameters: GetDmsCommunicationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsCommunication.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDmsCommunication.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dms-communications`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsCommunication1(requestParameters: GetDmsCommunication1RequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDmsCommunication1(requestParameters: GetDmsCommunication1RequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsCommunication1(requestParameters: GetDmsCommunication1RequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsCommunication1(requestParameters: GetDmsCommunication1RequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getDmsCommunication1.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDmsCommunication1.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms-communications/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateDmsCommunication(requestParameters: UpdateDmsCommunicationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateDmsCommunication(requestParameters: UpdateDmsCommunicationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateDmsCommunication(requestParameters: UpdateDmsCommunicationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateDmsCommunication(requestParameters: UpdateDmsCommunicationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateDmsCommunication.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateDmsCommunication.');\n }\n const dmsCommunicationDto = requestParameters.dmsCommunicationDto;\n if (dmsCommunicationDto === null || dmsCommunicationDto === undefined) {\n throw new Error('Required parameter dmsCommunicationDto was null or undefined when calling updateDmsCommunication.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/dms-communications`,\n dmsCommunicationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiResponseDto } from '../model/models';\nimport { AppointmentDto } from '../model/models';\nimport { DmsStatusDto } from '../model/models';\nimport { JobcardItemOperationPartDto } from '../model/models';\nimport { JobcardVehicleDto } from '../model/models';\nimport { PageDmsLog } from '../model/models';\nimport { PartDto } from '../model/models';\nimport { VehicleLegalInspectionDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDmsErrorLogPayloadRequestParams {\n id: number;\n workshopId: number;\n type: 'REQUEST' | 'RESPONSE';\n /** Authorization header in the format `access_token` */\n authorization: string;\n isErrorLog?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDmsErrorLogsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n /** Page number of the requested page */\n page?: number;\n /** Size of the page */\n size?: number;\n /** Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. */\n sort?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetEmployeeDataRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsAvailableRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemOperationPartDto: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsMasterRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetShiftsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSyncCustomersRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSyncVehiclesRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleRequestParams {\n vin: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleInspectionRequestParams {\n vehicleId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface OperationMasterRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SyncByTypeRequestParams {\n type: 'CUSTOMERS' | 'VEHICLES' | 'PARTS' | 'OPERATIONS' | 'SHIFTS' | 'EMPLOYEES';\n fromDate: string;\n toDate: string;\n pageNumber: number;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n uuid?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpsertOrderRequestParams {\n type: string;\n userId: string;\n language: string;\n throwException: boolean;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentDto: AppointmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ValidateRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DmsControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcdmsclient';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsErrorLogPayload(requestParameters: GetDmsErrorLogPayloadRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/xml'}): Observable;\n public getDmsErrorLogPayload(requestParameters: GetDmsErrorLogPayloadRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/xml'}): Observable>;\n public getDmsErrorLogPayload(requestParameters: GetDmsErrorLogPayloadRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/xml'}): Observable>;\n public getDmsErrorLogPayload(requestParameters: GetDmsErrorLogPayloadRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/xml'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getDmsErrorLogPayload.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsErrorLogPayload.');\n }\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling getDmsErrorLogPayload.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDmsErrorLogPayload.');\n }\n const isErrorLog = requestParameters.isErrorLog;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n if (isErrorLog !== undefined && isErrorLog !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isErrorLog, 'isErrorLog');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'text/xml'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/logs/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsErrorLogs(requestParameters: GetDmsErrorLogsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDmsErrorLogs(requestParameters: GetDmsErrorLogsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsErrorLogs(requestParameters: GetDmsErrorLogsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsErrorLogs(requestParameters: GetDmsErrorLogsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsErrorLogs.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDmsErrorLogs.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sort = requestParameters.sort;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sort !== undefined && sort !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sort, 'sort');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/error-logs`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getEmployeeData(requestParameters: GetEmployeeDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getEmployeeData(requestParameters: GetEmployeeDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEmployeeData(requestParameters: GetEmployeeDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEmployeeData(requestParameters: GetEmployeeDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getEmployeeData.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getEmployeeData.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getEmployeeData.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getEmployeeData.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/employee-data`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsAvailable(requestParameters: GetPartsAvailableRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsAvailable(requestParameters: GetPartsAvailableRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsAvailable(requestParameters: GetPartsAvailableRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsAvailable(requestParameters: GetPartsAvailableRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPartsAvailable.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPartsAvailable.');\n }\n const jobcardItemOperationPartDto = requestParameters.jobcardItemOperationPartDto;\n if (jobcardItemOperationPartDto === null || jobcardItemOperationPartDto === undefined) {\n throw new Error('Required parameter jobcardItemOperationPartDto was null or undefined when calling getPartsAvailable.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/dms/parts-availableList`,\n jobcardItemOperationPartDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsMaster(requestParameters: GetPartsMasterRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getPartsMaster(requestParameters: GetPartsMasterRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsMaster(requestParameters: GetPartsMasterRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsMaster(requestParameters: GetPartsMasterRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getPartsMaster.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getPartsMaster.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPartsMaster.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPartsMaster.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/parts-master`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getShifts(requestParameters: GetShiftsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getShifts(requestParameters: GetShiftsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getShifts(requestParameters: GetShiftsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getShifts(requestParameters: GetShiftsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getShifts.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getShifts.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/shifts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSyncCustomers(requestParameters: GetSyncCustomersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSyncCustomers(requestParameters: GetSyncCustomersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSyncCustomers(requestParameters: GetSyncCustomersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSyncCustomers(requestParameters: GetSyncCustomersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getSyncCustomers.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getSyncCustomers.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getSyncCustomers.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getSyncCustomers.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/sync-customers`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSyncVehicles(requestParameters: GetSyncVehiclesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSyncVehicles(requestParameters: GetSyncVehiclesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSyncVehicles(requestParameters: GetSyncVehiclesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSyncVehicles(requestParameters: GetSyncVehiclesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getSyncVehicles.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getSyncVehicles.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getSyncVehicles.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getSyncVehicles.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/sync-vehicles`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicle(requestParameters: GetVehicleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVehicle(requestParameters: GetVehicleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicle(requestParameters: GetVehicleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicle(requestParameters: GetVehicleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getVehicle.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getVehicle.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehicle.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/vehicle/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleInspection(requestParameters: GetVehicleInspectionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleInspection(requestParameters: GetVehicleInspectionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicleInspection(requestParameters: GetVehicleInspectionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicleInspection(requestParameters: GetVehicleInspectionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vehicleId = requestParameters.vehicleId;\n if (vehicleId === null || vehicleId === undefined) {\n throw new Error('Required parameter vehicleId was null or undefined when calling getVehicleInspection.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getVehicleInspection.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dms/vehicle-inspection-dates`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public operationMaster(requestParameters: OperationMasterRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public operationMaster(requestParameters: OperationMasterRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public operationMaster(requestParameters: OperationMasterRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public operationMaster(requestParameters: OperationMasterRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling operationMaster.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling operationMaster.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling operationMaster.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling operationMaster.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/operations-master`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public syncByType(requestParameters: SyncByTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public syncByType(requestParameters: SyncByTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncByType(requestParameters: SyncByTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncByType(requestParameters: SyncByTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling syncByType.');\n }\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling syncByType.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling syncByType.');\n }\n const pageNumber = requestParameters.pageNumber;\n if (pageNumber === null || pageNumber === undefined) {\n throw new Error('Required parameter pageNumber was null or undefined when calling syncByType.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling syncByType.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling syncByType.');\n }\n const uuid = requestParameters.uuid;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (pageNumber !== undefined && pageNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pageNumber, 'pageNumber');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (uuid !== undefined && uuid !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n uuid, 'uuid');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/sync/${encodeURIComponent(String(type))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public upsertOrder(requestParameters: UpsertOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public upsertOrder(requestParameters: UpsertOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertOrder(requestParameters: UpsertOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertOrder(requestParameters: UpsertOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling upsertOrder.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling upsertOrder.');\n }\n const language = requestParameters.language;\n if (language === null || language === undefined) {\n throw new Error('Required parameter language was null or undefined when calling upsertOrder.');\n }\n const throwException = requestParameters.throwException;\n if (throwException === null || throwException === undefined) {\n throw new Error('Required parameter throwException was null or undefined when calling upsertOrder.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling upsertOrder.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling upsertOrder.');\n }\n const appointmentDto = requestParameters.appointmentDto;\n if (appointmentDto === null || appointmentDto === undefined) {\n throw new Error('Required parameter appointmentDto was null or undefined when calling upsertOrder.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n if (language !== undefined && language !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n language, 'language');\n }\n if (throwException !== undefined && throwException !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n throwException, 'throwException');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dms/upsert-order`,\n appointmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public validate(requestParameters: ValidateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public validate(requestParameters: ValidateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public validate(requestParameters: ValidateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public validate(requestParameters: ValidateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling validate.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling validate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { PageDmsLogDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDmsLogsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n filterBy?: string;\n filterValue?: string;\n startDate?: string;\n endDate?: string;\n isComplete?: boolean;\n /** Page number of the requested page */\n page?: number;\n /** Size of the page */\n size?: number;\n /** Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. */\n sort?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DmsLogControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcdmsclient';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsLogs(requestParameters: GetDmsLogsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getDmsLogs(requestParameters: GetDmsLogsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getDmsLogs(requestParameters: GetDmsLogsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getDmsLogs(requestParameters: GetDmsLogsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsLogs.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getDmsLogs.');\n }\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const isComplete = requestParameters.isComplete;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sort = requestParameters.sort;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (isComplete !== undefined && isComplete !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isComplete, 'isComplete');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sort !== undefined && sort !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sort, 'sort');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/stats/dms-logs`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ApiResponseDto { \n code?: string;\n description?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardDto } from './jobcardDto';\nimport { CustomerCompanyDto } from './customerCompanyDto';\nimport { ChecklistDamageDto } from './checklistDamageDto';\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusDto } from './appointmentStatusDto';\nimport { PriorityTypeDto } from './priorityTypeDto';\nimport { UnitStatusDto } from './unitStatusDto';\nimport { VehicleCourtesyBookingDto } from './vehicleCourtesyBookingDto';\n\n\nexport interface AppointmentDto { \n id?: number;\n mileage?: number;\n engineHours?: number;\n workshopBayId?: number;\n workshopId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n currentStatus?: string;\n repairAddress?: string;\n receptionDate?: string;\n deliveryDate?: string;\n dmsCreationDate?: string;\n types?: Array;\n checklistInstances?: Array;\n checkListDamages?: Array;\n customerCompany?: CustomerCompanyDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n vehicle?: JobcardVehicleDto;\n vehicleCourtesy?: VehicleCourtesyDto;\n jobcard?: JobcardDto;\n status?: AppointmentStatusDto;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUserDto;\n unitStatus?: UnitStatusDto;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReasonDto;\n plannedDeliveryDate?: string;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n openedBy?: string;\n orderTypeHeaderCode?: number;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingDto;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n isInUseDms?: boolean;\n failureEngineHours?: number;\n jobcardTravels?: Array;\n dmsLogError?: boolean;\n priorityType?: PriorityTypeDto;\n customerPaymentMode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignatureDto { \n id?: number;\n url?: string;\n secretKey?: string;\n secretIV?: string;\n phase?: AppointmentSignatureDto.PhaseEnum;\n time?: string;\n customerNotPresent?: boolean;\n appointmentId?: number;\n customerCompanyUserId?: number;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\nexport namespace AppointmentSignatureDto {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\n\n\nexport interface AppointmentStatusDto { \n id?: number;\n workshopUser?: WorkshopUserDto;\n customerCompanyUser?: CustomerCompanyUserDto;\n status?: string;\n time?: string;\n reason?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\n\n\nexport interface BrandDto { \n id?: number;\n name?: string;\n iceCode?: string;\n modelDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CheckListResultAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultAttachmentDto } from './checkListResultAttachmentDto';\n\n\nexport interface CheckListResultDto { \n id?: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface ChecklistDamageDto { \n id?: number;\n appointment?: AppointmentDto;\n url?: string;\n zone?: number;\n year?: number;\n jobOrder?: number;\n type?: string;\n filename?: string;\n sapCode?: string;\n size?: number;\n comment?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultDto } from './checkListResultDto';\nimport { AppointmentSignatureDto } from './appointmentSignatureDto';\n\n\nexport interface ChecklistInstanceDto { \n id?: number;\n summaryUrl?: string;\n content?: string;\n appointmentId?: number;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n type?: string;\n workshopUserId?: string;\n checkListResult?: Array;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n appointmentSignature?: AppointmentSignatureDto;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Consumable { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConsumableDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetailsDto { \n id?: number;\n customerName?: string;\n cityName?: string;\n address?: string;\n countryCode?: string;\n zipCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\n\n\nexport interface CustomerCompanyDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n address?: string;\n zipcode?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: number;\n creditType?: string;\n dmsId?: string;\n displayedName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n customerNote?: string;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n users?: Array;\n cpdContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n customerPaymentMode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface CustomerCompanyUserDto { \n id?: number;\n customerCompanyId?: number;\n role?: RoleDto;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n dmsId?: string;\n appointmentDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DmsCommunicationDto { \n id?: number;\n orderStatus?: string;\n sendOrder?: boolean;\n convertOrder?: boolean;\n workshopId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DmsLog { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n logDate?: string;\n workshopId?: number;\n functionName?: string;\n code?: string;\n response?: string;\n request?: string;\n content?: string;\n responseTime?: number;\n fromDate?: string;\n toDate?: string;\n appointmentId?: number;\n uuid?: string;\n pageNumber?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DmsLogDto { \n id?: number;\n logDate?: string;\n workshopId?: number;\n functionName?: string;\n code?: string;\n response?: string;\n request?: string;\n content?: string;\n responseTime?: number;\n fromDate?: string;\n toDate?: string;\n appointmentId?: number;\n uuid?: string;\n pageNumber?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DmsStatusDto { \n connected?: boolean;\n details?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDeleted } from './jobcardItemDeleted';\nimport { JobcardMileage } from './jobcardMileage';\nimport { JobcardEngineHours } from './jobcardEngineHours';\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardTravel } from './jobcardTravel';\n\n\nexport interface Jobcard { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n jobcardItems?: Array;\n dmsJobOrder?: string;\n dmsJobOrderToClaim?: number;\n dmsJobOrderClaimNumber?: number;\n estimatedDuration?: number;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n failureDate?: string;\n mileagePictureUrl?: string;\n customerOrderNumber?: string;\n dmsOrderType?: string;\n percentage?: number;\n jobcardItemDeleted?: Array;\n jobcardAttachments?: Array;\n jobcardMileages?: Array;\n jobcardTravel?: Array;\n jobcardEngineHours?: Array;\n djcOrderType?: string;\n lastUpdatedBy?: string;\n dealerClaimNumber?: number;\n ansDossier?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardAttachment { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n jobcard?: Jobcard;\n url?: string;\n type?: string;\n fileName?: string;\n fileSize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardDto } from './jobcardDto';\n\n\nexport interface JobcardAttachmentDto { \n id?: number;\n jobcardDto?: JobcardDto;\n url?: string;\n type?: string;\n filename?: string;\n filesize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\nimport { JobcardItemDto } from './jobcardItemDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { JobcardItemDeletedDto } from './jobcardItemDeletedDto';\nimport { JobcardItemMobileDto } from './jobcardItemMobileDto';\n\n\nexport interface JobcardDto { \n id?: number;\n dmsJobOrder?: string;\n dmsToStrClaim?: number;\n claim?: number;\n dmsOrderType?: string;\n estimatedDuration?: number;\n startTime?: string;\n endTime?: string;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n mileagePictureUrl?: string;\n failureDate?: string;\n customerOrderNumber?: string;\n jobcardItems?: Array;\n jobcardItemMobileDto?: Array;\n jobcardTravels?: Array;\n percentage?: number;\n jobcardAttachmentDtos?: Array;\n jobcardMileages?: Array;\n jobcardEngineHours?: Array;\n lastUpdatedBy?: string;\n dealerClaimNumber?: string;\n ansDossier?: string;\n jobcardItemDeleted?: Array;\n djcOrderType?: string;\n jobcardSerialNumbers?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardEngineHours { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n photoUrl?: string;\n name?: string;\n fileName?: string;\n fileSize?: number;\n fileType?: string;\n year?: number;\n creationDate?: string;\n jobcard?: Jobcard;\n isDeleted?: boolean;\n reason?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { WorkshopUser } from './workshopUser';\nimport { Part } from './part';\nimport { WarrantyClaimData } from './warrantyClaimData';\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { Jobcard } from './jobcard';\nimport { JobcardItemExtraOperation } from './jobcardItemExtraOperation';\nimport { JobcardItemAttachment } from './jobcardItemAttachment';\nimport { JobcardItemStatus } from './jobcardItemStatus';\n\n\nexport interface JobcardItem { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n name?: string;\n type?: string;\n code?: string;\n description?: string;\n additionalDescription?: string;\n weight?: number;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n extraActivity?: boolean;\n customerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n causalPartCode?: string;\n duration?: number;\n status?: string;\n addOnStatus?: string;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n dmsId?: string;\n docId?: string;\n jobcard?: Jobcard;\n jobcardItemAttachments?: Array;\n estimatedDuration?: number;\n operations?: Array;\n jobcardItemExtraOperations?: Array;\n jobcardItemStatus?: Array;\n workshopUser?: WorkshopUser;\n failureCode?: string;\n failureDescription?: string;\n causalPart?: Part;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n warrantyType?: string;\n contractNumber?: string;\n failureSeverity?: number;\n defectCode?: string;\n supplierCode?: string;\n deleted?: boolean;\n generalNote?: string;\n cause?: string;\n correction?: string;\n percentage?: number;\n startDate?: string;\n mpPlanId?: number;\n internalNotes?: string;\n workshopDiscount?: WorkshopDiscount;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimData;\n inspectionActivity?: boolean;\n officialTime?: number;\n defferDeleteReason?: string;\n sapResponse?: string;\n couponStatus?: string;\n deferredDate?: string;\n deferredToDate?: string;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n paymentType?: string;\n paymentTypeDisabled?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemAttachment { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n jobcardItem?: JobcardItem;\n creationDate?: string;\n workshopUser?: WorkshopUser;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemCustomerStatusDto { \n id?: number;\n jobcardItemId?: number;\n action?: string;\n actionDateTime?: string;\n actionPerformedBy?: string;\n actionType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardItemDeleted { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n type?: string;\n code?: string;\n jobcard?: Jobcard;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemDeletedDto { \n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { SplitDto } from './splitDto';\nimport { MpInformationDto } from './mpInformationDto';\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\nimport { JobcardItemAttachmentDto } from './jobcardItemAttachmentDto';\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { WarrantyClaimDataDto } from './warrantyClaimDataDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { WarrantyTypeDto } from './warrantyTypeDto';\nimport { JobcardItemExtraOperationDto } from './jobcardItemExtraOperationDto';\nimport { JobcardPartsBacklogDto } from './jobcardPartsBacklogDto';\n\n\nexport interface JobcardItemDto { \n workshopUserId?: string;\n id?: number;\n name?: string;\n code?: string;\n description?: string;\n deferredDate?: string;\n deferredToDate?: string;\n additionalDescription?: string;\n weight?: number;\n operations?: Array;\n estimatedDuration?: number;\n jobcardItemAttachments?: Array;\n jobcardItemStatus?: Array;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n failureCode?: string;\n failureDescription?: string;\n causalPartId?: number;\n defectCode?: string;\n supplierCode?: string;\n failureSeverity?: number;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n contractNumber?: string;\n warrantyType?: string;\n ids?: Array;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n deleted?: boolean;\n extraOperations?: Array;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n subtype?: string;\n type?: string;\n priority?: number;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformationDto;\n generalNote?: string;\n cause?: string;\n correction?: string;\n duration?: number;\n status?: string;\n percentage?: number;\n startDate?: string;\n discountTypeId?: number;\n technicians?: Array;\n addOnStatus?: string;\n internalNotes?: string;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimDataDto;\n dmsId?: string;\n inspectionActivity?: boolean;\n sapResponse?: string;\n workshopBayId?: number;\n disabled?: boolean;\n checklistInstances?: Array;\n officialTime?: number;\n errorMsg?: string;\n docId?: string;\n jobcardItemSpells?: Array;\n couponStatus?: string;\n jobcardItemCustomerStatus?: Array;\n paymentType?: PaymentTypeDto;\n payType?: string;\n jobcardPartsBacklog?: Array;\n defferDeleteReason?: string;\n paymentWarrantyType?: WarrantyTypeDto;\n tempJId?: string;\n selected?: boolean;\n paymentSubType?: PaymentSubTypeDto;\n paymentSubType2?: PaymentSubTypeDto;\n paymentSubType3?: PaymentSubTypeDto;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n paymentTypeDisabled?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemExtraOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n compulsory?: boolean;\n jobcardItem?: JobcardItem;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n addOnStatus?: string;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemExtraOperationDto { \n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n deleted?: boolean;\n compulsory?: boolean;\n selected?: boolean;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n disablePrice?: boolean;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n active?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\n\n\nexport interface JobcardItemMobileDto { \n id?: number;\n name?: string;\n jobcardItemStatus?: Array;\n weight?: number;\n deferred?: boolean;\n deleted?: boolean;\n status?: string;\n technicians?: Array;\n jobcardItemSpells?: Array;\n jobcardItemCustomerStatus?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\nimport { JobcardItemOperationConsumable } from './jobcardItemOperationConsumable';\n\n\nexport interface JobcardItemOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n code?: string;\n label?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n jobcardItem?: JobcardItem;\n price?: number;\n compulsory?: boolean;\n operationManufacturer?: string;\n addOnStatus?: string;\n srt?: boolean;\n isDefault?: boolean;\n type?: string;\n jobcardItemOperationParts?: Array;\n jobcardItemOperationConsumables?: Array;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Consumable } from './consumable';\n\n\nexport interface JobcardItemOperationConsumable { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: string;\n jobcardItemOperation?: JobcardItemOperation;\n consumable?: Consumable;\n price?: number;\n ewarrantyCode?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ConsumableDto } from './consumableDto';\n\n\nexport interface JobcardItemOperationConsumableDto { \n id?: number;\n quantity?: string;\n consumable?: ConsumableDto;\n compulsory?: boolean;\n price?: number;\n selected?: boolean;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationConsumableDto } from './jobcardItemOperationConsumableDto';\nimport { JobcardItemOperationPartDto } from './jobcardItemOperationPartDto';\n\n\nexport interface JobcardItemOperationDto { \n id?: number;\n code?: string;\n label?: string;\n type?: string;\n description?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n compulsory?: boolean;\n selected?: boolean;\n price?: number;\n manufacturer?: string;\n addOnStatus?: string;\n parts?: Array;\n consumables?: Array;\n isKitComplete?: boolean;\n useKitPart?: boolean;\n dmsId?: string;\n srt?: boolean;\n isDefault?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Part } from './part';\nimport { JobcardItemOperationPartLocation } from './jobcardItemOperationPartLocation';\n\n\nexport interface JobcardItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n jobcardItemOperation?: JobcardItemOperation;\n part?: Part;\n price?: number;\n cost?: number;\n tobereturned?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocation?: Array;\n pickupDate?: string;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardItemOperationPartDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobCardItemOperation?: JobcardItemOperationDto;\n pickupDate?: string;\n tobereturned?: boolean;\n compulsory?: boolean;\n price?: number;\n cost?: number;\n selected?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocationList?: Array;\n ewarrantyCode?: string;\n version?: number;\n isAvailableAtHomeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemOperationPartLocation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n locationId?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\n\n\nexport interface JobcardItemOperationPartLocationDto { \n id?: number;\n locationId?: string;\n jobcardItemOperationPart?: JobcardItemOperationPart;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n version?: number;\n availableAtHomeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\n\n\nexport interface JobcardItemSpellDto { \n id?: number;\n name?: string;\n weight?: number;\n estimatedDuration?: number;\n startDate?: string;\n workshopBayId?: number;\n technicians?: Array;\n selected?: boolean;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemStatus { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n workshopUser?: WorkshopUser;\n jobcardItem?: JobcardItem;\n reason?: string;\n otherReason?: string;\n isDeleted?: boolean;\n dmsId?: string;\n}\nexport namespace JobcardItemStatus {\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP' | 'CLOCKING_WEB' | 'CLOCKING_DMS' | 'CLOCKING_CRON';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum,\n WEB: 'CLOCKING_WEB' as ClockingStatusEnum,\n DMS: 'CLOCKING_DMS' as ClockingStatusEnum,\n CRON: 'CLOCKING_CRON' as ClockingStatusEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemStatusDto { \n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: string;\n jobcardItemId?: number;\n workshopUserId?: string;\n reason?: string;\n otherReason?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n dmsId?: string;\n hasError?: boolean;\n errorReason?: string;\n activityId?: number;\n appointmentId?: number;\n deleted?: boolean;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemTechnicianDto { \n id?: number;\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n isDeleted?: boolean;\n spellLinkId?: number;\n firstName?: string;\n lastName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardMileage { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n photoUrl?: string;\n name?: string;\n fileName?: string;\n fileSize?: number;\n fileType?: string;\n year?: number;\n creationDate?: string;\n jobcard?: Jobcard;\n reason?: string;\n isDeleted?: boolean;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardPartsBacklog { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n basicDiscount?: number;\n promoDiscount?: number;\n netPrice?: number;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n cspsOrderId?: number;\n details?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardPartsBacklogDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobcardItemId?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n netPrice?: number;\n customerCompanyId?: number;\n appointmentId?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n partId?: number;\n operation?: string;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n basicDiscount?: number;\n promoDiscount?: number;\n cspsOrderId?: number;\n workshopId?: number;\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardTravel { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n distance?: number;\n duration?: number;\n date?: string;\n jobcard?: Jobcard;\n reason?: string;\n otherReason?: string;\n isDeleted?: boolean;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n price?: number;\n travelTypeFrom?: number;\n travelTypeTo?: number;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n dmsId?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { WorkshopUserTravelPositionDto } from './workshopUserTravelPositionDto';\n\n\nexport interface JobcardTravelDto { \n id?: number;\n dmsId?: string;\n name?: string;\n duration?: number;\n jobcardId?: number;\n distance?: number;\n date?: string;\n reason?: string;\n otherReason?: string;\n deleted?: boolean;\n workshopUserId?: string;\n positions?: Array;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n paymentType?: PaymentTypeDto;\n paymentSubType?: PaymentSubTypeDto;\n price?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n travelTypeFrom?: string;\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { VehicleLegalInspectionDto } from './vehicleLegalInspectionDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface JobcardVehicleDto { \n id?: number;\n workshopId?: number;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n wtyStartDate?: string;\n customerCompanyId?: number;\n annualInspectionDate?: string;\n tachometerDate?: string;\n isActive?: boolean;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vehicleNote?: string;\n customerCompanyUser?: CustomerCompanyUserDto;\n ownerId?: string;\n invoiceDate?: string;\n appointments?: Array;\n stockNumber?: string;\n inspections?: Array;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\n\n\nexport interface KitItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n part?: Part;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BrandDto } from './brandDto';\n\n\nexport interface ModelDto { \n id?: number;\n name?: string;\n brand?: BrandDto;\n}\n\n","export * from './apiResponseDto';\nexport * from './appointmentDto';\nexport * from './appointmentSignatureDto';\nexport * from './appointmentStatusDto';\nexport * from './brandDto';\nexport * from './checkListResultAttachmentDto';\nexport * from './checkListResultDto';\nexport * from './checklistDamageDto';\nexport * from './checklistInstanceDto';\nexport * from './consumable';\nexport * from './consumableDto';\nexport * from './cpdContactDetailsDto';\nexport * from './customerCompanyDto';\nexport * from './customerCompanyUserDto';\nexport * from './dmsCommunicationDto';\nexport * from './dmsLog';\nexport * from './dmsLogDto';\nexport * from './dmsStatusDto';\nexport * from './jobcard';\nexport * from './jobcardAttachment';\nexport * from './jobcardAttachmentDto';\nexport * from './jobcardDto';\nexport * from './jobcardEngineHours';\nexport * from './jobcardItem';\nexport * from './jobcardItemAttachment';\nexport * from './jobcardItemAttachmentDto';\nexport * from './jobcardItemCustomerStatusDto';\nexport * from './jobcardItemDeleted';\nexport * from './jobcardItemDeletedDto';\nexport * from './jobcardItemDto';\nexport * from './jobcardItemExtraOperation';\nexport * from './jobcardItemExtraOperationDto';\nexport * from './jobcardItemMobileDto';\nexport * from './jobcardItemOperation';\nexport * from './jobcardItemOperationConsumable';\nexport * from './jobcardItemOperationConsumableDto';\nexport * from './jobcardItemOperationDto';\nexport * from './jobcardItemOperationPart';\nexport * from './jobcardItemOperationPartDto';\nexport * from './jobcardItemOperationPartLocation';\nexport * from './jobcardItemOperationPartLocationDto';\nexport * from './jobcardItemSpellDto';\nexport * from './jobcardItemStatus';\nexport * from './jobcardItemStatusDto';\nexport * from './jobcardItemTechnicianDto';\nexport * from './jobcardMileage';\nexport * from './jobcardPartsBacklog';\nexport * from './jobcardPartsBacklogDto';\nexport * from './jobcardTravel';\nexport * from './jobcardTravelDto';\nexport * from './jobcardVehicleDto';\nexport * from './kitItemOperationPart';\nexport * from './modelDto';\nexport * from './mpDeltaDto';\nexport * from './mpInformationDto';\nexport * from './mpKitCompositionDto';\nexport * from './onHoldReasonDto';\nexport * from './openingDay';\nexport * from './pageDmsLog';\nexport * from './pageDmsLogDto';\nexport * from './pageable';\nexport * from './part';\nexport * from './partDetail';\nexport * from './partDto';\nexport * from './partMaster';\nexport * from './partMasterHeader';\nexport * from './partsTrackerCsps';\nexport * from './partsTrackerDms';\nexport * from './paymentSubSubTypeDto';\nexport * from './paymentSubTypeDto';\nexport * from './paymentTypeDto';\nexport * from './period';\nexport * from './priorityTypeDto';\nexport * from './role';\nexport * from './roleDto';\nexport * from './shiftDto';\nexport * from './shiftPeriodDto';\nexport * from './skillDto';\nexport * from './sort';\nexport * from './splitDto';\nexport * from './unitStatusDto';\nexport * from './vehicleCourtesyBookingDto';\nexport * from './vehicleCourtesyDto';\nexport * from './vehicleLegalInspectionDto';\nexport * from './warrantyClaimData';\nexport * from './warrantyClaimDataDto';\nexport * from './warrantyTypeDto';\nexport * from './workshop';\nexport * from './workshopBay';\nexport * from './workshopBayDto';\nexport * from './workshopDiscount';\nexport * from './workshopDiscountDto';\nexport * from './workshopDto';\nexport * from './workshopSalesOrganizationDto';\nexport * from './workshopUser';\nexport * from './workshopUserDto';\nexport * from './workshopUserRelation';\nexport * from './workshopUserTravelPositionDto';\nexport * from './workshopUserUnavailability';\nexport * from './workshopUserUnavailabilityDto';\nexport * from './worshopUserSetting';\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpDeltaDto { \n unit?: string;\n value?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpDeltaDto } from './mpDeltaDto';\n\n\nexport interface MpInformationDto { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpKitCompositionDto { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReasonDto { \n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Period } from './period';\n\n\nexport interface OpeningDay { \n weekday?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Pageable } from './pageable';\nimport { DmsLog } from './dmsLog';\nimport { Sort } from './sort';\n\n\nexport interface PageDmsLog { \n totalPages?: number;\n totalElements?: number;\n first?: boolean;\n last?: boolean;\n size?: number;\n content?: Array;\n number?: number;\n sort?: Sort;\n numberOfElements?: number;\n pageable?: Pageable;\n empty?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DmsLogDto } from './dmsLogDto';\nimport { Pageable } from './pageable';\nimport { Sort } from './sort';\n\n\nexport interface PageDmsLogDto { \n totalPages?: number;\n totalElements?: number;\n first?: boolean;\n last?: boolean;\n size?: number;\n content?: Array;\n number?: number;\n sort?: Sort;\n numberOfElements?: number;\n pageable?: Pageable;\n empty?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Sort } from './sort';\n\n\nexport interface Pageable { \n offset?: number;\n sort?: Sort;\n pageNumber?: number;\n unpaged?: boolean;\n paged?: boolean;\n pageSize?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartsTrackerDms } from './partsTrackerDms';\nimport { KitItemOperationPart } from './kitItemOperationPart';\nimport { Workshop } from './workshop';\nimport { JobcardPartsBacklog } from './jobcardPartsBacklog';\nimport { PartDetail } from './partDetail';\nimport { PartsTrackerCsps } from './partsTrackerCsps';\n\n\nexport interface Part { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n workshop?: Workshop;\n code?: string;\n description?: string;\n quantity?: number;\n manufacturer?: string;\n price?: number;\n partDetail?: PartDetail;\n kitOperationParts?: Array;\n partSuperseedingId?: number;\n isKit?: boolean;\n jobcardPartsBacklog?: Array;\n partsTrackerDms?: Array;\n partsTrackerCsps?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartDetail { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n firstModelYear?: string;\n lastModelYear?: string;\n partManufacturer?: string;\n manufacturerPartCode?: string;\n packageQuantity?: number;\n partChangeStatus?: number;\n partTypeCode?: string;\n partManufacturerBrand?: string;\n alternatePartCode?: string;\n brand?: string;\n partName?: string;\n hazmatDescription?: string;\n hazmatIndicator?: number;\n uomCode?: string;\n classCode?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { MpKitCompositionDto } from './mpKitCompositionDto';\n\n\nexport interface PartDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partSuperseedingId?: number;\n partDetailId?: number;\n quantity?: number;\n booking?: string;\n visitDate?: string;\n vehPlate?: string;\n customer?: string;\n activity?: string;\n manufacturer?: string;\n isKit?: boolean;\n kitParts?: Array;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n jobcardItemOperationPartLocationList?: Array;\n price?: number;\n homeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartMasterHeader } from './partMasterHeader';\nimport { Workshop } from './workshop';\n\n\nexport interface PartMaster { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n partMasterHeader?: PartMasterHeader;\n workshop?: Workshop;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartMaster } from './partMaster';\n\n\nexport interface PartMasterHeader { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n documentDateTime?: string;\n documentId?: string;\n partMasterCountryCode?: string;\n partMasterEffectiveDate?: string;\n partMaster?: PartMaster;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerCsps { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerDms { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PaymentSubSubTypeDto { \n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n weight?: number;\n isVisible?: boolean;\n paymentSubTypeId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\n\n\nexport interface PaymentSubTypeDto { \n id?: number;\n description?: string;\n type?: string;\n code?: string;\n weight?: number;\n paymentTypeId?: number;\n isVisible?: boolean;\n categoryType?: string;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\n\n\nexport interface PaymentTypeDto { \n id?: number;\n isVisible?: boolean;\n workshopId?: number;\n type?: string;\n weight?: number;\n paymentSubTypes?: Array;\n code?: string;\n name?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Period { \n id?: number;\n start?: string;\n end?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PriorityTypeDto { \n id?: number;\n description?: string;\n status?: string;\n icon?: string;\n defaultPriority?: boolean;\n workshopId?: number;\n type?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Role { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n roleAbbrev?: string;\n iamAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RoleDto { \n id?: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriodDto } from './shiftPeriodDto';\n\n\nexport interface ShiftDto { \n id?: number;\n description?: string;\n type?: string;\n startDate?: string;\n endDate?: string;\n userShiftId?: number;\n targetTime?: number;\n dmsId?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriodDto { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SkillDto { \n id?: number;\n description?: string;\n translationKey?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Sort { \n empty?: boolean;\n unsorted?: boolean;\n sorted?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SplitDto { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n pricingId?: number;\n jobcardItemId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnitStatusDto { \n id?: number;\n date?: string;\n unitDown?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface VehicleCourtesyBookingDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n reason?: string;\n vehicleCourtesy?: VehicleCourtesyDto;\n appointment?: AppointmentDto;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { WorkshopDto } from './workshopDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface VehicleCourtesyDto { \n id?: number;\n plate?: string;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n mileage?: number;\n dmsId?: string;\n workshop?: WorkshopDto;\n vehicleNote?: string;\n status?: string;\n appointments?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleLegalInspectionDto { \n id?: number;\n label?: string;\n code?: string;\n date?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimData { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimDataDto { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyTypeDto { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { PartMaster } from './partMaster';\n\n\nexport interface Workshop { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n masterWorkshopId?: number;\n dmsUrl?: string;\n tempDmsUrl?: string;\n dmsAuthenticationId?: string;\n tempDmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n dmsClearAuthenticationPassword?: string;\n currencyCode?: string;\n cspsUserId?: string;\n enableSafetyChecklist?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n labourCost?: string;\n dmsProvider?: string;\n partMaster?: PartMaster;\n workshopDiscount?: Array;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n dealerClaimCounter?: number;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopBay { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n bayCode?: string;\n active?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface WorkshopBayDto { \n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n leadTechnician?: string;\n technicians?: Array;\n bayCode?: string;\n isActive?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopDiscount { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDto } from './workshopDto';\n\n\nexport interface WorkshopDiscountDto { \n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n workshop?: WorkshopDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { OpeningDay } from './openingDay';\nimport { WorkshopSalesOrganizationDto } from './workshopSalesOrganizationDto';\n\n\nexport interface WorkshopDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n openingTime?: string;\n closureTime?: string;\n openingDays?: Array;\n masterWorkshopId?: number;\n workshopBayDto?: WorkshopBayDto;\n currencyCode?: string;\n cspsUserId?: string;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n workshopSalesOrganizations?: Array;\n paymentCode?: string;\n labourCost?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n enableSafetyChecklist?: boolean;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n dmsProvider?: string;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesOrganizationDto { \n id?: number;\n brandDivision?: string;\n market?: string;\n salesCode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Role } from './role';\nimport { WorshopUserSetting } from './worshopUserSetting';\nimport { WorkshopUserRelation } from './workshopUserRelation';\nimport { WorkshopUserUnavailability } from './workshopUserUnavailability';\n\n\nexport interface WorkshopUser { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n deviceToken?: string;\n appVersion?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n views?: string;\n isActivityApproval?: string;\n costRate?: string;\n role?: Role;\n canEditJobcard?: boolean;\n isAutomaticApproval?: string;\n canSeePrice?: boolean;\n isAssociateUser?: boolean;\n canSelfAssign?: boolean;\n clockingLog?: string;\n workshopUserUnavailability?: Array;\n workshopUserRelations?: Array;\n worshopUserSettings?: Array;\n active?: boolean;\n manualJobStatusOverride?: boolean;\n displayingOccupancy?: boolean;\n admin?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { WorkshopDiscountDto } from './workshopDiscountDto';\nimport { SkillDto } from './skillDto';\nimport { ShiftDto } from './shiftDto';\nimport { WorkshopDto } from './workshopDto';\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { WorkshopUserUnavailabilityDto } from './workshopUserUnavailabilityDto';\n\n\nexport interface WorkshopUserDto { \n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n role?: RoleDto;\n isAdmin?: boolean;\n isActive?: boolean;\n views?: string;\n isTechnicianView?: boolean;\n deviceToken?: string;\n appVersion?: string;\n skills?: Array;\n canEditJobcard?: boolean;\n displayedName?: string;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n canSeePrice?: boolean;\n leadWorkshopBayId?: number;\n url?: string;\n isManualJobStatusOverride?: boolean;\n isAssociateUser?: boolean;\n workshopDiscountDto?: Array;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n costRate?: string;\n isAutomaticApproval?: string;\n isActivityApproval?: string;\n unavailabilities?: Array;\n workshopBays?: Array;\n shifts?: Array;\n isAssociatedWithWorkshop?: boolean;\n canSelfAssign?: boolean;\n workshopList?: Array;\n showClockingResume?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Workshop } from './workshop';\nimport { WorkshopBay } from './workshopBay';\n\n\nexport interface WorkshopUserRelation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n workshop?: Workshop;\n workshopBay?: WorkshopBay;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserTravelPositionDto { \n id?: number;\n workshopUserId?: string;\n jobcardTravelId?: number;\n latitude?: number;\n longitude?: number;\n positionDate?: string;\n positionType?: string;\n deviceStatus?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailability { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n fromDms?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailabilityDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n isFromDms?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface WorshopUserSetting { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n key?: string;\n type?: WorshopUserSetting.TypeEnum;\n intValue?: number;\n strValue?: string;\n boolValue?: boolean;\n workshopUser?: WorkshopUser;\n}\nexport namespace WorshopUserSetting {\n export type TypeEnum = 'BOOL' | 'STR' | 'INT';\n export const TypeEnum = {\n BOOL: 'BOOL' as TypeEnum,\n STR: 'STR' as TypeEnum,\n INT: 'INT' as TypeEnum\n };\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { ActivityReportService } from './api/activityReport.service';\nimport { AppointmentsReportCancelledService } from './api/appointmentsReportCancelled.service';\nimport { AuditReportService } from './api/auditReport.service';\nimport { InspectionCheckListReportService } from './api/inspectionCheckListReport.service';\nimport { KpiCustomerTrendsService } from './api/kpiCustomerTrends.service';\nimport { KpiInspectionReportService } from './api/kpiInspectionReport.service';\nimport { KpiOrderStatusService } from './api/kpiOrderStatus.service';\nimport { KpiPartsService } from './api/kpiParts.service';\nimport { KpiPerformanceService } from './api/kpiPerformance.service';\nimport { KpiSummaryService } from './api/kpiSummary.service';\nimport { KpiUtilizationService } from './api/kpiUtilization.service';\nimport { KpiWorkInProgressService } from './api/kpiWorkInProgress.service';\nimport { ModelService } from './api/model.service';\nimport { NoShowReportService } from './api/noShowReport.service';\nimport { PartsService } from './api/parts.service';\nimport { ReportingWorkInProgressService } from './api/reportingWorkInProgress.service';\nimport { SafetyCheckListService } from './api/safetyCheckList.service';\nimport { TechnicianClockingReportService } from './api/technicianClockingReport.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ActivityReportDayDto } from '../model/models';\nimport { ActivityReportDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveActivityDayReportRequestParams {\n workshopId: number;\n fromDate: string;\n toDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopBayId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveActivityReportRequestParams {\n workshopId: number;\n fromDate: string;\n toDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopBayId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityReportService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveActivityDayReport(requestParameters: RetriveActivityDayReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveActivityDayReport(requestParameters: RetriveActivityDayReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveActivityDayReport(requestParameters: RetriveActivityDayReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveActivityDayReport(requestParameters: RetriveActivityDayReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveActivityDayReport.');\n }\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling retriveActivityDayReport.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling retriveActivityDayReport.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveActivityDayReport.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/activity-report/days`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveActivityReport(requestParameters: RetriveActivityReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveActivityReport(requestParameters: RetriveActivityReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveActivityReport(requestParameters: RetriveActivityReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveActivityReport(requestParameters: RetriveActivityReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveActivityReport.');\n }\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling retriveActivityReport.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling retriveActivityReport.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveActivityReport.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/activity-report`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './activityReport.service';\nimport { ActivityReportService } from './activityReport.service';\nexport * from './appointmentsReportCancelled.service';\nimport { AppointmentsReportCancelledService } from './appointmentsReportCancelled.service';\nexport * from './auditReport.service';\nimport { AuditReportService } from './auditReport.service';\nexport * from './inspectionCheckListReport.service';\nimport { InspectionCheckListReportService } from './inspectionCheckListReport.service';\nexport * from './kpiCustomerTrends.service';\nimport { KpiCustomerTrendsService } from './kpiCustomerTrends.service';\nexport * from './kpiInspectionReport.service';\nimport { KpiInspectionReportService } from './kpiInspectionReport.service';\nexport * from './kpiOrderStatus.service';\nimport { KpiOrderStatusService } from './kpiOrderStatus.service';\nexport * from './kpiParts.service';\nimport { KpiPartsService } from './kpiParts.service';\nexport * from './kpiPerformance.service';\nimport { KpiPerformanceService } from './kpiPerformance.service';\nexport * from './kpiSummary.service';\nimport { KpiSummaryService } from './kpiSummary.service';\nexport * from './kpiUtilization.service';\nimport { KpiUtilizationService } from './kpiUtilization.service';\nexport * from './kpiWorkInProgress.service';\nimport { KpiWorkInProgressService } from './kpiWorkInProgress.service';\nexport * from './model.service';\nimport { ModelService } from './model.service';\nexport * from './noShowReport.service';\nimport { NoShowReportService } from './noShowReport.service';\nexport * from './parts.service';\nimport { PartsService } from './parts.service';\nexport * from './reportingWorkInProgress.service';\nimport { ReportingWorkInProgressService } from './reportingWorkInProgress.service';\nexport * from './safetyCheckList.service';\nimport { SafetyCheckListService } from './safetyCheckList.service';\nexport * from './technicianClockingReport.service';\nimport { TechnicianClockingReportService } from './technicianClockingReport.service';\nexport const APIS = [ActivityReportService, AppointmentsReportCancelledService, AuditReportService, InspectionCheckListReportService, KpiCustomerTrendsService, KpiInspectionReportService, KpiOrderStatusService, KpiPartsService, KpiPerformanceService, KpiSummaryService, KpiUtilizationService, KpiWorkInProgressService, ModelService, NoShowReportService, PartsService, ReportingWorkInProgressService, SafetyCheckListService, TechnicianClockingReportService];\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { PageAppointmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveAppointmentsByCancelledStatusRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentsReportCancelledService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveAppointmentsByCancelledStatus(requestParameters: RetriveAppointmentsByCancelledStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retriveAppointmentsByCancelledStatus(requestParameters: RetriveAppointmentsByCancelledStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveAppointmentsByCancelledStatus(requestParameters: RetriveAppointmentsByCancelledStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveAppointmentsByCancelledStatus(requestParameters: RetriveAppointmentsByCancelledStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveAppointmentsByCancelledStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveAppointmentsByCancelledStatus.');\n }\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/appointments/reporting-cancelled`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AuditTrackingMultiExportRequestParams {\n workshopId: number;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n requestBody: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveAppointmentsByWorkshopId1RequestParams {\n workshopId: number;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n workshopBayId?: number;\n workshopUserId?: string;\n customerCompanyId?: number;\n view?: string;\n vehicleId?: number;\n vin?: string;\n currentStatus?: string;\n report?: string;\n dmsJobOrder?: string;\n withDeferred?: boolean;\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuditReportService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public auditTrackingMultiExport(requestParameters: AuditTrackingMultiExportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public auditTrackingMultiExport(requestParameters: AuditTrackingMultiExportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public auditTrackingMultiExport(requestParameters: AuditTrackingMultiExportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public auditTrackingMultiExport(requestParameters: AuditTrackingMultiExportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling auditTrackingMultiExport.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling auditTrackingMultiExport.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling auditTrackingMultiExport.');\n }\n const requestBody = requestParameters.requestBody;\n if (requestBody === null || requestBody === undefined) {\n throw new Error('Required parameter requestBody was null or undefined when calling auditTrackingMultiExport.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshopusers/${encodeURIComponent(String(userId))}/audit-report/export`,\n requestBody,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveAppointmentsByWorkshopId1(requestParameters: RetriveAppointmentsByWorkshopId1RequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveAppointmentsByWorkshopId1(requestParameters: RetriveAppointmentsByWorkshopId1RequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveAppointmentsByWorkshopId1(requestParameters: RetriveAppointmentsByWorkshopId1RequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveAppointmentsByWorkshopId1(requestParameters: RetriveAppointmentsByWorkshopId1RequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveAppointmentsByWorkshopId1.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling retriveAppointmentsByWorkshopId1.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveAppointmentsByWorkshopId1.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopBayId = requestParameters.workshopBayId;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const view = requestParameters.view;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const currentStatus = requestParameters.currentStatus;\n const report = requestParameters.report;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const withDeferred = requestParameters.withDeferred;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (report !== undefined && report !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n report, 'report');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshopusers/${encodeURIComponent(String(userId))}/audit-report`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { InspectionChecklistReportLineDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface DownloadInpectionChecklistReportExcelRequestParams {\n workshopId: number;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n inspectionChecklistReportLineDto: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchInspectionChecklistReportsRequestParams {\n workshopId: number;\n userId: string;\n startDate: string;\n endDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n customerName?: string;\n serialNumber?: string;\n appointmentId?: number;\n dmsJobOrder?: number;\n plateNumber?: string;\n checklistTypes?: Array;\n modelIds?: Array;\n technicianIds?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InspectionCheckListReportService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public downloadInpectionChecklistReportExcel(requestParameters: DownloadInpectionChecklistReportExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public downloadInpectionChecklistReportExcel(requestParameters: DownloadInpectionChecklistReportExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public downloadInpectionChecklistReportExcel(requestParameters: DownloadInpectionChecklistReportExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public downloadInpectionChecklistReportExcel(requestParameters: DownloadInpectionChecklistReportExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling downloadInpectionChecklistReportExcel.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling downloadInpectionChecklistReportExcel.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling downloadInpectionChecklistReportExcel.');\n }\n const inspectionChecklistReportLineDto = requestParameters.inspectionChecklistReportLineDto;\n if (inspectionChecklistReportLineDto === null || inspectionChecklistReportLineDto === undefined) {\n throw new Error('Required parameter inspectionChecklistReportLineDto was null or undefined when calling downloadInpectionChecklistReportExcel.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshopusers/${encodeURIComponent(String(userId))}/inspection-checklists/report`,\n inspectionChecklistReportLineDto,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchInspectionChecklistReports(requestParameters: SearchInspectionChecklistReportsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public searchInspectionChecklistReports(requestParameters: SearchInspectionChecklistReportsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public searchInspectionChecklistReports(requestParameters: SearchInspectionChecklistReportsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public searchInspectionChecklistReports(requestParameters: SearchInspectionChecklistReportsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling searchInspectionChecklistReports.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling searchInspectionChecklistReports.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling searchInspectionChecklistReports.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling searchInspectionChecklistReports.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling searchInspectionChecklistReports.');\n }\n const customerName = requestParameters.customerName;\n const serialNumber = requestParameters.serialNumber;\n const appointmentId = requestParameters.appointmentId;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const plateNumber = requestParameters.plateNumber;\n const checklistTypes = requestParameters.checklistTypes;\n const modelIds = requestParameters.modelIds;\n const technicianIds = requestParameters.technicianIds;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (customerName !== undefined && customerName !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerName, 'customerName');\n }\n if (serialNumber !== undefined && serialNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n serialNumber, 'serialNumber');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (plateNumber !== undefined && plateNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n plateNumber, 'plateNumber');\n }\n if (checklistTypes) {\n checklistTypes.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'checklistTypes');\n })\n }\n if (modelIds) {\n modelIds.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'modelIds');\n })\n }\n if (technicianIds) {\n technicianIds.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'technicianIds');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshopusers/${encodeURIComponent(String(userId))}/inspection-checklists/report`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CustomerTrendsDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SearchCustomerTrendsReportsRequestParams {\n startDate: string;\n endDate: string;\n invoiced: boolean;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiCustomerTrendsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchCustomerTrendsReports(requestParameters: SearchCustomerTrendsReportsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchCustomerTrendsReports(requestParameters: SearchCustomerTrendsReportsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchCustomerTrendsReports(requestParameters: SearchCustomerTrendsReportsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchCustomerTrendsReports(requestParameters: SearchCustomerTrendsReportsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling searchCustomerTrendsReports.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling searchCustomerTrendsReports.');\n }\n const invoiced = requestParameters.invoiced;\n if (invoiced === null || invoiced === undefined) {\n throw new Error('Required parameter invoiced was null or undefined when calling searchCustomerTrendsReports.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling searchCustomerTrendsReports.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling searchCustomerTrendsReports.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (invoiced !== undefined && invoiced !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n invoiced, 'invoiced');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpi/customer-trends`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KpiInspectionReportDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SearchInspectionChecklistReports1RequestParams {\n startDate: string;\n endDate: string;\n invoiced: boolean;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n checklistTypes?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiInspectionReportService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchInspectionChecklistReports1(requestParameters: SearchInspectionChecklistReports1RequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchInspectionChecklistReports1(requestParameters: SearchInspectionChecklistReports1RequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchInspectionChecklistReports1(requestParameters: SearchInspectionChecklistReports1RequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchInspectionChecklistReports1(requestParameters: SearchInspectionChecklistReports1RequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling searchInspectionChecklistReports1.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling searchInspectionChecklistReports1.');\n }\n const invoiced = requestParameters.invoiced;\n if (invoiced === null || invoiced === undefined) {\n throw new Error('Required parameter invoiced was null or undefined when calling searchInspectionChecklistReports1.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling searchInspectionChecklistReports1.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling searchInspectionChecklistReports1.');\n }\n const checklistTypes = requestParameters.checklistTypes;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (checklistTypes) {\n checklistTypes.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'checklistTypes');\n })\n }\n if (invoiced !== undefined && invoiced !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n invoiced, 'invoiced');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpi/inspection-checklists`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KpiOrderStatusDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveOrderStatusByWorkshopIdRequestParams {\n startDate: string;\n endDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveOrderStatusExcelByWorkshopIdRequestParams {\n startDate: string;\n endDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiOrderStatusService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveOrderStatusByWorkshopId(requestParameters: RetriveOrderStatusByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retriveOrderStatusByWorkshopId(requestParameters: RetriveOrderStatusByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveOrderStatusByWorkshopId(requestParameters: RetriveOrderStatusByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveOrderStatusByWorkshopId(requestParameters: RetriveOrderStatusByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveOrderStatusByWorkshopId.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retriveOrderStatusByWorkshopId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveOrderStatusByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveOrderStatusByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpi/work-order`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveOrderStatusExcelByWorkshopId(requestParameters: RetriveOrderStatusExcelByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retriveOrderStatusExcelByWorkshopId(requestParameters: RetriveOrderStatusExcelByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveOrderStatusExcelByWorkshopId(requestParameters: RetriveOrderStatusExcelByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveOrderStatusExcelByWorkshopId(requestParameters: RetriveOrderStatusExcelByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveOrderStatusExcelByWorkshopId.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retriveOrderStatusExcelByWorkshopId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveOrderStatusExcelByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveOrderStatusExcelByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpi/work-order-excel`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KpiPartsTrendDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetrievePartsTrendRequestParams {\n startDate: string;\n endDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiPartsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrievePartsTrend(requestParameters: RetrievePartsTrendRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retrievePartsTrend(requestParameters: RetrievePartsTrendRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrievePartsTrend(requestParameters: RetrievePartsTrendRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrievePartsTrend(requestParameters: RetrievePartsTrendRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retrievePartsTrend.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retrievePartsTrend.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retrievePartsTrend.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrievePartsTrend.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpi/parts-detail`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KpiOrderStatusPerfDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveOrderStatusPerfByWorkshopIdRequestParams {\n startDate: string;\n endDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiPerformanceService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveOrderStatusPerfByWorkshopId(requestParameters: RetriveOrderStatusPerfByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retriveOrderStatusPerfByWorkshopId(requestParameters: RetriveOrderStatusPerfByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveOrderStatusPerfByWorkshopId(requestParameters: RetriveOrderStatusPerfByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveOrderStatusPerfByWorkshopId(requestParameters: RetriveOrderStatusPerfByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveOrderStatusPerfByWorkshopId.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retriveOrderStatusPerfByWorkshopId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveOrderStatusPerfByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveOrderStatusPerfByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpi/performance`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { KpiDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveKpisByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n fromDate?: string;\n toDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiSummaryService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveKpisByWorkshopId(requestParameters: RetriveKpisByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retriveKpisByWorkshopId(requestParameters: RetriveKpisByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveKpisByWorkshopId(requestParameters: RetriveKpisByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveKpisByWorkshopId(requestParameters: RetriveKpisByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveKpisByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveKpisByWorkshopId.');\n }\n const fromDate = requestParameters.fromDate;\n const toDate = requestParameters.toDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpis/summary`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { UtilizationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveUtilizationByWorkshopIdRequestParams {\n startDate: string;\n endDate: string;\n hrsType: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopBayId?: number;\n status?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiUtilizationService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveUtilizationByWorkshopId(requestParameters: RetriveUtilizationByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retriveUtilizationByWorkshopId(requestParameters: RetriveUtilizationByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveUtilizationByWorkshopId(requestParameters: RetriveUtilizationByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveUtilizationByWorkshopId(requestParameters: RetriveUtilizationByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveUtilizationByWorkshopId.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retriveUtilizationByWorkshopId.');\n }\n const hrsType = requestParameters.hrsType;\n if (hrsType === null || hrsType === undefined) {\n throw new Error('Required parameter hrsType was null or undefined when calling retriveUtilizationByWorkshopId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveUtilizationByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveUtilizationByWorkshopId.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n const status = requestParameters.status;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (status !== undefined && status !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n status, 'status');\n }\n if (hrsType !== undefined && hrsType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n hrsType, 'hrsType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpi/utilization`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WipDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveWipFiguresByWorkshopIdRequestParams {\n date: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpiWorkInProgressService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveWipFiguresByWorkshopId(requestParameters: RetriveWipFiguresByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public retriveWipFiguresByWorkshopId(requestParameters: RetriveWipFiguresByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveWipFiguresByWorkshopId(requestParameters: RetriveWipFiguresByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveWipFiguresByWorkshopId(requestParameters: RetriveWipFiguresByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const date = requestParameters.date;\n if (date === null || date === undefined) {\n throw new Error('Required parameter date was null or undefined when calling retriveWipFiguresByWorkshopId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveWipFiguresByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveWipFiguresByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (date !== undefined && date !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n date, 'date');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/kpi/wip`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ModelDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetModelsRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n name?: string;\n customerId?: number;\n vehicleId?: number;\n brandId?: number;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModelService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getModels(requestParameters: GetModelsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getModels.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getModels.');\n }\n const name = requestParameters.name;\n const customerId = requestParameters.customerId;\n const vehicleId = requestParameters.vehicleId;\n const brandId = requestParameters.brandId;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (brandId !== undefined && brandId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandId, 'brandId');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/models`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveAppointmentsByWorkshopIdRequestParams {\n workshopId: number;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n workshopBayId?: number;\n workshopUserId?: string;\n customerCompanyId?: number;\n view?: string;\n vehicleId?: number;\n vin?: string;\n currentStatus?: string;\n report?: string;\n dmsJobOrder?: string;\n withDeferred?: boolean;\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NoShowReportService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveAppointmentsByWorkshopId(requestParameters: RetriveAppointmentsByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveAppointmentsByWorkshopId(requestParameters: RetriveAppointmentsByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retriveAppointmentsByWorkshopId(requestParameters: RetriveAppointmentsByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retriveAppointmentsByWorkshopId(requestParameters: RetriveAppointmentsByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveAppointmentsByWorkshopId.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling retriveAppointmentsByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveAppointmentsByWorkshopId.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopBayId = requestParameters.workshopBayId;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const view = requestParameters.view;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const currentStatus = requestParameters.currentStatus;\n const report = requestParameters.report;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const withDeferred = requestParameters.withDeferred;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (report !== undefined && report !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n report, 'report');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshopusers/${encodeURIComponent(String(userId))}/noshowreport`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetrivePartsAndQuantitiesRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n fromDate?: string;\n toDate?: string;\n workshopId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PartsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrivePartsAndQuantities(requestParameters: RetrivePartsAndQuantitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public retrivePartsAndQuantities(requestParameters: RetrivePartsAndQuantitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retrivePartsAndQuantities(requestParameters: RetrivePartsAndQuantitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retrivePartsAndQuantities(requestParameters: RetrivePartsAndQuantitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrivePartsAndQuantities.');\n }\n const fromDate = requestParameters.fromDate;\n const toDate = requestParameters.toDate;\n const workshopId = requestParameters.workshopId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/parts/export/excel`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetWorkInProgressAppointmentsRequestParams {\n workshopId: number;\n userId: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReportingWorkInProgressService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkInProgressAppointments(requestParameters: GetWorkInProgressAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getWorkInProgressAppointments(requestParameters: GetWorkInProgressAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getWorkInProgressAppointments(requestParameters: GetWorkInProgressAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getWorkInProgressAppointments(requestParameters: GetWorkInProgressAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkInProgressAppointments.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getWorkInProgressAppointments.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkInProgressAppointments.');\n }\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/workshopusers/${encodeURIComponent(String(userId))}/reporting-wip`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAppointmentsWithSafetyChecklistRequestParams {\n workshopId: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SafetyCheckListService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsWithSafetyChecklist(requestParameters: GetAppointmentsWithSafetyChecklistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAppointmentsWithSafetyChecklist(requestParameters: GetAppointmentsWithSafetyChecklistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getAppointmentsWithSafetyChecklist(requestParameters: GetAppointmentsWithSafetyChecklistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getAppointmentsWithSafetyChecklist(requestParameters: GetAppointmentsWithSafetyChecklistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getAppointmentsWithSafetyChecklist.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getAppointmentsWithSafetyChecklist.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentsWithSafetyChecklist.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/safety-checklist`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { TechnicianClockingReportDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveTechnicianClockingReportRequestParams {\n startDate: string;\n endDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopName?: string;\n sendEmail?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TechnicianClockingReportService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcreport';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveTechnicianClockingReport(requestParameters: RetriveTechnicianClockingReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retriveTechnicianClockingReport(requestParameters: RetriveTechnicianClockingReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retriveTechnicianClockingReport(requestParameters: RetriveTechnicianClockingReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retriveTechnicianClockingReport(requestParameters: RetriveTechnicianClockingReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveTechnicianClockingReport.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retriveTechnicianClockingReport.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveTechnicianClockingReport.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveTechnicianClockingReport.');\n }\n const workshopName = requestParameters.workshopName;\n const sendEmail = requestParameters.sendEmail;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopName !== undefined && workshopName !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopName, 'workshopName');\n }\n if (sendEmail !== undefined && sendEmail !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sendEmail, 'sendEmail');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/technician-activity/clocking`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ActivityReportDto } from './activityReportDto';\n\n\nexport interface ActivityReportDayDto { \n day?: string;\n reports?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ActivityReportDto { \n hoursPaid?: number;\n hoursAvailable?: number;\n hoursPlanned?: number;\n nbActivities?: number;\n hoursBooked?: number;\n workshopUserId?: string;\n workshopBayIds?: Array;\n nonProdActivity?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardDto } from './jobcardDto';\nimport { CustomerCompanyDto } from './customerCompanyDto';\nimport { ChecklistDamageDto } from './checklistDamageDto';\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusDto } from './appointmentStatusDto';\nimport { PriorityTypeDto } from './priorityTypeDto';\nimport { UnitStatusDto } from './unitStatusDto';\nimport { VehicleCourtesyBookingDto } from './vehicleCourtesyBookingDto';\n\n\nexport interface AppointmentDto { \n id?: number;\n mileage?: number;\n engineHours?: number;\n workshopBayId?: number;\n workshopId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n currentStatus?: string;\n repairAddress?: string;\n receptionDate?: string;\n deliveryDate?: string;\n dmsCreationDate?: string;\n types?: Array;\n checklistInstances?: Array;\n checkListDamages?: Array;\n customerCompany?: CustomerCompanyDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n vehicle?: JobcardVehicleDto;\n vehicleCourtesy?: VehicleCourtesyDto;\n jobcard?: JobcardDto;\n status?: AppointmentStatusDto;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUserDto;\n unitStatus?: UnitStatusDto;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReasonDto;\n plannedDeliveryDate?: string;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n openedBy?: string;\n orderTypeHeaderCode?: number;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingDto;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n isInUseDms?: boolean;\n failureEngineHours?: number;\n jobcardTravels?: Array;\n dmsLogError?: boolean;\n priorityType?: PriorityTypeDto;\n customerPaymentMode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignatureDto { \n id?: number;\n url?: string;\n secretKey?: string;\n secretIV?: string;\n phase?: AppointmentSignatureDto.PhaseEnum;\n time?: string;\n customerNotPresent?: boolean;\n appointmentId?: number;\n customerCompanyUserId?: number;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\nexport namespace AppointmentSignatureDto {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\n\n\nexport interface AppointmentStatusDto { \n id?: number;\n workshopUser?: WorkshopUserDto;\n customerCompanyUser?: CustomerCompanyUserDto;\n status?: string;\n time?: string;\n reason?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AverageJobcardDto { \n averageFailure?: number;\n averageArrival?: number;\n averageRepair?: number;\n averageDelivery?: number;\n averageInvoice?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\n\n\nexport interface BrandDto { \n id?: number;\n name?: string;\n iceCode?: string;\n modelDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CheckListResultAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultAttachmentDto } from './checkListResultAttachmentDto';\n\n\nexport interface CheckListResultDto { \n id?: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface ChecklistDamageDto { \n id?: number;\n appointment?: AppointmentDto;\n url?: string;\n zone?: number;\n year?: number;\n jobOrder?: number;\n type?: string;\n filename?: string;\n sapCode?: string;\n size?: number;\n comment?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultDto } from './checkListResultDto';\nimport { AppointmentSignatureDto } from './appointmentSignatureDto';\n\n\nexport interface ChecklistInstanceDto { \n id?: number;\n summaryUrl?: string;\n content?: string;\n appointmentId?: number;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n type?: string;\n workshopUserId?: string;\n checkListResult?: Array;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n appointmentSignature?: AppointmentSignatureDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConsumableDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetailsDto { \n id?: number;\n customerName?: string;\n cityName?: string;\n address?: string;\n countryCode?: string;\n zipCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\n\n\nexport interface CustomerCompanyDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n address?: string;\n zipcode?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: number;\n creditType?: string;\n dmsId?: string;\n displayedName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n customerNote?: string;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n users?: Array;\n cpdContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\n\n\nexport interface CustomerCompanyUserDto { \n id?: number;\n customerCompanyId?: number;\n role?: RoleDto;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehiclesDetailsDto } from './vehiclesDetailsDto';\n\n\nexport interface CustomerTrendsDto { \n appointmentId?: number;\n customerCompanyId?: number;\n customerName?: string;\n partsSales?: number;\n partsMargin?: number;\n workshopSales?: number;\n workshopMargin?: number;\n totalSales?: number;\n vehicleDetails?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InspectionChecklistReportLineDto { \n appointmentId?: number;\n checklistId?: number;\n dmsJoborder?: string;\n customerCompanyName?: string;\n brandName?: string;\n modelName?: string;\n sn?: string;\n checklistType?: string;\n defectsIdentified?: number;\n defectsAddedToWorkOrder?: number;\n deferredItems?: number;\n itemsApproved?: number;\n conversionPercentage?: number;\n quotedValue?: number;\n soldValue?: number;\n partsValueInvoiced?: number;\n labourValueInvoiced?: number;\n technician?: string;\n serviceAdvisor?: string;\n currencyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardDto } from './jobcardDto';\n\n\nexport interface JobcardAttachmentDto { \n id?: number;\n jobcardDto?: JobcardDto;\n url?: string;\n type?: string;\n filename?: string;\n filesize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\nimport { JobcardItemDto } from './jobcardItemDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { JobcardItemDeletedDto } from './jobcardItemDeletedDto';\nimport { JobcardItemMobileDto } from './jobcardItemMobileDto';\n\n\nexport interface JobcardDto { \n id?: number;\n dmsJobOrder?: string;\n dmsToStrClaim?: number;\n claim?: number;\n dmsOrderType?: string;\n estimatedDuration?: number;\n startTime?: string;\n endTime?: string;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n mileagePictureUrl?: string;\n failureDate?: string;\n customerOrderNumber?: string;\n jobcardItems?: Array;\n jobcardItemMobileDto?: Array;\n jobcardTravels?: Array;\n percentage?: number;\n jobcardAttachmentDtos?: Array;\n jobcardMileages?: Array;\n jobcardEngineHours?: Array;\n lastUpdatedBy?: string;\n dealerClaimNumber?: string;\n ansDossier?: string;\n jobcardItemDeleted?: Array;\n djcOrderType?: string;\n jobcardSerialNumbers?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemCustomerStatusDto { \n id?: number;\n jobcardItemId?: number;\n action?: string;\n actionDateTime?: string;\n actionPerformedBy?: string;\n actionType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemDeletedDto { \n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { SplitDto } from './splitDto';\nimport { MpInformationDto } from './mpInformationDto';\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\nimport { JobcardItemAttachmentDto } from './jobcardItemAttachmentDto';\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { WarrantyClaimDataDto } from './warrantyClaimDataDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { WarrantyTypeDto } from './warrantyTypeDto';\nimport { JobcardItemExtraOperationDto } from './jobcardItemExtraOperationDto';\nimport { JobcardPartsBacklogDto } from './jobcardPartsBacklogDto';\n\n\nexport interface JobcardItemDto { \n workshopUserId?: string;\n id?: number;\n name?: string;\n code?: string;\n description?: string;\n deferredDate?: string;\n deferredToDate?: string;\n additionalDescription?: string;\n weight?: number;\n operations?: Array;\n estimatedDuration?: number;\n jobcardItemAttachments?: Array;\n jobcardItemStatus?: Array;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n failureCode?: string;\n failureDescription?: string;\n causalPartId?: number;\n defectCode?: string;\n supplierCode?: string;\n failureSeverity?: number;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n contractNumber?: string;\n warrantyType?: string;\n ids?: Array;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n deleted?: boolean;\n extraOperations?: Array;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n subtype?: string;\n type?: string;\n priority?: number;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformationDto;\n generalNote?: string;\n cause?: string;\n correction?: string;\n duration?: number;\n status?: string;\n percentage?: number;\n startDate?: string;\n discountTypeId?: number;\n technicians?: Array;\n addOnStatus?: string;\n internalNotes?: string;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimDataDto;\n dmsId?: string;\n inspectionActivity?: boolean;\n sapResponse?: string;\n workshopBayId?: number;\n disabled?: boolean;\n checklistInstances?: Array;\n officialTime?: number;\n errorMsg?: string;\n docId?: string;\n jobcardItemSpells?: Array;\n couponStatus?: string;\n jobcardItemCustomerStatus?: Array;\n paymentType?: PaymentTypeDto;\n payType?: string;\n jobcardPartsBacklog?: Array;\n defferDeleteReason?: string;\n paymentWarrantyType?: WarrantyTypeDto;\n tempJId?: string;\n selected?: boolean;\n paymentSubType?: PaymentSubTypeDto;\n paymentSubType2?: PaymentSubTypeDto;\n paymentSubType3?: PaymentSubTypeDto;\n paymentTypeDisabled?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemExtraOperationDto { \n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n deleted?: boolean;\n compulsory?: boolean;\n selected?: boolean;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n disablePrice?: boolean;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n active?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\n\n\nexport interface JobcardItemMobileDto { \n id?: number;\n name?: string;\n jobcardItemStatus?: Array;\n weight?: number;\n deferred?: boolean;\n deleted?: boolean;\n status?: string;\n technicians?: Array;\n jobcardItemSpells?: Array;\n jobcardItemCustomerStatus?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n code?: string;\n label?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n price?: number;\n compulsory?: boolean;\n operationManufacturer?: string;\n addOnStatus?: string;\n srt?: boolean;\n isDefault?: boolean;\n type?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ConsumableDto } from './consumableDto';\n\n\nexport interface JobcardItemOperationConsumableDto { \n id?: number;\n quantity?: string;\n consumable?: ConsumableDto;\n compulsory?: boolean;\n price?: number;\n selected?: boolean;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationConsumableDto } from './jobcardItemOperationConsumableDto';\nimport { JobcardItemOperationPartDto } from './jobcardItemOperationPartDto';\n\n\nexport interface JobcardItemOperationDto { \n id?: number;\n code?: string;\n label?: string;\n type?: string;\n description?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n compulsory?: boolean;\n selected?: boolean;\n price?: number;\n manufacturer?: string;\n addOnStatus?: string;\n parts?: Array;\n consumables?: Array;\n isKitComplete?: boolean;\n useKitPart?: boolean;\n dmsId?: string;\n srt?: boolean;\n isDefault?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Part } from './part';\nimport { JobcardItemOperationPartLocation } from './jobcardItemOperationPartLocation';\n\n\nexport interface JobcardItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n jobcardItemOperation?: JobcardItemOperation;\n part?: Part;\n price?: number;\n cost?: number;\n tobereturned?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocation?: Array;\n pickupDate?: string;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardItemOperationPartDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobCardItemOperation?: JobcardItemOperationDto;\n pickupDate?: string;\n tobereturned?: boolean;\n compulsory?: boolean;\n price?: number;\n cost?: number;\n selected?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocationList?: Array;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\n\n\nexport interface JobcardItemOperationPartLocation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n locationId?: string;\n jobcardItemOperationPart?: JobcardItemOperationPart;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\n\n\nexport interface JobcardItemOperationPartLocationDto { \n id?: number;\n locationId?: string;\n jobcardItemOperationPart?: JobcardItemOperationPart;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\n\n\nexport interface JobcardItemSpellDto { \n id?: number;\n name?: string;\n weight?: number;\n estimatedDuration?: number;\n startDate?: string;\n workshopBayId?: number;\n technicians?: Array;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemStatusDto { \n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: string;\n jobcardItemId?: number;\n workshopUserId?: string;\n reason?: string;\n otherReason?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n dmsId?: string;\n hasError?: boolean;\n errorReason?: string;\n activityId?: number;\n appointmentId?: number;\n deleted?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemTechnicianDto { \n id?: number;\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n isDeleted?: boolean;\n spellLinkId?: number;\n firstName?: string;\n lastName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardPartsBacklogDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobcardItemId?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n netPrice?: number;\n customerCompanyId?: number;\n appointmentId?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n partId?: number;\n operation?: string;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n basicDiscount?: number;\n promoDiscount?: number;\n cspsOrderId?: number;\n workshopId?: number;\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { WorkshopUserTravelPositionDto } from './workshopUserTravelPositionDto';\n\n\nexport interface JobcardTravelDto { \n id?: number;\n dmsId?: string;\n name?: string;\n duration?: number;\n jobcardId?: number;\n distance?: number;\n date?: string;\n reason?: string;\n otherReason?: string;\n deleted?: boolean;\n workshopUserId?: string;\n positions?: Array;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n paymentType?: PaymentTypeDto;\n paymentSubType?: PaymentSubTypeDto;\n price?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n travelTypeFrom?: string;\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { VehicleLegalInspectionDto } from './vehicleLegalInspectionDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface JobcardVehicleDto { \n id?: number;\n workshopId?: number;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n wtyStartDate?: string;\n customerCompanyId?: number;\n annualInspectionDate?: string;\n tachometerDate?: string;\n isActive?: boolean;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vehicleNote?: string;\n customerCompanyUser?: CustomerCompanyUserDto;\n ownerId?: string;\n invoiceDate?: string;\n stockNumber?: string;\n inspections?: Array;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiDto { \n hoursSold?: number;\n wipHoursAveDays?: number;\n wipHoursAveDaysSecondary?: number;\n efficiency?: number;\n attendedTimeClockedTime?: number;\n totalSales?: number;\n salesBooking?: number;\n salesCheckin?: number;\n salesWorkshop?: number;\n partSalesperHour?: number;\n partSales?: number;\n workshopSales?: number;\n plannedEfficiency?: number;\n actualEfficiency?: number;\n plannedUtilisation?: number;\n actualUtilisation?: number;\n productivity?: number;\n utilisation?: number;\n recovery?: number;\n wipAveDays?: number;\n workshopId?: number;\n workOrder?: number;\n noOfInspections?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WeeklyTrendInspectionDto } from './weeklyTrendInspectionDto';\n\n\nexport interface KpiInspectionReportDto { \n noOfInspection?: number;\n defectsIdentified?: number;\n defectsQuoted?: number;\n itemsApproved?: number;\n quotedValue?: number;\n soldValue?: number;\n partsValueInvoiced?: number;\n labourValueInvoiced?: number;\n weeklyTrendsDto?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiMonthlyPartsTrendDto { \n month?: KpiMonthlyPartsTrendDto.MonthEnum;\n partSold?: number;\n}\nexport namespace KpiMonthlyPartsTrendDto {\n export type MonthEnum = 'JANUARY' | 'FEBRUARY' | 'MARCH' | 'APRIL' | 'MAY' | 'JUNE' | 'JULY' | 'AUGUST' | 'SEPTEMBER' | 'OCTOBER' | 'NOVEMBER' | 'DECEMBER';\n export const MonthEnum = {\n JANUARY: 'JANUARY' as MonthEnum,\n FEBRUARY: 'FEBRUARY' as MonthEnum,\n MARCH: 'MARCH' as MonthEnum,\n APRIL: 'APRIL' as MonthEnum,\n MAY: 'MAY' as MonthEnum,\n JUNE: 'JUNE' as MonthEnum,\n JULY: 'JULY' as MonthEnum,\n AUGUST: 'AUGUST' as MonthEnum,\n SEPTEMBER: 'SEPTEMBER' as MonthEnum,\n OCTOBER: 'OCTOBER' as MonthEnum,\n NOVEMBER: 'NOVEMBER' as MonthEnum,\n DECEMBER: 'DECEMBER' as MonthEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { LinesExcelReport } from './linesExcelReport';\nimport { AverageJobcardDto } from './averageJobcardDto';\nimport { OrderAndSalesDto } from './orderAndSalesDto';\nimport { WorkOrderExcelReport } from './workOrderExcelReport';\n\n\nexport interface KpiOrderStatusDto { \n workOrder?: number;\n quote?: number;\n nonInvoiced?: number;\n srtUsageWarrantyPer?: number;\n srtUsageOtherPer?: number;\n averageJobcardDto?: AverageJobcardDto;\n ordersAndSalesByStatus?: Array;\n workOrderExcelReport?: Array;\n linesExcelReport?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WeeklyTrendDto } from './weeklyTrendDto';\nimport { WorkshopSalesDto } from './workshopSalesDto';\nimport { PartsSalesDto } from './partsSalesDto';\n\n\nexport interface KpiOrderStatusPerfDto { \n retailSales?: number;\n warrantySales?: number;\n otherSales?: number;\n totalClockedHours?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n totalOfficialHours?: number;\n weeklyTrendsDto?: Array;\n partsSalesDto?: PartsSalesDto;\n workshopSalesDto?: WorkshopSalesDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { KpiMonthlyPartsTrendDto } from './kpiMonthlyPartsTrendDto';\nimport { KpiWeeklyDto } from './kpiWeeklyDto';\n\n\nexport interface KpiPartsTrendDto { \n totalPartsSold?: number;\n missingPartsInCsps?: number;\n missingPartsInDms?: number;\n kpiWeeklyDto?: Array;\n kpiMonthlyPartsTrendDto?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiWeeklyDto { \n startDate?: string;\n missingPartInDms?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LinesExcelReport { \n bookingId?: number;\n activityId?: number;\n operationId?: number;\n partId?: number;\n activity?: string;\n paymentType?: string;\n paymentSubtype?: string;\n categoryType?: string;\n operations?: string;\n srt?: boolean;\n oppPrice?: number;\n parts?: string;\n partsPrice?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BrandDto } from './brandDto';\n\n\nexport interface ModelDto { \n id?: number;\n name?: string;\n brand?: BrandDto;\n}\n\n","export * from './activityReportDayDto';\nexport * from './activityReportDto';\nexport * from './appointmentDto';\nexport * from './appointmentSignatureDto';\nexport * from './appointmentStatusDto';\nexport * from './averageJobcardDto';\nexport * from './brandDto';\nexport * from './checkListResultAttachmentDto';\nexport * from './checkListResultDto';\nexport * from './checklistDamageDto';\nexport * from './checklistInstanceDto';\nexport * from './consumableDto';\nexport * from './cpdContactDetailsDto';\nexport * from './customerCompanyDto';\nexport * from './customerCompanyUserDto';\nexport * from './customerTrendsDto';\nexport * from './inspectionChecklistReportLineDto';\nexport * from './jobcardAttachmentDto';\nexport * from './jobcardDto';\nexport * from './jobcardItemAttachmentDto';\nexport * from './jobcardItemCustomerStatusDto';\nexport * from './jobcardItemDeletedDto';\nexport * from './jobcardItemDto';\nexport * from './jobcardItemExtraOperationDto';\nexport * from './jobcardItemMobileDto';\nexport * from './jobcardItemOperation';\nexport * from './jobcardItemOperationConsumableDto';\nexport * from './jobcardItemOperationDto';\nexport * from './jobcardItemOperationPart';\nexport * from './jobcardItemOperationPartDto';\nexport * from './jobcardItemOperationPartLocation';\nexport * from './jobcardItemOperationPartLocationDto';\nexport * from './jobcardItemSpellDto';\nexport * from './jobcardItemStatusDto';\nexport * from './jobcardItemTechnicianDto';\nexport * from './jobcardPartsBacklogDto';\nexport * from './jobcardTravelDto';\nexport * from './jobcardVehicleDto';\nexport * from './kpiDto';\nexport * from './kpiInspectionReportDto';\nexport * from './kpiMonthlyPartsTrendDto';\nexport * from './kpiOrderStatusDto';\nexport * from './kpiOrderStatusPerfDto';\nexport * from './kpiPartsTrendDto';\nexport * from './kpiWeeklyDto';\nexport * from './linesExcelReport';\nexport * from './modelDto';\nexport * from './mpDeltaDto';\nexport * from './mpInformationDto';\nexport * from './mpKitCompositionDto';\nexport * from './onHoldReasonDto';\nexport * from './openingDay';\nexport * from './orderAndSalesDto';\nexport * from './pageAppointmentDto';\nexport * from './pageable';\nexport * from './part';\nexport * from './partDto';\nexport * from './partsSalesDto';\nexport * from './paymentSubSubTypeDto';\nexport * from './paymentSubTypeDto';\nexport * from './paymentTypeDto';\nexport * from './period';\nexport * from './priorityTypeDto';\nexport * from './roleDto';\nexport * from './shiftDto';\nexport * from './shiftPeriodDto';\nexport * from './skillDto';\nexport * from './sort';\nexport * from './splitDto';\nexport * from './technicianClockingReportDto';\nexport * from './unitStatusDto';\nexport * from './utilizationDto';\nexport * from './vehicleCourtesyBookingDto';\nexport * from './vehicleCourtesyDto';\nexport * from './vehicleLegalInspectionDto';\nexport * from './vehiclesDetailsDto';\nexport * from './warrantyClaimDataDto';\nexport * from './warrantyTypeDto';\nexport * from './weeklyTrendDto';\nexport * from './weeklyTrendInspectionDto';\nexport * from './wipAppointmentExcelReport';\nexport * from './wipDto';\nexport * from './wipWeeklyTrend';\nexport * from './workOrderExcelReport';\nexport * from './workshopBayDto';\nexport * from './workshopDiscountDto';\nexport * from './workshopDto';\nexport * from './workshopSalesDto';\nexport * from './workshopSalesOrganizationDto';\nexport * from './workshopUserDto';\nexport * from './workshopUserTravelPositionDto';\nexport * from './workshopUserUnavailabilityDto';\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpDeltaDto { \n unit?: string;\n value?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpDeltaDto } from './mpDeltaDto';\n\n\nexport interface MpInformationDto { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpKitCompositionDto { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReasonDto { \n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Period } from './period';\n\n\nexport interface OpeningDay { \n weekday?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OrderAndSalesDto { \n status?: string;\n totalWorkOrders?: number;\n salesByRetail?: number;\n salesByWarranty?: number;\n salesByOthers?: number;\n salesByParts?: number;\n salesByService?: number;\n totalSales?: number;\n totalPartsSales?: number;\n totalWorkshopSales?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Pageable } from './pageable';\nimport { AppointmentDto } from './appointmentDto';\nimport { Sort } from './sort';\n\n\nexport interface PageAppointmentDto { \n totalPages?: number;\n totalElements?: number;\n size?: number;\n content?: Array;\n number?: number;\n sort?: Sort;\n numberOfElements?: number;\n pageable?: Pageable;\n first?: boolean;\n last?: boolean;\n empty?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Sort } from './sort';\n\n\nexport interface Pageable { \n offset?: number;\n sort?: Sort;\n pageSize?: number;\n pageNumber?: number;\n paged?: boolean;\n unpaged?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Part { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n code?: string;\n description?: string;\n quantity?: number;\n manufacturer?: string;\n price?: number;\n partSuperseedingId?: number;\n isKit?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { MpKitCompositionDto } from './mpKitCompositionDto';\n\n\nexport interface PartDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partSuperseedingId?: number;\n partDetailId?: number;\n quantity?: number;\n booking?: string;\n visitDate?: string;\n vehPlate?: string;\n customer?: string;\n activity?: string;\n manufacturer?: string;\n isKit?: boolean;\n kitParts?: Array;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n jobcardItemOperationPartLocationList?: Array;\n price?: number;\n homeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsSalesDto { \n retailSales?: number;\n retailMargin?: number;\n warrantySales?: number;\n warrantyMargin?: number;\n otherSales?: number;\n otherMargin?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PaymentSubSubTypeDto { \n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n weight?: number;\n isVisible?: boolean;\n paymentSubTypeId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\n\n\nexport interface PaymentSubTypeDto { \n id?: number;\n description?: string;\n type?: string;\n code?: string;\n weight?: number;\n paymentTypeId?: number;\n isVisible?: boolean;\n categoryType?: string;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\n\n\nexport interface PaymentTypeDto { \n id?: number;\n isVisible?: boolean;\n workshopId?: number;\n type?: string;\n weight?: number;\n paymentSubTypes?: Array;\n code?: string;\n name?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Period { \n id?: number;\n start?: string;\n end?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PriorityTypeDto { \n id?: number;\n description?: string;\n status?: string;\n icon?: string;\n defaultPriority?: boolean;\n workshopId?: number;\n type?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RoleDto { \n id?: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriodDto } from './shiftPeriodDto';\n\n\nexport interface ShiftDto { \n id?: number;\n description?: string;\n type?: string;\n startDate?: string;\n endDate?: string;\n userShiftId?: number;\n targetTime?: number;\n dmsId?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriodDto { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SkillDto { \n id?: number;\n description?: string;\n translationKey?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Sort { \n empty?: boolean;\n sorted?: boolean;\n unsorted?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SplitDto { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n pricingId?: number;\n jobcardItemId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TechnicianClockingReportDto { \n booking?: number;\n customer?: string;\n activitytype?: string;\n activities?: string;\n activitystatus?: string;\n technicianname?: string;\n plannedtime?: string;\n clockedtime?: string;\n operation?: string;\n startDate?: string;\n spellStartTime?: string;\n spellEndTime?: string;\n workshopUserId?: string;\n endDate?: string;\n clockingStartTime?: string;\n clockingEndTime?: string;\n dmsOrderType?: string;\n djcOrderType?: string;\n vin?: string;\n isBreakdownAppt?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnitStatusDto { \n id?: number;\n date?: string;\n unitDown?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UtilizationDto { \n utilization?: number;\n productivity?: number;\n nonProductivity?: number;\n efficiency?: number;\n hrsSold?: number;\n productiveHrsActual?: number;\n productiveHrsPlanned?: number;\n hrsAvailable?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface VehicleCourtesyBookingDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n reason?: string;\n vehicleCourtesy?: VehicleCourtesyDto;\n appointment?: AppointmentDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { WorkshopDto } from './workshopDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface VehicleCourtesyDto { \n id?: number;\n plate?: string;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n mileage?: number;\n dmsId?: string;\n workshop?: WorkshopDto;\n vehicleNote?: string;\n status?: string;\n appointments?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleLegalInspectionDto { \n id?: number;\n label?: string;\n code?: string;\n date?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehiclesDetailsDto { \n vehicleId?: number;\n plate?: string;\n vin?: string;\n brand?: string;\n vehicleModelId?: number;\n model?: string;\n partsSales?: number;\n partsMargin?: number;\n workshopSales?: number;\n workshopMargin?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimDataDto { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyTypeDto { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WeeklyTrendDto { \n date?: string;\n totalHours?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WeeklyTrendInspectionDto { \n date?: string;\n noOfInspection?: number;\n defectsIdentified?: number;\n defectsQouted?: number;\n itemsApproved?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WipAppointmentExcelReport { \n deliveryDate?: string;\n actualReceptionDate?: string;\n lastWorkDate?: string;\n workDays?: number;\n status?: string;\n bookingId?: number;\n dmsOrderNumber?: number;\n customerName?: string;\n vehicle?: string;\n model?: string;\n serviceAdvisor?: string;\n allowedTime?: number;\n clockedTime?: number;\n workshopSales?: number;\n partSales?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WipWeeklyTrend } from './wipWeeklyTrend';\nimport { WipAppointmentExcelReport } from './wipAppointmentExcelReport';\n\n\nexport interface WipDto { \n totalWorkOrders?: number;\n totalArrived?: number;\n totalRepairing?: number;\n totalValidationPending?: number;\n totalValidated?: number;\n totalDelivered?: number;\n avgDays?: number;\n avgOfThreeDays?: number;\n totalClockedHrs?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n weeklyTrends?: Array;\n appointments?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WipWeeklyTrend { \n date?: string;\n wipClockedHrs?: number;\n wipLab?: number;\n wipParts?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkOrderExcelReport { \n bookingId?: number;\n appointmentStatus?: string;\n documentStatus?: string;\n failureDate?: string;\n plannedArrivalDate?: string;\n actualArrivalDate?: string;\n repairStartTime?: string;\n repairEndTime?: string;\n plannedDeliveryDate?: string;\n actualDeliveryDate?: string;\n lastWorkingDate?: string;\n invoiceDate?: string;\n negotiationMailCount?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface WorkshopBayDto { \n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n leadTechnician?: string;\n technicians?: Array;\n bayCode?: string;\n isActive?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDto } from './workshopDto';\n\n\nexport interface WorkshopDiscountDto { \n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n workshop?: WorkshopDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { OpeningDay } from './openingDay';\nimport { WorkshopSalesOrganizationDto } from './workshopSalesOrganizationDto';\n\n\nexport interface WorkshopDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n openingTime?: string;\n closureTime?: string;\n openingDays?: Array;\n masterWorkshopId?: number;\n workshopBayDto?: WorkshopBayDto;\n currencyCode?: string;\n cspsUserId?: string;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n workshopSalesOrganizations?: Array;\n paymentCode?: string;\n labourCost?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n enableSafetyChecklist?: boolean;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n dmsProvider?: string;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesDto { \n retailSales?: number;\n retailMargin?: number;\n warrantySales?: number;\n warrantyMargin?: number;\n otherSales?: number;\n otherMargin?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesOrganizationDto { \n id?: number;\n brandDivision?: string;\n market?: string;\n salesCode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { WorkshopDiscountDto } from './workshopDiscountDto';\nimport { SkillDto } from './skillDto';\nimport { ShiftDto } from './shiftDto';\nimport { WorkshopDto } from './workshopDto';\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { WorkshopUserUnavailabilityDto } from './workshopUserUnavailabilityDto';\n\n\nexport interface WorkshopUserDto { \n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n role?: RoleDto;\n isAdmin?: boolean;\n isActive?: boolean;\n views?: string;\n isTechnicianView?: boolean;\n deviceToken?: string;\n appVersion?: string;\n skills?: Array;\n canEditJobcard?: boolean;\n displayedName?: string;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n canSeePrice?: boolean;\n leadWorkshopBayId?: number;\n url?: string;\n isManualJobStatusOverride?: boolean;\n isAssociateUser?: boolean;\n workshopDiscountDto?: Array;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n costRate?: string;\n isAutomaticApproval?: string;\n isActivityApproval?: string;\n unavailabilities?: Array;\n workshopBays?: Array;\n shifts?: Array;\n isAssociatedWithWorkshop?: boolean;\n canSelfAssign?: boolean;\n workshopList?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserTravelPositionDto { \n id?: number;\n workshopUserId?: string;\n jobcardTravelId?: number;\n latitude?: number;\n longitude?: number;\n positionDate?: string;\n positionType?: string;\n deviceStatus?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailabilityDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n isFromDms?: boolean;\n}\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { AppointmentStatusService } from './api/appointmentStatus.service';\nimport { AppointmentsService } from './api/appointments.service';\nimport { AzureService } from './api/azure.service';\nimport { EmailService } from './api/email.service';\nimport { JobcardItemControllerService } from './api/jobcardItemController.service';\nimport { JobcardPartsBacklogService } from './api/jobcardPartsBacklog.service';\nimport { PaymentTypeService } from './api/paymentType.service';\nimport { PermissionService } from './api/permission.service';\nimport { SummaryService } from './api/summary.service';\nimport { TechnicianService } from './api/technician.service';\nimport { WorkshopBaysService } from './api/workshopBays.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","export * from './appointmentStatus.service';\nimport { AppointmentStatusService } from './appointmentStatus.service';\nexport * from './appointments.service';\nimport { AppointmentsService } from './appointments.service';\nexport * from './azure.service';\nimport { AzureService } from './azure.service';\nexport * from './email.service';\nimport { EmailService } from './email.service';\nexport * from './jobcardItemController.service';\nimport { JobcardItemControllerService } from './jobcardItemController.service';\nexport * from './jobcardPartsBacklog.service';\nimport { JobcardPartsBacklogService } from './jobcardPartsBacklog.service';\nexport * from './paymentType.service';\nimport { PaymentTypeService } from './paymentType.service';\nexport * from './permission.service';\nimport { PermissionService } from './permission.service';\nexport * from './summary.service';\nimport { SummaryService } from './summary.service';\nexport * from './technician.service';\nimport { TechnicianService } from './technician.service';\nexport * from './workshopBays.service';\nimport { WorkshopBaysService } from './workshopBays.service';\nexport const APIS = [AppointmentStatusService, AppointmentsService, AzureService, EmailService, JobcardItemControllerService, JobcardPartsBacklogService, PaymentTypeService, PermissionService, SummaryService, TechnicianService, WorkshopBaysService];\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentStatusDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateAppointmentStatusRequestParams {\n applicationToken: string;\n appointmentId: number;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentStatusDto: AppointmentStatusDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentStatusRequestParams {\n appointmentId: number;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentStatusService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointmentStatus(requestParameters: CreateAppointmentStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public createAppointmentStatus(requestParameters: CreateAppointmentStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public createAppointmentStatus(requestParameters: CreateAppointmentStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public createAppointmentStatus(requestParameters: CreateAppointmentStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling createAppointmentStatus.');\n }\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling createAppointmentStatus.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling createAppointmentStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling createAppointmentStatus.');\n }\n const appointmentStatusDto = requestParameters.appointmentStatusDto;\n if (appointmentStatusDto === null || appointmentStatusDto === undefined) {\n throw new Error('Required parameter appointmentStatusDto was null or undefined when calling createAppointmentStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointment-status`,\n appointmentStatusDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentStatus(requestParameters: GetAppointmentStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAppointmentStatus(requestParameters: GetAppointmentStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getAppointmentStatus(requestParameters: GetAppointmentStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getAppointmentStatus(requestParameters: GetAppointmentStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling getAppointmentStatus.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getAppointmentStatus.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointment-status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentDto } from '../model/models';\nimport { PriorityTypeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AppointmentForWorkfileRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n workshopBayId?: number;\n workshopUserId?: string;\n customerCompanyId?: number;\n view?: string;\n vehicleId?: number;\n vin?: string;\n currentStatus?: string;\n report?: string;\n dmsJobOrder?: string;\n withDeferred?: boolean;\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsForCvWorkshopRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsForKanbanViewRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n startDate?: string;\n view?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsForWorkFileListRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopId?: number;\n startDate?: string;\n endDate?: string;\n workshopUserId?: string;\n workshopBayId?: number;\n vehicleId?: number;\n currentStatus?: string;\n dmsJobOrder?: number;\n onHold?: boolean;\n appointmentPriority?: string;\n dmsOrderType?: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n filterBy?: string;\n filterValue?: string;\n creditStatusId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveAppointmentsForWorkspaceTimeRequestParams {\n workshopId: number;\n startDate: string;\n endDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveAppointmentsForWorkspaceUsersRequestParams {\n startDate: string;\n endDate: string;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveAppointmentsByUserIdFromDayRequestParams {\n applicationToken: string;\n userId: string;\n startDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveBacklogAppointmentsByWorkshopIdRequestParams {\n workshopId: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n filterBy?: string;\n filterValue?: string;\n sortOrder?: string;\n workshopUserId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrivePendingAppointmentsByWorkshopIdRequestParams {\n workshopId: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n filterBy?: string;\n filterValue?: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentFromWorkspaceRequestParams {\n id: number;\n applicationToken: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentDto: AppointmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentPriorityByIdRequestParams {\n applicationToken: string;\n workshopId: number;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n priorityTypeDto: PriorityTypeDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateCvPlaningAppointmentByIdRequestParams {\n applicationToken: string;\n id: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentDto: AppointmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkspaceUsersByIdRequestParams {\n id: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentDto: AppointmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentsService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public appointmentForWorkfile(requestParameters: AppointmentForWorkfileRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public appointmentForWorkfile(requestParameters: AppointmentForWorkfileRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public appointmentForWorkfile(requestParameters: AppointmentForWorkfileRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public appointmentForWorkfile(requestParameters: AppointmentForWorkfileRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling appointmentForWorkfile.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling appointmentForWorkfile.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopBayId = requestParameters.workshopBayId;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const view = requestParameters.view;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const currentStatus = requestParameters.currentStatus;\n const report = requestParameters.report;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const withDeferred = requestParameters.withDeferred;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (report !== undefined && report !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n report, 'report');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsForCvWorkshop(requestParameters: GetAppointmentsForCvWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAppointmentsForCvWorkshop(requestParameters: GetAppointmentsForCvWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getAppointmentsForCvWorkshop(requestParameters: GetAppointmentsForCvWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getAppointmentsForCvWorkshop(requestParameters: GetAppointmentsForCvWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getAppointmentsForCvWorkshop.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentsForCvWorkshop.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/cv-planning-workshop`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsForKanbanView(requestParameters: GetAppointmentsForKanbanViewRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAppointmentsForKanbanView(requestParameters: GetAppointmentsForKanbanViewRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getAppointmentsForKanbanView(requestParameters: GetAppointmentsForKanbanViewRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getAppointmentsForKanbanView(requestParameters: GetAppointmentsForKanbanViewRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getAppointmentsForKanbanView.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getAppointmentsForKanbanView.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentsForKanbanView.');\n }\n const startDate = requestParameters.startDate;\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/kanban`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsForWorkFileList(requestParameters: GetAppointmentsForWorkFileListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentsForWorkFileList(requestParameters: GetAppointmentsForWorkFileListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsForWorkFileList(requestParameters: GetAppointmentsForWorkFileListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsForWorkFileList(requestParameters: GetAppointmentsForWorkFileListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getAppointmentsForWorkFileList.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getAppointmentsForWorkFileList.');\n }\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopUserId = requestParameters.workshopUserId;\n const workshopBayId = requestParameters.workshopBayId;\n const vehicleId = requestParameters.vehicleId;\n const currentStatus = requestParameters.currentStatus;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const onHold = requestParameters.onHold;\n const appointmentPriority = requestParameters.appointmentPriority;\n const dmsOrderType = requestParameters.dmsOrderType;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const creditStatusId = requestParameters.creditStatusId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (appointmentPriority !== undefined && appointmentPriority !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentPriority, 'appointmentPriority');\n }\n if (dmsOrderType !== undefined && dmsOrderType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsOrderType, 'dmsOrderType');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (creditStatusId !== undefined && creditStatusId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n creditStatusId, 'creditStatusId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/workfile-list`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveAppointmentsForWorkspaceTime(requestParameters: RetrieveAppointmentsForWorkspaceTimeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveAppointmentsForWorkspaceTime(requestParameters: RetrieveAppointmentsForWorkspaceTimeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveAppointmentsForWorkspaceTime(requestParameters: RetrieveAppointmentsForWorkspaceTimeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveAppointmentsForWorkspaceTime(requestParameters: RetrieveAppointmentsForWorkspaceTimeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retrieveAppointmentsForWorkspaceTime.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retrieveAppointmentsForWorkspaceTime.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retrieveAppointmentsForWorkspaceTime.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrieveAppointmentsForWorkspaceTime.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/workspace-time`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveAppointmentsForWorkspaceUsers(requestParameters: RetrieveAppointmentsForWorkspaceUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retrieveAppointmentsForWorkspaceUsers(requestParameters: RetrieveAppointmentsForWorkspaceUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retrieveAppointmentsForWorkspaceUsers(requestParameters: RetrieveAppointmentsForWorkspaceUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retrieveAppointmentsForWorkspaceUsers(requestParameters: RetrieveAppointmentsForWorkspaceUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retrieveAppointmentsForWorkspaceUsers.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retrieveAppointmentsForWorkspaceUsers.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retrieveAppointmentsForWorkspaceUsers.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrieveAppointmentsForWorkspaceUsers.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/workspace-users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveAppointmentsByUserIdFromDay(requestParameters: RetriveAppointmentsByUserIdFromDayRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveAppointmentsByUserIdFromDay(requestParameters: RetriveAppointmentsByUserIdFromDayRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveAppointmentsByUserIdFromDay(requestParameters: RetriveAppointmentsByUserIdFromDayRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveAppointmentsByUserIdFromDay(requestParameters: RetriveAppointmentsByUserIdFromDayRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retriveAppointmentsByUserIdFromDay.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling retriveAppointmentsByUserIdFromDay.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveAppointmentsByUserIdFromDay.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveAppointmentsByUserIdFromDay.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/getByUser`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveBacklogAppointmentsByWorkshopId(requestParameters: RetriveBacklogAppointmentsByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveBacklogAppointmentsByWorkshopId(requestParameters: RetriveBacklogAppointmentsByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveBacklogAppointmentsByWorkshopId(requestParameters: RetriveBacklogAppointmentsByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveBacklogAppointmentsByWorkshopId(requestParameters: RetriveBacklogAppointmentsByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveBacklogAppointmentsByWorkshopId.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retriveBacklogAppointmentsByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveBacklogAppointmentsByWorkshopId.');\n }\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const sortOrder = requestParameters.sortOrder;\n const workshopUserId = requestParameters.workshopUserId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/backlog`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrivePendingAppointmentsByWorkshopId(requestParameters: RetrivePendingAppointmentsByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retrivePendingAppointmentsByWorkshopId(requestParameters: RetrivePendingAppointmentsByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retrivePendingAppointmentsByWorkshopId(requestParameters: RetrivePendingAppointmentsByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retrivePendingAppointmentsByWorkshopId(requestParameters: RetrivePendingAppointmentsByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retrivePendingAppointmentsByWorkshopId.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retrivePendingAppointmentsByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retrivePendingAppointmentsByWorkshopId.');\n }\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/pending`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentFromWorkspace(requestParameters: UpdateAppointmentFromWorkspaceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateAppointmentFromWorkspace(requestParameters: UpdateAppointmentFromWorkspaceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateAppointmentFromWorkspace(requestParameters: UpdateAppointmentFromWorkspaceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateAppointmentFromWorkspace(requestParameters: UpdateAppointmentFromWorkspaceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentFromWorkspace.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateAppointmentFromWorkspace.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateAppointmentFromWorkspace.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateAppointmentFromWorkspace.');\n }\n const appointmentDto = requestParameters.appointmentDto;\n if (appointmentDto === null || appointmentDto === undefined) {\n throw new Error('Required parameter appointmentDto was null or undefined when calling updateAppointmentFromWorkspace.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/workspace-time-update/${encodeURIComponent(String(id))}`,\n appointmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentPriorityById(requestParameters: UpdateAppointmentPriorityByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateAppointmentPriorityById(requestParameters: UpdateAppointmentPriorityByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateAppointmentPriorityById(requestParameters: UpdateAppointmentPriorityByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateAppointmentPriorityById(requestParameters: UpdateAppointmentPriorityByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateAppointmentPriorityById.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateAppointmentPriorityById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentPriorityById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateAppointmentPriorityById.');\n }\n const priorityTypeDto = requestParameters.priorityTypeDto;\n if (priorityTypeDto === null || priorityTypeDto === undefined) {\n throw new Error('Required parameter priorityTypeDto was null or undefined when calling updateAppointmentPriorityById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.patch(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}/priority`,\n priorityTypeDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCvPlaningAppointmentById(requestParameters: UpdateCvPlaningAppointmentByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateCvPlaningAppointmentById(requestParameters: UpdateCvPlaningAppointmentByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateCvPlaningAppointmentById(requestParameters: UpdateCvPlaningAppointmentByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateCvPlaningAppointmentById(requestParameters: UpdateCvPlaningAppointmentByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateCvPlaningAppointmentById.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateCvPlaningAppointmentById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateCvPlaningAppointmentById.');\n }\n const appointmentDto = requestParameters.appointmentDto;\n if (appointmentDto === null || appointmentDto === undefined) {\n throw new Error('Required parameter appointmentDto was null or undefined when calling updateCvPlaningAppointmentById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/cv-planning-workshop/${encodeURIComponent(String(id))}`,\n appointmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkspaceUsersById(requestParameters: UpdateWorkspaceUsersByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public updateWorkspaceUsersById(requestParameters: UpdateWorkspaceUsersByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkspaceUsersById(requestParameters: UpdateWorkspaceUsersByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public updateWorkspaceUsersById(requestParameters: UpdateWorkspaceUsersByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateWorkspaceUsersById.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling updateWorkspaceUsersById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling updateWorkspaceUsersById.');\n }\n const appointmentDto = requestParameters.appointmentDto;\n if (appointmentDto === null || appointmentDto === undefined) {\n throw new Error('Required parameter appointmentDto was null or undefined when calling updateWorkspaceUsersById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/workspace-users/${encodeURIComponent(String(id))}`,\n appointmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AzureTokenDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAzureSasTokenRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AzureService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAzureSasToken(requestParameters?: GetAzureSasTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getAzureSasToken(requestParameters?: GetAzureSasTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAzureSasToken(requestParameters?: GetAzureSasTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAzureSasToken(requestParameters?: GetAzureSasTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/azure-token`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ResultMessage } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SendWorkfileValidatedMailRequestParams {\n appointmentId: number;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EmailService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendWorkfileValidatedMail(requestParameters: SendWorkfileValidatedMailRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public sendWorkfileValidatedMail(requestParameters: SendWorkfileValidatedMailRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public sendWorkfileValidatedMail(requestParameters: SendWorkfileValidatedMailRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public sendWorkfileValidatedMail(requestParameters: SendWorkfileValidatedMailRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling sendWorkfileValidatedMail.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling sendWorkfileValidatedMail.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling sendWorkfileValidatedMail.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/sendWorkfileValidatedMail/${encodeURIComponent(String(appointmentId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SaveActivityValidateStatusRequestParams {\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardItemDto: JobcardItemDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardItemControllerService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveActivityValidateStatus(requestParameters: SaveActivityValidateStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public saveActivityValidateStatus(requestParameters: SaveActivityValidateStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveActivityValidateStatus(requestParameters: SaveActivityValidateStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveActivityValidateStatus(requestParameters: SaveActivityValidateStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling saveActivityValidateStatus.');\n }\n const jobcardItemDto = requestParameters.jobcardItemDto;\n if (jobcardItemDto === null || jobcardItemDto === undefined) {\n throw new Error('Required parameter jobcardItemDto was null or undefined when calling saveActivityValidateStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcard-items/activity-validated`,\n jobcardItemDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardPartsBacklogDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddPartsToBacklogRequestParams {\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n jobcardPartsBacklogDto: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeletePartsBacklogRequestParams {\n view: string;\n partId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOrderPartsRequestParams {\n applicationToken: string;\n cspsOrderId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsByIdRequestParams {\n applicationToken: string;\n partId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsByViewRequestParams {\n view: string;\n applicationToken: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsToOrderRequestParams {\n applicationToken: string;\n partId: number;\n view: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n appointmentId?: number;\n customerId?: number;\n orderId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardPartsBacklogService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addPartsToBacklog(requestParameters: AddPartsToBacklogRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public addPartsToBacklog(requestParameters: AddPartsToBacklogRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public addPartsToBacklog(requestParameters: AddPartsToBacklogRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public addPartsToBacklog(requestParameters: AddPartsToBacklogRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling addPartsToBacklog.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling addPartsToBacklog.');\n }\n const jobcardPartsBacklogDto = requestParameters.jobcardPartsBacklogDto;\n if (jobcardPartsBacklogDto === null || jobcardPartsBacklogDto === undefined) {\n throw new Error('Required parameter jobcardPartsBacklogDto was null or undefined when calling addPartsToBacklog.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/parts-backlog`,\n jobcardPartsBacklogDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deletePartsBacklog(requestParameters: DeletePartsBacklogRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public deletePartsBacklog(requestParameters: DeletePartsBacklogRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deletePartsBacklog(requestParameters: DeletePartsBacklogRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public deletePartsBacklog(requestParameters: DeletePartsBacklogRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const view = requestParameters.view;\n if (view === null || view === undefined) {\n throw new Error('Required parameter view was null or undefined when calling deletePartsBacklog.');\n }\n const partId = requestParameters.partId;\n if (partId === null || partId === undefined) {\n throw new Error('Required parameter partId was null or undefined when calling deletePartsBacklog.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling deletePartsBacklog.');\n }\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (partId !== undefined && partId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n partId, 'partId');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/parts-backlog`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderParts(requestParameters: GetOrderPartsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getOrderParts(requestParameters: GetOrderPartsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getOrderParts(requestParameters: GetOrderPartsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getOrderParts(requestParameters: GetOrderPartsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getOrderParts.');\n }\n const cspsOrderId = requestParameters.cspsOrderId;\n if (cspsOrderId === null || cspsOrderId === undefined) {\n throw new Error('Required parameter cspsOrderId was null or undefined when calling getOrderParts.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getOrderParts.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (cspsOrderId !== undefined && cspsOrderId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n cspsOrderId, 'cspsOrderId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-backlog/order-parts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getPartsById.');\n }\n const partId = requestParameters.partId;\n if (partId === null || partId === undefined) {\n throw new Error('Required parameter partId was null or undefined when calling getPartsById.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPartsById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-backlog/${encodeURIComponent(String(partId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsByView(requestParameters: GetPartsByViewRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getPartsByView(requestParameters: GetPartsByViewRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getPartsByView(requestParameters: GetPartsByViewRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getPartsByView(requestParameters: GetPartsByViewRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const view = requestParameters.view;\n if (view === null || view === undefined) {\n throw new Error('Required parameter view was null or undefined when calling getPartsByView.');\n }\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getPartsByView.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPartsByView.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-backlog`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsToOrder(requestParameters: GetPartsToOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getPartsToOrder(requestParameters: GetPartsToOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getPartsToOrder(requestParameters: GetPartsToOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public getPartsToOrder(requestParameters: GetPartsToOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getPartsToOrder.');\n }\n const partId = requestParameters.partId;\n if (partId === null || partId === undefined) {\n throw new Error('Required parameter partId was null or undefined when calling getPartsToOrder.');\n }\n const view = requestParameters.view;\n if (view === null || view === undefined) {\n throw new Error('Required parameter view was null or undefined when calling getPartsToOrder.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getPartsToOrder.');\n }\n const appointmentId = requestParameters.appointmentId;\n const customerId = requestParameters.customerId;\n const orderId = requestParameters.orderId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (partId !== undefined && partId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n partId, 'partId');\n }\n if (orderId !== undefined && orderId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n orderId, 'orderId');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-backlog/order`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { PaymentTypeDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPaymentTypeByWorkshopIdRequestParams {\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentTypeService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPaymentTypeByWorkshopId(requestParameters: GetPaymentTypeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPaymentTypeByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/payment-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPermissionByWorkshopIdRequestParams {\n applicationToken: string;\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPermissionByWorkshopId(requestParameters: GetPermissionByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getPermissionByWorkshopId.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPermissionByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}/permissions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AppointmentDto } from '../model/models';\nimport { CustomerCompanyDto } from '../model/models';\nimport { JobcardItemDto } from '../model/models';\nimport { LegalNoticeDto } from '../model/models';\nimport { OtpDto } from '../model/models';\nimport { ValidationResponseDto } from '../model/models';\nimport { WorkshopDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GenerateOTPRequestParams {\n appointmentId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentByIdRequestParams {\n applicationToken: string;\n appointmentId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetLegalNoticeByWorkshopIdRequestParams {\n applicationToken: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopByIdRequestParams {\n applicationToken: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveCustomerConsentRequestParams {\n id: number;\n customerCompanyDto: CustomerCompanyDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveJobcardItemRequestParams {\n applicationToken: string;\n id: number;\n appointmentId: number;\n jobcardItemDto: JobcardItemDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ValidateOtpRequestParams {\n otpDto: OtpDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SummaryService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public generateOTP(requestParameters: GenerateOTPRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public generateOTP(requestParameters: GenerateOTPRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public generateOTP(requestParameters: GenerateOTPRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public generateOTP(requestParameters: GenerateOTPRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling generateOTP.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/summary/generateOtp`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentById(requestParameters: GetAppointmentByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getAppointmentById(requestParameters: GetAppointmentByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAppointmentById(requestParameters: GetAppointmentByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getAppointmentById(requestParameters: GetAppointmentByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getAppointmentById.');\n }\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling getAppointmentById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/summary/appointments/${encodeURIComponent(String(appointmentId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getLegalNoticeByWorkshopId(requestParameters: GetLegalNoticeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getLegalNoticeByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/summary/legalNotice`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling getWorkshopById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/summary/workshops`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveCustomerConsent(requestParameters: SaveCustomerConsentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public saveCustomerConsent(requestParameters: SaveCustomerConsentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveCustomerConsent(requestParameters: SaveCustomerConsentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveCustomerConsent(requestParameters: SaveCustomerConsentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling saveCustomerConsent.');\n }\n const customerCompanyDto = requestParameters.customerCompanyDto;\n if (customerCompanyDto === null || customerCompanyDto === undefined) {\n throw new Error('Required parameter customerCompanyDto was null or undefined when calling saveCustomerConsent.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/summary/customer-consent/${encodeURIComponent(String(id))}`,\n customerCompanyDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveJobcardItem(requestParameters: SaveJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public saveJobcardItem(requestParameters: SaveJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveJobcardItem(requestParameters: SaveJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public saveJobcardItem(requestParameters: SaveJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling saveJobcardItem.');\n }\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling saveJobcardItem.');\n }\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling saveJobcardItem.');\n }\n const jobcardItemDto = requestParameters.jobcardItemDto;\n if (jobcardItemDto === null || jobcardItemDto === undefined) {\n throw new Error('Required parameter jobcardItemDto was null or undefined when calling saveJobcardItem.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/summary/jobcard-items/${encodeURIComponent(String(id))}`,\n jobcardItemDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public validateOtp(requestParameters: ValidateOtpRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public validateOtp(requestParameters: ValidateOtpRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public validateOtp(requestParameters: ValidateOtpRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public validateOtp(requestParameters: ValidateOtpRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const otpDto = requestParameters.otpDto;\n if (otpDto === null || otpDto === undefined) {\n throw new Error('Required parameter otpDto was null or undefined when calling validateOtp.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/summary/validateOtp`,\n otpDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { TechnicianClockingReportDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RetriveTechnicianClockingReportControllerRequestParams {\n applicationToken: string;\n startDate: string;\n endDate: string;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopBayId?: number;\n workshopUserId?: string;\n customerCompanyId?: number;\n view?: string;\n vehicleId?: number;\n vin?: string;\n currentStatus?: string;\n dmsJobOrder?: number;\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: 'NAME' | 'DMS_ID' | 'COUNTRY' | 'ZIPCODE' | 'CITY';\n appointmentPriority?: string;\n dmsOrderType?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetriveTechnicianClockingReportExcelRequestParams {\n startDate: string;\n endDate: string;\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n workshopBayId?: number;\n workshopUserId?: string;\n customerCompanyId?: number;\n view?: string;\n vehicleId?: number;\n vin?: string;\n currentStatus?: string;\n dmsJobOrder?: number;\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n page?: number;\n size?: number;\n sortOrder?: string;\n sortBy?: 'NAME' | 'DMS_ID' | 'COUNTRY' | 'ZIPCODE' | 'CITY';\n appointmentPriority?: string;\n dmsOrderType?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TechnicianService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveTechnicianClockingReportController(requestParameters: RetriveTechnicianClockingReportControllerRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveTechnicianClockingReportController(requestParameters: RetriveTechnicianClockingReportControllerRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveTechnicianClockingReportController(requestParameters: RetriveTechnicianClockingReportControllerRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>>;\n public retriveTechnicianClockingReportController(requestParameters: RetriveTechnicianClockingReportControllerRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const applicationToken = requestParameters.applicationToken;\n if (applicationToken === null || applicationToken === undefined) {\n throw new Error('Required parameter applicationToken was null or undefined when calling retriveTechnicianClockingReportController.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveTechnicianClockingReportController.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retriveTechnicianClockingReportController.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveTechnicianClockingReportController.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const view = requestParameters.view;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const currentStatus = requestParameters.currentStatus;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const appointmentPriority = requestParameters.appointmentPriority;\n const dmsOrderType = requestParameters.dmsOrderType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (appointmentPriority !== undefined && appointmentPriority !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentPriority, 'appointmentPriority');\n }\n if (dmsOrderType !== undefined && dmsOrderType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsOrderType, 'dmsOrderType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (applicationToken !== undefined && applicationToken !== null) {\n headers = headers.set('Application-Token', String(applicationToken));\n }\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/technician/clockingsummary`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retriveTechnicianClockingReportExcel(requestParameters: RetriveTechnicianClockingReportExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable;\n public retriveTechnicianClockingReportExcel(requestParameters: RetriveTechnicianClockingReportExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveTechnicianClockingReportExcel(requestParameters: RetriveTechnicianClockingReportExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*'}): Observable>;\n public retriveTechnicianClockingReportExcel(requestParameters: RetriveTechnicianClockingReportExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling retriveTechnicianClockingReportExcel.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling retriveTechnicianClockingReportExcel.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling retriveTechnicianClockingReportExcel.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling retriveTechnicianClockingReportExcel.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const view = requestParameters.view;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const currentStatus = requestParameters.currentStatus;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const page = requestParameters.page;\n const size = requestParameters.size;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const appointmentPriority = requestParameters.appointmentPriority;\n const dmsOrderType = requestParameters.dmsOrderType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (size !== undefined && size !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n size, 'size');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (appointmentPriority !== undefined && appointmentPriority !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentPriority, 'appointmentPriority');\n }\n if (dmsOrderType !== undefined && dmsOrderType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsOrderType, 'dmsOrderType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/technician/clockingsummary-excel`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { WorkshopBayDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetWorkshopBaysByWorkshopIdRequestParams {\n workshopId: number;\n /** Authorization header in the format `access_token` */\n authorization: string;\n isActive?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopBaysService {\n\n protected basePath = 'https://digital-jobcard-api-dev.ivecogroup.com/djcworkitem';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopBaysByWorkshopId(requestParameters: GetWorkshopBaysByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopBaysByWorkshopId.');\n }\n const authorization = requestParameters.authorization;\n if (authorization === null || authorization === undefined) {\n throw new Error('Required parameter authorization was null or undefined when calling getWorkshopBaysByWorkshopId.');\n }\n const isActive = requestParameters.isActive;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (isActive !== undefined && isActive !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isActive, 'isActive');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (authorization !== undefined && authorization !== null) {\n headers = headers.set('Authorization', String(authorization));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshop-bays`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OnHoldReasonDto } from './onHoldReasonDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { JobcardDto } from './jobcardDto';\nimport { CustomerCompanyDto } from './customerCompanyDto';\nimport { ChecklistDamageDto } from './checklistDamageDto';\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\nimport { JobcardVehicleDto } from './jobcardVehicleDto';\nimport { AppointmentStatusDto } from './appointmentStatusDto';\nimport { PriorityTypeDto } from './priorityTypeDto';\nimport { UnitStatusDto } from './unitStatusDto';\nimport { VehicleCourtesyBookingDto } from './vehicleCourtesyBookingDto';\n\n\nexport interface AppointmentDto { \n id?: number;\n mileage?: number;\n engineHours?: number;\n workshopBayId?: number;\n workshopId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n currentStatus?: string;\n repairAddress?: string;\n receptionDate?: string;\n deliveryDate?: string;\n dmsCreationDate?: string;\n types?: Array;\n checklistInstances?: Array;\n checkListDamages?: Array;\n customerCompany?: CustomerCompanyDto;\n cpdAlternateContact?: CpdContactDetailsDto;\n vehicle?: JobcardVehicleDto;\n vehicleCourtesy?: VehicleCourtesyDto;\n jobcard?: JobcardDto;\n status?: AppointmentStatusDto;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUserDto;\n unitStatus?: UnitStatusDto;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReasonDto;\n plannedDeliveryDate?: string;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n openedBy?: string;\n orderTypeHeaderCode?: number;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n vehicleCourtesyBookingDto?: VehicleCourtesyBookingDto;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n isInUseDms?: boolean;\n failureEngineHours?: number;\n jobcardTravels?: Array;\n dmsLogError?: boolean;\n priorityType?: PriorityTypeDto;\n customerPaymentMode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignatureDto { \n id?: number;\n url?: string;\n secretKey?: string;\n secretIV?: string;\n phase?: AppointmentSignatureDto.PhaseEnum;\n time?: string;\n customerNotPresent?: boolean;\n appointmentId?: number;\n customerCompanyUserId?: number;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\nexport namespace AppointmentSignatureDto {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\n\n\nexport interface AppointmentStatusDto { \n id?: number;\n workshopUser?: WorkshopUserDto;\n customerCompanyUser?: CustomerCompanyUserDto;\n status?: string;\n time?: string;\n reason?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AzureTokenDto { \n key?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\n\n\nexport interface BrandDto { \n id?: number;\n name?: string;\n iceCode?: string;\n modelDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CheckListResultAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultAttachmentDto } from './checkListResultAttachmentDto';\n\n\nexport interface CheckListResultDto { \n id?: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface ChecklistDamageDto { \n id?: number;\n appointment?: AppointmentDto;\n url?: string;\n zone?: number;\n year?: number;\n jobOrder?: number;\n type?: string;\n filename?: string;\n sapCode?: string;\n size?: number;\n comment?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CheckListResultDto } from './checkListResultDto';\nimport { AppointmentSignatureDto } from './appointmentSignatureDto';\n\n\nexport interface ChecklistInstanceDto { \n id?: number;\n summaryUrl?: string;\n content?: string;\n appointmentId?: number;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n type?: string;\n workshopUserId?: string;\n checkListResult?: Array;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n appointmentSignature?: AppointmentSignatureDto;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Consumable { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConsumableDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partNumber?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetailsDto { \n id?: number;\n customerName?: string;\n cityName?: string;\n address?: string;\n countryCode?: string;\n zipCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { CpdContactDetailsDto } from './cpdContactDetailsDto';\n\n\nexport interface CustomerCompanyDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n address?: string;\n zipcode?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: number;\n creditType?: string;\n dmsId?: string;\n displayedName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n customerNote?: string;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n users?: Array;\n cpdContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n customerPaymentMode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface CustomerCompanyUserDto { \n id?: number;\n customerCompanyId?: number;\n role?: RoleDto;\n firstName?: string;\n lastName?: string;\n email?: string;\n phone?: string;\n mobilePhone?: string;\n dmsId?: string;\n appointmentDtos?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDeleted } from './jobcardItemDeleted';\nimport { JobcardMileage } from './jobcardMileage';\nimport { JobcardEngineHours } from './jobcardEngineHours';\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardTravel } from './jobcardTravel';\n\n\nexport interface Jobcard { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n jobcardItems?: Array;\n dmsJobOrder?: string;\n dmsJobOrderToClaim?: number;\n dmsJobOrderClaimNumber?: number;\n estimatedDuration?: number;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n failureDate?: string;\n mileagePictureUrl?: string;\n customerOrderNumber?: string;\n dmsOrderType?: string;\n percentage?: number;\n jobcardItemDeleted?: Array;\n jobcardAttachments?: Array;\n jobcardMileages?: Array;\n jobcardTravel?: Array;\n jobcardEngineHours?: Array;\n djcOrderType?: string;\n lastUpdatedBy?: string;\n dealerClaimNumber?: number;\n ansDossier?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardAttachment { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n jobcard?: Jobcard;\n url?: string;\n type?: string;\n fileName?: string;\n fileSize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardDto } from './jobcardDto';\n\n\nexport interface JobcardAttachmentDto { \n id?: number;\n jobcardDto?: JobcardDto;\n url?: string;\n type?: string;\n filename?: string;\n filesize?: number;\n sapCode?: string;\n year?: number;\n jobOrder?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardAttachmentDto } from './jobcardAttachmentDto';\nimport { JobcardItemDto } from './jobcardItemDto';\nimport { JobcardTravelDto } from './jobcardTravelDto';\nimport { JobcardItemDeletedDto } from './jobcardItemDeletedDto';\nimport { JobcardItemMobileDto } from './jobcardItemMobileDto';\n\n\nexport interface JobcardDto { \n id?: number;\n dmsJobOrder?: string;\n dmsToStrClaim?: number;\n claim?: number;\n dmsOrderType?: string;\n estimatedDuration?: number;\n startTime?: string;\n endTime?: string;\n customerNote?: string;\n internalNote?: string;\n serialNumberPictureUrl?: string;\n engineHoursPictureUrl?: string;\n mileagePictureUrl?: string;\n failureDate?: string;\n customerOrderNumber?: string;\n jobcardItems?: Array;\n jobcardItemMobileDto?: Array;\n jobcardTravels?: Array;\n percentage?: number;\n jobcardAttachmentDtos?: Array;\n jobcardMileages?: Array;\n jobcardEngineHours?: Array;\n lastUpdatedBy?: string;\n dealerClaimNumber?: string;\n ansDossier?: string;\n jobcardItemDeleted?: Array;\n djcOrderType?: string;\n jobcardSerialNumbers?: Array;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardEngineHours { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n photoUrl?: string;\n name?: string;\n fileName?: string;\n fileSize?: number;\n fileType?: string;\n year?: number;\n creationDate?: string;\n jobcard?: Jobcard;\n isDeleted?: boolean;\n reason?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { WorkshopUser } from './workshopUser';\nimport { Part } from './part';\nimport { WarrantyClaimData } from './warrantyClaimData';\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { Jobcard } from './jobcard';\nimport { JobcardItemExtraOperation } from './jobcardItemExtraOperation';\nimport { JobcardItemAttachment } from './jobcardItemAttachment';\nimport { JobcardItemStatus } from './jobcardItemStatus';\n\n\nexport interface JobcardItem { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n name?: string;\n type?: string;\n code?: string;\n description?: string;\n additionalDescription?: string;\n weight?: number;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n extraActivity?: boolean;\n customerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n causalPartCode?: string;\n duration?: number;\n status?: string;\n addOnStatus?: string;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n dmsId?: string;\n docId?: string;\n jobcard?: Jobcard;\n jobcardItemAttachments?: Array;\n estimatedDuration?: number;\n operations?: Array;\n jobcardItemExtraOperations?: Array;\n jobcardItemStatus?: Array;\n workshopUser?: WorkshopUser;\n failureCode?: string;\n failureDescription?: string;\n causalPart?: Part;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n warrantyType?: string;\n contractNumber?: string;\n failureSeverity?: number;\n defectCode?: string;\n supplierCode?: string;\n deleted?: boolean;\n generalNote?: string;\n cause?: string;\n correction?: string;\n percentage?: number;\n startDate?: string;\n mpPlanId?: number;\n internalNotes?: string;\n workshopDiscount?: WorkshopDiscount;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimData;\n inspectionActivity?: boolean;\n officialTime?: number;\n defferDeleteReason?: string;\n sapResponse?: string;\n couponStatus?: string;\n deferredDate?: string;\n deferredToDate?: string;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n paymentType?: string;\n paymentTypeDisabled?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemAttachment { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n jobcardItem?: JobcardItem;\n creationDate?: string;\n workshopUser?: WorkshopUser;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemAttachmentDto { \n id?: number;\n url?: string;\n type?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n reason?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemCustomerStatusDto { \n id?: number;\n jobcardItemId?: number;\n action?: string;\n actionDateTime?: string;\n actionPerformedBy?: string;\n actionType?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardItemDeleted { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n type?: string;\n code?: string;\n jobcard?: Jobcard;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemDeletedDto { \n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { SplitDto } from './splitDto';\nimport { MpInformationDto } from './mpInformationDto';\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { ChecklistInstanceDto } from './checklistInstanceDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\nimport { JobcardItemAttachmentDto } from './jobcardItemAttachmentDto';\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { WarrantyClaimDataDto } from './warrantyClaimDataDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { WarrantyTypeDto } from './warrantyTypeDto';\nimport { JobcardItemExtraOperationDto } from './jobcardItemExtraOperationDto';\nimport { JobcardPartsBacklogDto } from './jobcardPartsBacklogDto';\n\n\nexport interface JobcardItemDto { \n workshopUserId?: string;\n id?: number;\n name?: string;\n code?: string;\n description?: string;\n deferredDate?: string;\n deferredToDate?: string;\n additionalDescription?: string;\n weight?: number;\n operations?: Array;\n estimatedDuration?: number;\n jobcardItemAttachments?: Array;\n jobcardItemStatus?: Array;\n comment?: string;\n deferred?: boolean;\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n customerSignatureUrl?: string;\n agreementCustomerName?: string;\n visible?: boolean;\n failureCode?: string;\n failureDescription?: string;\n causalPartId?: number;\n defectCode?: string;\n supplierCode?: string;\n failureSeverity?: number;\n warrantyCoverage?: boolean;\n warrantyContract?: string;\n contractNumber?: string;\n warrantyType?: string;\n ids?: Array;\n activityValidated?: boolean;\n activityValidatedDate?: string;\n deleted?: boolean;\n extraOperations?: Array;\n paymentCode?: string;\n paymentSubcode?: string;\n paymentSub2Code?: string;\n paymentSub3Code?: string;\n paymentTypeId?: number;\n paymentSubTypeId?: number;\n paymentSubType2Id?: number;\n paymentSubType3Id?: number;\n preAuthorizationCode?: string;\n authorizerName?: string;\n groupReplaced?: string;\n serviceParticipation?: number;\n subtype?: string;\n type?: string;\n priority?: number;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformationDto;\n generalNote?: string;\n cause?: string;\n correction?: string;\n duration?: number;\n status?: string;\n percentage?: number;\n startDate?: string;\n discountTypeId?: number;\n technicians?: Array;\n addOnStatus?: string;\n internalNotes?: string;\n amountUseOnSpareParts?: number;\n installedDate?: string;\n sparePartInvoiceNumber?: string;\n replacedComponentSerialNumber?: number;\n failedComponentSerialNumber?: number;\n warrantyClaimData?: WarrantyClaimDataDto;\n dmsId?: string;\n inspectionActivity?: boolean;\n sapResponse?: string;\n workshopBayId?: number;\n disabled?: boolean;\n checklistInstances?: Array;\n officialTime?: number;\n errorMsg?: string;\n docId?: string;\n jobcardItemSpells?: Array;\n couponStatus?: string;\n jobcardItemCustomerStatus?: Array;\n paymentType?: PaymentTypeDto;\n payType?: string;\n jobcardPartsBacklog?: Array;\n defferDeleteReason?: string;\n paymentWarrantyType?: WarrantyTypeDto;\n tempJId?: string;\n selected?: boolean;\n paymentSubType?: PaymentSubTypeDto;\n paymentSubType2?: PaymentSubTypeDto;\n paymentSubType3?: PaymentSubTypeDto;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n paymentTypeDisabled?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemExtraOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n compulsory?: boolean;\n jobcardItem?: JobcardItem;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n addOnStatus?: string;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemExtraOperationDto { \n id?: number;\n type?: string;\n description?: string;\n level?: string;\n distance?: number;\n amount?: number;\n deleted?: boolean;\n compulsory?: boolean;\n selected?: boolean;\n code?: string;\n dmsId?: string;\n supplierName?: string;\n disablePrice?: boolean;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n active?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemSpellDto } from './jobcardItemSpellDto';\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\nimport { JobcardItemStatusDto } from './jobcardItemStatusDto';\nimport { JobcardItemCustomerStatusDto } from './jobcardItemCustomerStatusDto';\n\n\nexport interface JobcardItemMobileDto { \n id?: number;\n name?: string;\n jobcardItemStatus?: Array;\n weight?: number;\n deferred?: boolean;\n deleted?: boolean;\n status?: string;\n technicians?: Array;\n jobcardItemSpells?: Array;\n jobcardItemCustomerStatus?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\nimport { JobcardItemOperationConsumable } from './jobcardItemOperationConsumable';\n\n\nexport interface JobcardItemOperation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n lastUpdatedTimestamp?: string;\n version?: number;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n id?: number;\n code?: string;\n label?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n jobcardItem?: JobcardItem;\n price?: number;\n compulsory?: boolean;\n operationManufacturer?: string;\n addOnStatus?: string;\n srt?: boolean;\n isDefault?: boolean;\n type?: string;\n jobcardItemOperationParts?: Array;\n jobcardItemOperationConsumables?: Array;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Consumable } from './consumable';\n\n\nexport interface JobcardItemOperationConsumable { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: string;\n jobcardItemOperation?: JobcardItemOperation;\n consumable?: Consumable;\n price?: number;\n ewarrantyCode?: string;\n selected?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ConsumableDto } from './consumableDto';\n\n\nexport interface JobcardItemOperationConsumableDto { \n id?: number;\n quantity?: string;\n consumable?: ConsumableDto;\n compulsory?: boolean;\n price?: number;\n selected?: boolean;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationConsumableDto } from './jobcardItemOperationConsumableDto';\nimport { JobcardItemOperationPartDto } from './jobcardItemOperationPartDto';\n\n\nexport interface JobcardItemOperationDto { \n id?: number;\n code?: string;\n label?: string;\n type?: string;\n description?: string;\n weight?: number;\n officialTime?: number;\n durationTime?: number;\n compulsory?: boolean;\n selected?: boolean;\n price?: number;\n manufacturer?: string;\n addOnStatus?: string;\n parts?: Array;\n consumables?: Array;\n isKitComplete?: boolean;\n useKitPart?: boolean;\n dmsId?: string;\n srt?: boolean;\n isDefault?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperation } from './jobcardItemOperation';\nimport { Part } from './part';\nimport { JobcardItemOperationPartLocation } from './jobcardItemOperationPartLocation';\n\n\nexport interface JobcardItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n jobcardItemOperation?: JobcardItemOperation;\n part?: Part;\n price?: number;\n cost?: number;\n tobereturned?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocation?: Array;\n pickupDate?: string;\n ewarrantyCode?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationDto } from './jobcardItemOperationDto';\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardItemOperationPartDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobCardItemOperation?: JobcardItemOperationDto;\n pickupDate?: string;\n tobereturned?: boolean;\n compulsory?: boolean;\n price?: number;\n cost?: number;\n selected?: boolean;\n addOnStatus?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n dmsId?: string;\n jobcardItemOperationPartLocationList?: Array;\n ewarrantyCode?: string;\n version?: number;\n isAvailableAtHomeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemOperationPartLocation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n locationId?: string;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPart } from './jobcardItemOperationPart';\n\n\nexport interface JobcardItemOperationPartLocationDto { \n id?: number;\n locationId?: string;\n jobcardItemOperationPart?: JobcardItemOperationPart;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n locationName?: string;\n siteName?: string;\n version?: number;\n availableAtHomeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnicianDto } from './jobcardItemTechnicianDto';\n\n\nexport interface JobcardItemSpellDto { \n id?: number;\n name?: string;\n weight?: number;\n estimatedDuration?: number;\n startDate?: string;\n workshopBayId?: number;\n technicians?: Array;\n selected?: boolean;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { JobcardItem } from './jobcardItem';\n\n\nexport interface JobcardItemStatus { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n workshopUser?: WorkshopUser;\n jobcardItem?: JobcardItem;\n reason?: string;\n otherReason?: string;\n isDeleted?: boolean;\n dmsId?: string;\n}\nexport namespace JobcardItemStatus {\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP' | 'CLOCKING_WEB' | 'CLOCKING_DMS' | 'CLOCKING_CRON';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum,\n WEB: 'CLOCKING_WEB' as ClockingStatusEnum,\n DMS: 'CLOCKING_DMS' as ClockingStatusEnum,\n CRON: 'CLOCKING_CRON' as ClockingStatusEnum\n };\n}\n\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemStatusDto { \n id?: number;\n status?: string;\n time?: string;\n endTime?: string;\n duration?: number;\n clockingStatus?: string;\n jobcardItemId?: number;\n workshopUserId?: string;\n reason?: string;\n otherReason?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n dmsId?: string;\n hasError?: boolean;\n errorReason?: string;\n activityId?: number;\n appointmentId?: number;\n deleted?: boolean;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardItemTechnicianDto { \n id?: number;\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n isDeleted?: boolean;\n spellLinkId?: number;\n firstName?: string;\n lastName?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardMileage { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n photoUrl?: string;\n name?: string;\n fileName?: string;\n fileSize?: number;\n fileType?: string;\n year?: number;\n creationDate?: string;\n jobcard?: Jobcard;\n reason?: string;\n isDeleted?: boolean;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface JobcardPartsBacklog { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n basicDiscount?: number;\n promoDiscount?: number;\n netPrice?: number;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n cspsOrderId?: number;\n details?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartDto } from './partDto';\n\n\nexport interface JobcardPartsBacklogDto { \n id?: number;\n quantity?: number;\n part?: PartDto;\n jobcardItemId?: number;\n orderSimulationId?: number;\n grossPrice?: number;\n netPrice?: number;\n customerCompanyId?: number;\n appointmentId?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n partId?: number;\n operation?: string;\n orderSimulationDate?: string;\n partStatus?: string;\n expectedDeliveryDate?: string;\n basicDiscount?: number;\n promoDiscount?: number;\n cspsOrderId?: number;\n workshopId?: number;\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Jobcard } from './jobcard';\n\n\nexport interface JobcardTravel { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n distance?: number;\n duration?: number;\n date?: string;\n jobcard?: Jobcard;\n reason?: string;\n otherReason?: string;\n isDeleted?: boolean;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n price?: number;\n travelTypeFrom?: number;\n travelTypeTo?: number;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n dmsId?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\nimport { PaymentTypeDto } from './paymentTypeDto';\nimport { WorkshopUserTravelPositionDto } from './workshopUserTravelPositionDto';\n\n\nexport interface JobcardTravelDto { \n id?: number;\n dmsId?: string;\n name?: string;\n duration?: number;\n jobcardId?: number;\n distance?: number;\n date?: string;\n reason?: string;\n otherReason?: string;\n deleted?: boolean;\n workshopUserId?: string;\n positions?: Array;\n travelFromAddressLine1?: string;\n travelFromAddressLine2?: string;\n travelFromAddressLine3?: string;\n travelFromAddressLine4?: string;\n travelFromPostalCode?: string;\n travelToAddressLine1?: string;\n travelToAddressLine2?: string;\n travelToAddressLine3?: string;\n travelToAddressLine4?: string;\n travelToPostalCode?: string;\n internalNotes?: string;\n estimatedDistance?: number;\n estimatedDuration?: number;\n paymentType?: PaymentTypeDto;\n paymentSubType?: PaymentSubTypeDto;\n paymentSubSubType2?: PaymentSubSubTypeDto;\n paymentSubSubType3?: PaymentSubSubTypeDto;\n price?: number;\n travelFromShowCoordinates?: string;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToShowCoordinates?: string;\n travelToLatitude?: number;\n travelToLongitude?: number;\n travelTypeFrom?: string;\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToManualRefreshDate?: string;\n travelToGpsImportedDate?: string;\n itemCode?: string;\n travelSource?: string;\n travelExtraCode?: string;\n warrantyClaimNumbers?: string;\n sapResponse?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { CustomerCompanyUserDto } from './customerCompanyUserDto';\nimport { VehicleLegalInspectionDto } from './vehicleLegalInspectionDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface JobcardVehicleDto { \n id?: number;\n workshopId?: number;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n wtyStartDate?: string;\n customerCompanyId?: number;\n annualInspectionDate?: string;\n tachometerDate?: string;\n isActive?: boolean;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vehicleNote?: string;\n customerCompanyUser?: CustomerCompanyUserDto;\n ownerId?: string;\n invoiceDate?: string;\n stockNumber?: string;\n inspections?: Array;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n dmsId?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\n\n\nexport interface KitItemOperationPart { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n quantity?: number;\n part?: Part;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LegalNoticeDto { \n id?: number;\n workshopId?: number;\n termsAndConditions?: string;\n privacyNotice?: string;\n termsAzureUrl?: string;\n privacyAzureUrl?: string;\n customerNotes?: string;\n docUploadForPn?: boolean;\n docUploadForTc?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BrandDto } from './brandDto';\n\n\nexport interface ModelDto { \n id?: number;\n name?: string;\n brand?: BrandDto;\n}\n\n","export * from './appointmentDto';\nexport * from './appointmentSignatureDto';\nexport * from './appointmentStatusDto';\nexport * from './azureTokenDto';\nexport * from './brandDto';\nexport * from './checkListResultAttachmentDto';\nexport * from './checkListResultDto';\nexport * from './checklistDamageDto';\nexport * from './checklistInstanceDto';\nexport * from './consumable';\nexport * from './consumableDto';\nexport * from './cpdContactDetailsDto';\nexport * from './customerCompanyDto';\nexport * from './customerCompanyUserDto';\nexport * from './jobcard';\nexport * from './jobcardAttachment';\nexport * from './jobcardAttachmentDto';\nexport * from './jobcardDto';\nexport * from './jobcardEngineHours';\nexport * from './jobcardItem';\nexport * from './jobcardItemAttachment';\nexport * from './jobcardItemAttachmentDto';\nexport * from './jobcardItemCustomerStatusDto';\nexport * from './jobcardItemDeleted';\nexport * from './jobcardItemDeletedDto';\nexport * from './jobcardItemDto';\nexport * from './jobcardItemExtraOperation';\nexport * from './jobcardItemExtraOperationDto';\nexport * from './jobcardItemMobileDto';\nexport * from './jobcardItemOperation';\nexport * from './jobcardItemOperationConsumable';\nexport * from './jobcardItemOperationConsumableDto';\nexport * from './jobcardItemOperationDto';\nexport * from './jobcardItemOperationPart';\nexport * from './jobcardItemOperationPartDto';\nexport * from './jobcardItemOperationPartLocation';\nexport * from './jobcardItemOperationPartLocationDto';\nexport * from './jobcardItemSpellDto';\nexport * from './jobcardItemStatus';\nexport * from './jobcardItemStatusDto';\nexport * from './jobcardItemTechnicianDto';\nexport * from './jobcardMileage';\nexport * from './jobcardPartsBacklog';\nexport * from './jobcardPartsBacklogDto';\nexport * from './jobcardTravel';\nexport * from './jobcardTravelDto';\nexport * from './jobcardVehicleDto';\nexport * from './kitItemOperationPart';\nexport * from './legalNoticeDto';\nexport * from './modelDto';\nexport * from './mpDeltaDto';\nexport * from './mpInformationDto';\nexport * from './mpKitCompositionDto';\nexport * from './onHoldReasonDto';\nexport * from './openingDay';\nexport * from './otpDto';\nexport * from './part';\nexport * from './partDetail';\nexport * from './partDto';\nexport * from './partMaster';\nexport * from './partMasterHeader';\nexport * from './partsTrackerCsps';\nexport * from './partsTrackerDms';\nexport * from './paymentSubSubTypeDto';\nexport * from './paymentSubTypeDto';\nexport * from './paymentTypeDto';\nexport * from './period';\nexport * from './priorityTypeDto';\nexport * from './resultMessage';\nexport * from './role';\nexport * from './roleDto';\nexport * from './shiftDto';\nexport * from './shiftPeriodDto';\nexport * from './skillDto';\nexport * from './splitDto';\nexport * from './technicianClockingReportDto';\nexport * from './unitStatusDto';\nexport * from './validationResponseDto';\nexport * from './vehicleCourtesyBookingDto';\nexport * from './vehicleCourtesyDto';\nexport * from './vehicleLegalInspectionDto';\nexport * from './warrantyClaimData';\nexport * from './warrantyClaimDataDto';\nexport * from './warrantyTypeDto';\nexport * from './workshop';\nexport * from './workshopBay';\nexport * from './workshopBayDto';\nexport * from './workshopDiscount';\nexport * from './workshopDiscountDto';\nexport * from './workshopDto';\nexport * from './workshopSalesOrganizationDto';\nexport * from './workshopUser';\nexport * from './workshopUserDto';\nexport * from './workshopUserRelation';\nexport * from './workshopUserTravelPositionDto';\nexport * from './workshopUserUnavailability';\nexport * from './workshopUserUnavailabilityDto';\nexport * from './worshopUserSetting';\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpDeltaDto { \n unit?: string;\n value?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpDeltaDto } from './mpDeltaDto';\n\n\nexport interface MpInformationDto { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpKitCompositionDto { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReasonDto { \n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Period } from './period';\n\n\nexport interface OpeningDay { \n weekday?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OtpDto { \n otp?: number;\n randomId?: string;\n phoneNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartsTrackerDms } from './partsTrackerDms';\nimport { KitItemOperationPart } from './kitItemOperationPart';\nimport { Workshop } from './workshop';\nimport { JobcardPartsBacklog } from './jobcardPartsBacklog';\nimport { PartDetail } from './partDetail';\nimport { PartsTrackerCsps } from './partsTrackerCsps';\n\n\nexport interface Part { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n workshop?: Workshop;\n code?: string;\n description?: string;\n quantity?: number;\n manufacturer?: string;\n price?: number;\n partDetail?: PartDetail;\n kitOperationParts?: Array;\n partSuperseedingId?: number;\n isKit?: boolean;\n jobcardPartsBacklog?: Array;\n partsTrackerDms?: Array;\n partsTrackerCsps?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartDetail { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n firstModelYear?: string;\n lastModelYear?: string;\n partManufacturer?: string;\n manufacturerPartCode?: string;\n packageQuantity?: number;\n partChangeStatus?: number;\n partTypeCode?: string;\n partManufacturerBrand?: string;\n alternatePartCode?: string;\n brand?: string;\n partName?: string;\n hazmatDescription?: string;\n hazmatIndicator?: number;\n uomCode?: string;\n classCode?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemOperationPartLocationDto } from './jobcardItemOperationPartLocationDto';\nimport { MpKitCompositionDto } from './mpKitCompositionDto';\n\n\nexport interface PartDto { \n id?: number;\n workshopId?: number;\n code?: string;\n description?: string;\n partSuperseedingId?: number;\n partDetailId?: number;\n quantity?: number;\n booking?: string;\n visitDate?: string;\n vehPlate?: string;\n customer?: string;\n activity?: string;\n manufacturer?: string;\n isKit?: boolean;\n kitParts?: Array;\n quantityInStock?: number;\n quantityOnOrder?: number;\n quantityInTransit?: number;\n jobcardItemOperationPartLocationList?: Array;\n price?: number;\n homeLocation?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartMasterHeader } from './partMasterHeader';\nimport { Workshop } from './workshop';\n\n\nexport interface PartMaster { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n partMasterHeader?: PartMasterHeader;\n workshop?: Workshop;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartMaster } from './partMaster';\n\n\nexport interface PartMasterHeader { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n documentDateTime?: string;\n documentId?: string;\n partMasterCountryCode?: string;\n partMasterEffectiveDate?: string;\n partMaster?: PartMaster;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerCsps { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerDms { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PaymentSubSubTypeDto { \n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n weight?: number;\n isVisible?: boolean;\n paymentSubTypeId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubTypeDto } from './paymentSubSubTypeDto';\n\n\nexport interface PaymentSubTypeDto { \n id?: number;\n description?: string;\n type?: string;\n code?: string;\n weight?: number;\n paymentTypeId?: number;\n isVisible?: boolean;\n categoryType?: string;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubTypeDto } from './paymentSubTypeDto';\n\n\nexport interface PaymentTypeDto { \n id?: number;\n isVisible?: boolean;\n workshopId?: number;\n type?: string;\n weight?: number;\n paymentSubTypes?: Array;\n code?: string;\n name?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Period { \n id?: number;\n start?: string;\n end?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PriorityTypeDto { \n id?: number;\n description?: string;\n status?: string;\n icon?: string;\n defaultPriority?: boolean;\n workshopId?: number;\n type?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ResultMessage { \n code?: string;\n message?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Role { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n roleAbbrev?: string;\n iamAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RoleDto { \n id?: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriodDto } from './shiftPeriodDto';\n\n\nexport interface ShiftDto { \n id?: number;\n description?: string;\n type?: string;\n startDate?: string;\n endDate?: string;\n userShiftId?: number;\n targetTime?: number;\n dmsId?: string;\n periods?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriodDto { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SkillDto { \n id?: number;\n description?: string;\n translationKey?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SplitDto { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n pricingId?: number;\n jobcardItemId?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TechnicianClockingReportDto { \n booking?: number;\n customer?: string;\n activitytype?: string;\n activities?: string;\n activitystatus?: string;\n technicianname?: string;\n plannedtime?: string;\n clockedtime?: string;\n operation?: string;\n startDate?: string;\n spellStartTime?: string;\n spellEndTime?: string;\n workshopUserId?: string;\n endDate?: string;\n clockingStartTime?: string;\n clockingEndTime?: string;\n dmsOrderType?: string;\n djcOrderType?: string;\n vin?: string;\n isBreakdownAppt?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnitStatusDto { \n id?: number;\n date?: string;\n unitDown?: boolean;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ValidationResponseDto { \n isValidated?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehicleCourtesyDto } from './vehicleCourtesyDto';\nimport { AppointmentDto } from './appointmentDto';\n\n\nexport interface VehicleCourtesyBookingDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n reason?: string;\n vehicleCourtesy?: VehicleCourtesyDto;\n appointment?: AppointmentDto;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ModelDto } from './modelDto';\nimport { WorkshopDto } from './workshopDto';\nimport { AppointmentDto } from './appointmentDto';\nimport { BrandDto } from './brandDto';\n\n\nexport interface VehicleCourtesyDto { \n id?: number;\n plate?: string;\n vin?: string;\n brand?: BrandDto;\n model?: ModelDto;\n mileage?: number;\n dmsId?: string;\n workshop?: WorkshopDto;\n vehicleNote?: string;\n status?: string;\n appointments?: Array;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleLegalInspectionDto { \n id?: number;\n label?: string;\n code?: string;\n date?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimData { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyClaimDataDto { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyTypeDto { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { PartMaster } from './partMaster';\n\n\nexport interface Workshop { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n masterWorkshopId?: number;\n dmsUrl?: string;\n tempDmsUrl?: string;\n dmsAuthenticationId?: string;\n tempDmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n dmsClearAuthenticationPassword?: string;\n currencyCode?: string;\n cspsUserId?: string;\n enableSafetyChecklist?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n labourCost?: string;\n dmsProvider?: string;\n partMaster?: PartMaster;\n workshopDiscount?: Array;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n dealerClaimCounter?: number;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopBay { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n bayCode?: string;\n active?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserDto } from './workshopUserDto';\n\n\nexport interface WorkshopBayDto { \n id?: number;\n name?: string;\n type?: string;\n maximumUtilisation?: number;\n weight?: number;\n leadTechnician?: string;\n technicians?: Array;\n bayCode?: string;\n isActive?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopDiscount { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopDto } from './workshopDto';\n\n\nexport interface WorkshopDiscountDto { \n id?: number;\n name?: string;\n percentage?: number;\n dmsCode?: string;\n discountType?: string;\n additionalInformation?: string;\n workshop?: WorkshopDto;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { OpeningDay } from './openingDay';\nimport { WorkshopSalesOrganizationDto } from './workshopSalesOrganizationDto';\n\n\nexport interface WorkshopDto { \n id?: number;\n name?: string;\n city?: string;\n country?: string;\n address?: string;\n sapCode?: string;\n phone?: string;\n email?: string;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n dmsAuthenticationPassword?: string;\n openingTime?: string;\n closureTime?: string;\n openingDays?: Array;\n masterWorkshopId?: number;\n workshopBayDto?: WorkshopBayDto;\n currencyCode?: string;\n cspsUserId?: string;\n isImportStaffFromDms?: boolean;\n allowedTimePreferred?: string;\n workshopSalesOrganizations?: Array;\n paymentCode?: string;\n labourCost?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n isTrWorkflow?: boolean;\n enableSafetyChecklist?: boolean;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n useClockingId?: boolean;\n dmsProvider?: string;\n addressDMSLimit?: number;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesOrganizationDto { \n id?: number;\n brandDivision?: string;\n market?: string;\n salesCode?: string;\n lastUpdatedTimestamp?: string;\n lastUpdatedFields?: string;\n lastSyncTimestamp?: string;\n version?: number;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Role } from './role';\nimport { WorshopUserSetting } from './worshopUserSetting';\nimport { WorkshopUserRelation } from './workshopUserRelation';\nimport { WorkshopUserUnavailability } from './workshopUserUnavailability';\n\n\nexport interface WorkshopUser { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n deviceToken?: string;\n appVersion?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n views?: string;\n isActivityApproval?: string;\n costRate?: string;\n role?: Role;\n canEditJobcard?: boolean;\n isAutomaticApproval?: string;\n canSeePrice?: boolean;\n isAssociateUser?: boolean;\n canSelfAssign?: boolean;\n clockingLog?: string;\n workshopUserUnavailability?: Array;\n workshopUserRelations?: Array;\n worshopUserSettings?: Array;\n active?: boolean;\n manualJobStatusOverride?: boolean;\n displayingOccupancy?: boolean;\n admin?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoleDto } from './roleDto';\nimport { WorkshopDiscountDto } from './workshopDiscountDto';\nimport { SkillDto } from './skillDto';\nimport { ShiftDto } from './shiftDto';\nimport { WorkshopDto } from './workshopDto';\nimport { WorkshopBayDto } from './workshopBayDto';\nimport { WorkshopUserUnavailabilityDto } from './workshopUserUnavailabilityDto';\n\n\nexport interface WorkshopUserDto { \n id?: string;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n email?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n role?: RoleDto;\n isAdmin?: boolean;\n isActive?: boolean;\n views?: string;\n isTechnicianView?: boolean;\n deviceToken?: string;\n appVersion?: string;\n skills?: Array;\n canEditJobcard?: boolean;\n displayedName?: string;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n canSeePrice?: boolean;\n leadWorkshopBayId?: number;\n url?: string;\n isManualJobStatusOverride?: boolean;\n isAssociateUser?: boolean;\n workshopDiscountDto?: Array;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n costRate?: string;\n isAutomaticApproval?: string;\n isActivityApproval?: string;\n unavailabilities?: Array;\n workshopBays?: Array;\n shifts?: Array;\n isAssociatedWithWorkshop?: boolean;\n canSelfAssign?: boolean;\n workshopList?: Array;\n showClockingResume?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Workshop } from './workshop';\nimport { WorkshopBay } from './workshopBay';\n\n\nexport interface WorkshopUserRelation { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n workshop?: Workshop;\n workshopBay?: WorkshopBay;\n workshopUser?: WorkshopUser;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserTravelPositionDto { \n id?: number;\n workshopUserId?: string;\n jobcardTravelId?: number;\n latitude?: number;\n longitude?: number;\n positionDate?: string;\n positionType?: string;\n deviceStatus?: string;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailability { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n fromDms?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailabilityDto { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: string;\n isFromDms?: boolean;\n}\n\n","/**\n * OpenAPI definition\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface WorshopUserSetting { \n insertUser?: string;\n updateUser?: string;\n creationAt?: string;\n updatedAt?: string;\n isEnabled?: boolean;\n id?: number;\n key?: string;\n type?: WorshopUserSetting.TypeEnum;\n intValue?: number;\n strValue?: string;\n boolValue?: boolean;\n workshopUser?: WorkshopUser;\n}\nexport namespace WorshopUserSetting {\n export type TypeEnum = 'BOOL' | 'STR' | 'INT';\n export const TypeEnum = {\n BOOL: 'BOOL' as TypeEnum,\n STR: 'STR' as TypeEnum,\n INT: 'INT' as TypeEnum\n };\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { AttachmentService } from './api/attachment.service';\nimport { AzureService } from './api/azure.service';\nimport { BookmarkService } from './api/bookmark.service';\nimport { DmcService } from './api/dmc.service';\nimport { DocumentService } from './api/document.service';\nimport { DqrLogisticUserService } from './api/dqrLogisticUser.service';\nimport { DqrReportService } from './api/dqrReport.service';\nimport { EncryptionService } from './api/encryption.service';\nimport { EpartsService } from './api/eparts.service';\nimport { EtimService } from './api/etim.service';\nimport { HealthService } from './api/health.service';\nimport { ImageService } from './api/image.service';\nimport { InteractiveInitStepsService } from './api/interactiveInitSteps.service';\nimport { InteractivePdfService } from './api/interactivePdf.service';\nimport { LangService } from './api/lang.service';\nimport { LocalnoteService } from './api/localnote.service';\nimport { ModularDiagnosticService } from './api/modularDiagnostic.service';\nimport { RatingService } from './api/rating.service';\nimport { ReportService } from './api/report.service';\nimport { SaveInteractiveStepsService } from './api/saveInteractiveSteps.service';\nimport { SaveSmartWarrantyCodesService } from './api/saveSmartWarrantyCodes.service';\nimport { ServicenotificationService } from './api/servicenotification.service';\nimport { SmartWarrantyService } from './api/smartWarranty.service';\nimport { SmartWarrantyCodeService } from './api/smartWarrantyCode.service';\nimport { SpecialToolsService } from './api/specialTools.service';\nimport { TdsService } from './api/tds.service';\nimport { VisibilityService } from './api/visibility.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","export * from './attachment.service';\nimport { AttachmentService } from './attachment.service';\nexport * from './azure.service';\nimport { AzureService } from './azure.service';\nexport * from './bookmark.service';\nimport { BookmarkService } from './bookmark.service';\nexport * from './dmc.service';\nimport { DmcService } from './dmc.service';\nexport * from './document.service';\nimport { DocumentService } from './document.service';\nexport * from './dqrLogisticUser.service';\nimport { DqrLogisticUserService } from './dqrLogisticUser.service';\nexport * from './dqrReport.service';\nimport { DqrReportService } from './dqrReport.service';\nexport * from './encryption.service';\nimport { EncryptionService } from './encryption.service';\nexport * from './eparts.service';\nimport { EpartsService } from './eparts.service';\nexport * from './etim.service';\nimport { EtimService } from './etim.service';\nexport * from './health.service';\nimport { HealthService } from './health.service';\nexport * from './image.service';\nimport { ImageService } from './image.service';\nexport * from './interactiveInitSteps.service';\nimport { InteractiveInitStepsService } from './interactiveInitSteps.service';\nexport * from './interactivePdf.service';\nimport { InteractivePdfService } from './interactivePdf.service';\nexport * from './lang.service';\nimport { LangService } from './lang.service';\nexport * from './localnote.service';\nimport { LocalnoteService } from './localnote.service';\nexport * from './modularDiagnostic.service';\nimport { ModularDiagnosticService } from './modularDiagnostic.service';\nexport * from './rating.service';\nimport { RatingService } from './rating.service';\nexport * from './report.service';\nimport { ReportService } from './report.service';\nexport * from './saveInteractiveSteps.service';\nimport { SaveInteractiveStepsService } from './saveInteractiveSteps.service';\nexport * from './saveSmartWarrantyCodes.service';\nimport { SaveSmartWarrantyCodesService } from './saveSmartWarrantyCodes.service';\nexport * from './servicenotification.service';\nimport { ServicenotificationService } from './servicenotification.service';\nexport * from './smartWarranty.service';\nimport { SmartWarrantyService } from './smartWarranty.service';\nexport * from './smartWarrantyCode.service';\nimport { SmartWarrantyCodeService } from './smartWarrantyCode.service';\nexport * from './specialTools.service';\nimport { SpecialToolsService } from './specialTools.service';\nexport * from './tds.service';\nimport { TdsService } from './tds.service';\nexport * from './visibility.service';\nimport { VisibilityService } from './visibility.service';\nexport const APIS = [AttachmentService, AzureService, BookmarkService, DmcService, DocumentService, DqrLogisticUserService, DqrReportService, EncryptionService, EpartsService, EtimService, HealthService, ImageService, InteractiveInitStepsService, InteractivePdfService, LangService, LocalnoteService, ModularDiagnosticService, RatingService, ReportService, SaveInteractiveStepsService, SaveSmartWarrantyCodesService, ServicenotificationService, SmartWarrantyService, SmartWarrantyCodeService, SpecialToolsService, TdsService, VisibilityService];\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetKaAttachmentRequestParams {\n attachId: string;\n mediaType: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AttachmentService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get a KA attachment.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKaAttachment(requestParameters: GetKaAttachmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/_*' | 'image/_*' | 'application/json'}): Observable;\n public getKaAttachment(requestParameters: GetKaAttachmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/_*' | 'image/_*' | 'application/json'}): Observable>;\n public getKaAttachment(requestParameters: GetKaAttachmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/_*' | 'image/_*' | 'application/json'}): Observable>;\n public getKaAttachment(requestParameters: GetKaAttachmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/_*' | 'image/_*' | 'application/json'}): Observable {\n const attachId = requestParameters.attachId;\n if (attachId === null || attachId === undefined) {\n throw new Error('Required parameter attachId was null or undefined when calling getKaAttachment.');\n }\n const mediaType = requestParameters.mediaType;\n if (mediaType === null || mediaType === undefined) {\n throw new Error('Required parameter mediaType was null or undefined when calling getKaAttachment.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (attachId !== undefined && attachId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n attachId, 'attachId');\n }\n if (mediaType !== undefined && mediaType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n mediaType, 'mediaType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/_*',\n 'image/_*',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/getKaAttachment`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { AzureAccount } from '../model/models';\nimport { DownloadableFileDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface DeleteAzureFileRequestParams {\n /** blobname of the report */\n id: string;\n container?: string;\n /** folder */\n directory?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAzureAccountNameRequestParams {\n azureDest?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAzureTokenRequestParams {\n container?: string;\n azureDest?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFeedbackAzureTokenRequestParams {\n container?: string;\n azureDest?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListOfFilesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUrlOfFileRequestParams {\n /** id of the file */\n id: number;\n azurePath: string;\n fileName?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AzureService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Delete azure file.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteAzureFile(requestParameters: DeleteAzureFileRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteAzureFile(requestParameters: DeleteAzureFileRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAzureFile(requestParameters: DeleteAzureFileRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAzureFile(requestParameters: DeleteAzureFileRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteAzureFile.');\n }\n const container = requestParameters.container;\n const directory = requestParameters.directory;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (container !== undefined && container !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n container, 'container');\n }\n if (directory !== undefined && directory !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n directory, 'directory');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/azure-file/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get azure account name.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAzureAccountName(requestParameters: GetAzureAccountNameRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAzureAccountName(requestParameters: GetAzureAccountNameRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAzureAccountName(requestParameters: GetAzureAccountNameRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAzureAccountName(requestParameters: GetAzureAccountNameRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const azureDest = requestParameters.azureDest;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (azureDest !== undefined && azureDest !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n azureDest, 'azureDest');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/azure-account`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get azure token for image.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAzureToken(requestParameters: GetAzureTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAzureToken(requestParameters: GetAzureTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAzureToken(requestParameters: GetAzureTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAzureToken(requestParameters: GetAzureTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const container = requestParameters.container;\n const azureDest = requestParameters.azureDest;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (container !== undefined && container !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n container, 'container');\n }\n if (azureDest !== undefined && azureDest !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n azureDest, 'azureDest');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/azure-token`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get azure token for image.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFeedbackAzureToken(requestParameters: GetFeedbackAzureTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getFeedbackAzureToken(requestParameters: GetFeedbackAzureTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFeedbackAzureToken(requestParameters: GetFeedbackAzureTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFeedbackAzureToken(requestParameters: GetFeedbackAzureTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const container = requestParameters.container;\n const azureDest = requestParameters.azureDest;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (container !== undefined && container !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n container, 'container');\n }\n if (azureDest !== undefined && azureDest !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n azureDest, 'azureDest');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/feedback-azure-token`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the list of files for the download area\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListOfFiles(requestParameters?: GetListOfFilesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListOfFiles(requestParameters?: GetListOfFilesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListOfFiles(requestParameters?: GetListOfFilesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListOfFiles(requestParameters?: GetListOfFilesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/downloadable-files`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the url of a file to download (download area)\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUrlOfFile(requestParameters: GetUrlOfFileRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUrlOfFile(requestParameters: GetUrlOfFileRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUrlOfFile(requestParameters: GetUrlOfFileRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUrlOfFile(requestParameters: GetUrlOfFileRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getUrlOfFile.');\n }\n const azurePath = requestParameters.azurePath;\n if (azurePath === null || azurePath === undefined) {\n throw new Error('Required parameter azurePath was null or undefined when calling getUrlOfFile.');\n }\n const fileName = requestParameters.fileName;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (azurePath !== undefined && azurePath !== null) {\n headers = headers.set('azurePath', String(azurePath));\n }\n if (fileName !== undefined && fileName !== null) {\n headers = headers.set('fileName', String(fileName));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/downloadable-files/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { BookmarkDto } from '../model/models';\nimport { BookmarkResponseDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddbmkiuRequestParams {\n bookmarkDto?: BookmarkDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface AddbmkmodRequestParams {\n bookmarkDto?: BookmarkDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface AddbmkstRequestParams {\n bookmarkDto?: BookmarkDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BookmarkService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * add bookmark for IU\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addbmkiu(requestParameters: AddbmkiuRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addbmkiu(requestParameters: AddbmkiuRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addbmkiu(requestParameters: AddbmkiuRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addbmkiu(requestParameters: AddbmkiuRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const bookmarkDto = requestParameters.bookmarkDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/bmk/addbmkiu`,\n bookmarkDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * add bookmark for modal\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addbmkmod(requestParameters: AddbmkmodRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addbmkmod(requestParameters: AddbmkmodRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addbmkmod(requestParameters: AddbmkmodRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addbmkmod(requestParameters: AddbmkmodRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const bookmarkDto = requestParameters.bookmarkDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/bmk/addbmkmod`,\n bookmarkDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * add bookmark of ST\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addbmkst(requestParameters: AddbmkstRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addbmkst(requestParameters: AddbmkstRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addbmkst(requestParameters: AddbmkstRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addbmkst(requestParameters: AddbmkstRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const bookmarkDto = requestParameters.bookmarkDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/bmk/addbmkst`,\n bookmarkDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { DMCDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDMCUrlRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DmcService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Generate the URL for DMC\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDMCUrl(requestParameters?: GetDMCUrlRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDMCUrl(requestParameters?: GetDMCUrlRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDMCUrl(requestParameters?: GetDMCUrlRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDMCUrl(requestParameters?: GetDMCUrlRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dmc-url`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ActiveWarranty } from '../model/models';\nimport { AnalyticData } from '../model/models';\nimport { AnalyticsDataRefreshTime } from '../model/models';\nimport { ApiError } from '../model/models';\nimport { Appointment } from '../model/models';\nimport { AssetsDetails } from '../model/models';\nimport { CANCategoriesDescription } from '../model/models';\nimport { Consumable } from '../model/models';\nimport { CountryTimeZone } from '../model/models';\nimport { DeviceDocument } from '../model/models';\nimport { DocumentHasSchematics } from '../model/models';\nimport { DocumentInfo } from '../model/models';\nimport { ElementSearchResult } from '../model/models';\nimport { GeoStoreDetails } from '../model/models';\nimport { HotspotDto } from '../model/models';\nimport { HotspotIuIceCodeDto } from '../model/models';\nimport { InfotypeView } from '../model/models';\nimport { InteractiveIU } from '../model/models';\nimport { InteractiveViewDto } from '../model/models';\nimport { IuDocDto } from '../model/models';\nimport { IuDocumentBasketDto } from '../model/models';\nimport { IuLinkBasket } from '../model/models';\nimport { LightLatestAnalyticData } from '../model/models';\nimport { RefImageLocationDto } from '../model/models';\nimport { ReportsRequestDto } from '../model/models';\nimport { ShortLocation } from '../model/models';\nimport { ShortLocationWithTidbId } from '../model/models';\nimport { SmTreeIu } from '../model/models';\nimport { SmTreeSubGroup } from '../model/models';\nimport { SrtDocument } from '../model/models';\nimport { SrtWarrantyCodeDto } from '../model/models';\nimport { TokenRequest } from '../model/models';\nimport { WPAEngineFormDto } from '../model/models';\nimport { WPAEnginePdfInfosDto } from '../model/models';\nimport { WpaOcFormDto } from '../model/models';\nimport { WpaOcFormForPdfDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AuthenticationRequestParams {\n tokenRequest?: TokenRequest;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CheckPdfAvailabilityRequestParams {\n /** token of the pdf */\n token: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateIusDocumentBasketRequestParams {\n iuDocumentBasketDto?: IuDocumentBasketDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteIuFromBasketRequestParams {\n iuLinkBasketIds?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DisplayWhereUsedIusRequestParams {\n /** the id of the iu */\n ifsId: string;\n /** the code of the connector/component */\n code: string;\n /** the title of the iu */\n title?: string;\n /** if isHydraulic or not */\n isHydraulic?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface FindIuLangRequestParams {\n /** the iu ifsid */\n iuId: string;\n /** the publication number */\n pubNumber: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface FindIuLinkRequestParams {\n /** the iu icecode */\n iuIceCode: string;\n /** the iu ifsid */\n iuId?: string;\n /** the device icecode */\n device?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface FptAuthenticationRequestParams {\n tokenRequest?: TokenRequest;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GenerateComponentRepairSurveyPdfRequestParams {\n wpaOcFormForPdfDto?: WpaOcFormForPdfDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GenerateEngRepairSurveyPdfRequestParams {\n wPAEnginePdfInfosDto?: WPAEnginePdfInfosDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GeneratePTIPdfRequestParams {\n /** the id of the doc */\n docId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetActiveWarrantiesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAdvancedDiagnosticRequestParams {\n /** search string to filter enhanced diagnostic result */\n searchString?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAllTopicsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAnalyticsDataLatestRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAnalyticsDataRefreshTimeRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsByVinOrAppointmentIdRequestParams {\n /** the vin of the vehicl */\n vin?: string;\n userToken?: string;\n productToken?: string;\n contextToken?: string;\n /** the id of the appointment */\n appointmentId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAssetsDetailsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCategoriesDescribeRequestParams {\n userToken?: string;\n productToken?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCompleteIuAndIceCodeByPubNumberAndIuRequestParams {\n /** pubNumber */\n pubNumber?: string;\n /** the IU id */\n iuId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetComponentsAndConnectorsRequestParams {\n /** iuId corresponds to an xml */\n iuId: string;\n /** functions is the name of the function used to filter components */\n functions: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetConnectorImageRequestParams {\n /** frameIfsref is componentId */\n frameIfsref: string;\n /** wordConnectorCriteria is componentId */\n wordConnectorCriteria?: string;\n /** codeConnectorCriteria is connectorCode */\n codeConnectorCriteria?: string;\n /** For mode wiring or hydraulic */\n mode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetConsumableUseRequestParams {\n /** the id of the consumable */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDeviceDocumentsRequestParams {\n docType: string;\n deviceNumber?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDocumentListRequestRequestParams {\n docType: string;\n highlightedKa?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDocumentSrtRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetEncryptedAuthRequestParams {\n clearText?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFullAnalyticsDataRequestParams {\n /** Filter by family code */\n metrics?: Array;\n /** Filter by start date */\n startDate?: string;\n /** Filter by end date */\n endDate?: string;\n /** Limit the number of object returned */\n limit?: string;\n /** Cursor token if request is split */\n cursor?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFunctionsForIuRequestParams {\n /** iuId corresponds to an xml */\n iuId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGeneralIusRequestParams {\n /** the searched string if any */\n searchedString?: string;\n /** the list of topics */\n topics?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetHotspotDocumentListRequestRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetItemByLevelIdandTTcodeRequestParams {\n /** item retrieval level (1-All / 2-Only families / 3-Only groups / 4- Only subGroups) You can recover everything by inserting an icecode as needed = ex level = 1 families IceCode = 55 */\n levelId: number;\n /** iceCode of family of the product */\n familyIceCode?: string;\n /** iceCode of groups of the product */\n groupsIceCode?: string;\n /** iceCode of subgroup of the product */\n subGroupsIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetIuRequestParams {\n /** the document type (SB, SM or KA) */\n docType: string;\n /** the document id */\n docId?: string;\n /** the IU id */\n iuId?: string;\n /** the IU icecode associated to the IuId */\n iuIcecode?: string;\n /** the IU language when different from context */\n lang?: string;\n /** the IU chapter */\n iuChapter?: string;\n /** true if openning from alert box, to ignore series, tt and market. */\n fromAlert?: boolean;\n /** true if opening from the dashboard (disables history). */\n fromDashboard?: boolean;\n /** Device icecode associated to the IuId */\n device?: string;\n /** param of Iu for Hydraulic Iu */\n mode?: string;\n /** param of IuDocDto for filter */\n anchor?: string;\n /** used by dashboard for overview */\n byProductIceCode?: string;\n /** used by dashboard for overview */\n byEngineIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetIuByFullIceCodeRequestParams {\n /** the document type (SB, SM or KA) */\n docType: string;\n /** the document id */\n docId?: string;\n /** the IU id */\n iuId?: string;\n /** the IU icecode associated to the IuId */\n iuIcecode?: string;\n /** the IU language when different from context */\n lang?: string;\n /** the IU chapter */\n iuChapter?: string;\n /** Device icecode associated to the IuId */\n device?: string;\n /** param of Iu for Hydraulic Iu */\n mode?: string;\n /** param of IuDocDto for filter */\n anchor?: string;\n /** title of the KA */\n kaTitle?: string;\n /** date of the KA */\n kaDate?: string;\n /** KA Pub number */\n kaPubNumberExactMatching?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetIuConsumablesRequestParams {\n iuId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetIuForBasketRequestParams {\n /** the VIN of the vehicle */\n vin?: string;\n /** the id of the user */\n userId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetJsonStringForFramesOfComponentRequestParams {\n /** componentIfsref is componentId */\n componentIfsref: string;\n /** componentNode is connectorCode */\n componentNode?: string;\n /** For mode wiring or hydraulic */\n mode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKaApplicabilityRequestParams {\n /** the id of the ka */\n kaID: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListAllComponentIUsInContextForWiringRequestParams {\n /** For mode wiring or hydraulic */\n mode?: string;\n /** Get component(true) or getconnector(false) */\n isComponent?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListIUsForInfotypeAndComponentRequestParams {\n /** frameIfsref is componentId */\n frameIfsref: string;\n /** wordConnectorCriteria is componentId */\n wordConnectorCriteria?: string;\n /** codeConnectorCriteria is connectorCode */\n codeConnectorCriteria?: string;\n /** For mode wiring or hydraulic */\n mode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListIUsForInfotypeForWiringRequestParams {\n /** For mode wiring or hydraulic */\n mode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListOfTopicsViewForSMRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListWpaEngineFormRequestParams {\n /** selected vin */\n vin: string;\n /** Get all Form Status */\n getAllForm?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListWpaNonEngineFormRequestParams {\n /** vin of the product */\n vin: string;\n /** Get all Form Status */\n getAllForm?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOperationByTTcodeRequestParams {\n /** iceCode of family of the product */\n familyIceCode: string;\n /** iceCode of groups of the product */\n groupsIceCode: string;\n /** iceCode of subgroup of the product */\n subGroupsIceCode: string;\n /** iceCode of operation of the product */\n operationIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSchematicsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSmChapterSubGroupsRequestParams {\n /** tidb id of the chapter */\n chapterId: number;\n /** the list of topics */\n topics?: Array;\n /** the searched string if any */\n searchedString?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSmSectionChaptersRequestParams {\n /** tidb id of the section */\n sectionTidbId: number;\n /** the list of topics */\n topics?: Array;\n /** the searched string if any */\n searchedString?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSmSectionsRequestParams {\n /** the list of topic */\n topics?: Array;\n /** the searched string if any */\n searchedString?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSmartViewAccessRequestParams {\n /** vin to query access */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSrtItemByLevelIdandTTcodeRequestParams {\n /** item retrieval level (1-All / 2-Only families / 3-Only groups / 4- Only subGroups) You can recover everything by inserting an icecode as needed = ex level = 1 families IceCode = 55 */\n levelId: number;\n /** iceCode of family of the product */\n groupsIceCode?: string;\n /** iceCode of groups of the product */\n subGroupsIceCode?: string;\n /** iceCode of subgroup of the product */\n defectIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSrtListFilteredByWordRequestParams {\n /** selected word to filter SRT list */\n word?: string;\n /** Group Ice Code to filter */\n groupIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSrtOperationByTTcodeRequestParams {\n /** iceCode of family of the product */\n groupsIceCode: string;\n /** iceCode of groups of the product */\n subGroupsIceCode: string;\n /** iceCode of subgroup of the product */\n defectIceCode: string;\n /** iceCode of operation of the product */\n operationIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleGeoInfoRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleTimeZoneRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWpaEngineDataRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetXmlOcRepairSurveyContentRequestParams {\n /** the type of the doc */\n docType: string;\n /** the id of the doc */\n docId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface HasGeneralSectionItemRequestParams {\n /** the list of topics */\n topics?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface IsAdvancedDiagnosticMandatoryRequestParams {\n /** the iuId from the IU */\n iuId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveIuInBasketRequestParams {\n /** the VIN of the vehicle */\n vin?: string;\n /** the id of the user */\n userId?: string;\n iuLinkBasket?: IuLinkBasket;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveWpaEngineFormRequestParams {\n wPAEngineFormDto?: WPAEngineFormDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveWpaNonEngineFormRequestParams {\n wpaOcFormForPdfDto?: WpaOcFormForPdfDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchAppointmentsRequestParams {\n search?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface StoreReportsInfoRequestParams {\n reportsRequestDto?: ReportsRequestDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentByIdRequestParams {\n /** the appointment ID */\n appointmentId: number;\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DocumentService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the context for this user.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public authentication(requestParameters: AuthenticationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public authentication(requestParameters: AuthenticationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authentication(requestParameters: AuthenticationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authentication(requestParameters: AuthenticationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const tokenRequest = requestParameters.tokenRequest;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/authentication`,\n tokenRequest,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check Pdf Availability.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkPdfAvailability(requestParameters: CheckPdfAvailabilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public checkPdfAvailability(requestParameters: CheckPdfAvailabilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkPdfAvailability(requestParameters: CheckPdfAvailabilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkPdfAvailability(requestParameters: CheckPdfAvailabilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const token = requestParameters.token;\n if (token === null || token === undefined) {\n throw new Error('Required parameter token was null or undefined when calling checkPdfAvailability.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (token !== undefined && token !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n token, 'token');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/checkPdfAvailability`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create IU Document Basket.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createIusDocumentBasket(requestParameters: CreateIusDocumentBasketRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createIusDocumentBasket(requestParameters: CreateIusDocumentBasketRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createIusDocumentBasket(requestParameters: CreateIusDocumentBasketRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createIusDocumentBasket(requestParameters: CreateIusDocumentBasketRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuDocumentBasketDto = requestParameters.iuDocumentBasketDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/ius-basket`,\n iuDocumentBasketDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete IUs and SRTs from the basket\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteIuFromBasket(requestParameters: DeleteIuFromBasketRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteIuFromBasket(requestParameters: DeleteIuFromBasketRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteIuFromBasket(requestParameters: DeleteIuFromBasketRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteIuFromBasket(requestParameters: DeleteIuFromBasketRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuLinkBasketIds = requestParameters.iuLinkBasketIds;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuLinkBasketIds) {\n iuLinkBasketIds.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'iuLinkBasketIds');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/iu/basket`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * find IUs where the connector or hydraulic component is used\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public displayWhereUsedIus(requestParameters: DisplayWhereUsedIusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public displayWhereUsedIus(requestParameters: DisplayWhereUsedIusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public displayWhereUsedIus(requestParameters: DisplayWhereUsedIusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public displayWhereUsedIus(requestParameters: DisplayWhereUsedIusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const ifsId = requestParameters.ifsId;\n if (ifsId === null || ifsId === undefined) {\n throw new Error('Required parameter ifsId was null or undefined when calling displayWhereUsedIus.');\n }\n const code = requestParameters.code;\n if (code === null || code === undefined) {\n throw new Error('Required parameter code was null or undefined when calling displayWhereUsedIus.');\n }\n const title = requestParameters.title;\n const isHydraulic = requestParameters.isHydraulic;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (ifsId !== undefined && ifsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ifsId, 'ifsId');\n }\n if (code !== undefined && code !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n code, 'code');\n }\n if (title !== undefined && title !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n title, 'title');\n }\n if (isHydraulic !== undefined && isHydraulic !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isHydraulic, 'isHydraulic');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/connector/whereUsed`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * find IUs languages for an IU link\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public findIuLang(requestParameters: FindIuLangRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public findIuLang(requestParameters: FindIuLangRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public findIuLang(requestParameters: FindIuLangRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public findIuLang(requestParameters: FindIuLangRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling findIuLang.');\n }\n const pubNumber = requestParameters.pubNumber;\n if (pubNumber === null || pubNumber === undefined) {\n throw new Error('Required parameter pubNumber was null or undefined when calling findIuLang.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (pubNumber !== undefined && pubNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pubNumber, 'pubNumber');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/iu/link/findLang`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * find IUs linked to another\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public findIuLink(requestParameters: FindIuLinkRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public findIuLink(requestParameters: FindIuLinkRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public findIuLink(requestParameters: FindIuLinkRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public findIuLink(requestParameters: FindIuLinkRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuIceCode = requestParameters.iuIceCode;\n if (iuIceCode === null || iuIceCode === undefined) {\n throw new Error('Required parameter iuIceCode was null or undefined when calling findIuLink.');\n }\n const iuId = requestParameters.iuId;\n const device = requestParameters.device;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuIceCode !== undefined && iuIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuIceCode, 'iuIceCode');\n }\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/iu/link/findIu`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the context for an fpt user\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public fptAuthentication(requestParameters: FptAuthenticationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public fptAuthentication(requestParameters: FptAuthenticationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public fptAuthentication(requestParameters: FptAuthenticationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public fptAuthentication(requestParameters: FptAuthenticationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const tokenRequest = requestParameters.tokenRequest;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/fpt-authentication`,\n tokenRequest,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check Component Repair Survey is submitted.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public generateComponentRepairSurveyPdf(requestParameters: GenerateComponentRepairSurveyPdfRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public generateComponentRepairSurveyPdf(requestParameters: GenerateComponentRepairSurveyPdfRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generateComponentRepairSurveyPdf(requestParameters: GenerateComponentRepairSurveyPdfRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generateComponentRepairSurveyPdf(requestParameters: GenerateComponentRepairSurveyPdfRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const wpaOcFormForPdfDto = requestParameters.wpaOcFormForPdfDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/generateComponentRepairSurveyPdf`,\n wpaOcFormForPdfDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check Engine Repair Survey is submitted.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public generateEngRepairSurveyPdf(requestParameters: GenerateEngRepairSurveyPdfRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public generateEngRepairSurveyPdf(requestParameters: GenerateEngRepairSurveyPdfRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generateEngRepairSurveyPdf(requestParameters: GenerateEngRepairSurveyPdfRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generateEngRepairSurveyPdf(requestParameters: GenerateEngRepairSurveyPdfRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const wPAEnginePdfInfosDto = requestParameters.wPAEnginePdfInfosDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/generateEngRepairSurveyPdf`,\n wPAEnginePdfInfosDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check PTI is submitted.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public generatePTIPdf(requestParameters: GeneratePTIPdfRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public generatePTIPdf(requestParameters: GeneratePTIPdfRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generatePTIPdf(requestParameters: GeneratePTIPdfRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generatePTIPdf(requestParameters: GeneratePTIPdfRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling generatePTIPdf.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/generatePTIPdf/${encodeURIComponent(String(docId))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get active warranties\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getActiveWarranties(requestParameters?: GetActiveWarrantiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getActiveWarranties(requestParameters?: GetActiveWarrantiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActiveWarranties(requestParameters?: GetActiveWarrantiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActiveWarranties(requestParameters?: GetActiveWarrantiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/warranties/active`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all KA and IU for reports.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAdvancedDiagnostic(requestParameters: GetAdvancedDiagnosticRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAdvancedDiagnostic(requestParameters: GetAdvancedDiagnosticRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAdvancedDiagnostic(requestParameters: GetAdvancedDiagnosticRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAdvancedDiagnostic(requestParameters: GetAdvancedDiagnosticRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchString = requestParameters.searchString;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (searchString !== undefined && searchString !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchString, 'searchString');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getAdvancedDiagnostic`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all the topics\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllTopics(requestParameters?: GetAllTopicsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllTopics(requestParameters?: GetAllTopicsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllTopics(requestParameters?: GetAllTopicsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllTopics(requestParameters?: GetAllTopicsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sm/getalltopics`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the latest analytics data for the VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAnalyticsDataLatest(requestParameters?: GetAnalyticsDataLatestRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAnalyticsDataLatest(requestParameters?: GetAnalyticsDataLatestRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAnalyticsDataLatest(requestParameters?: GetAnalyticsDataLatestRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAnalyticsDataLatest(requestParameters?: GetAnalyticsDataLatestRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getAnalyticsDataLatest`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the refresh time for analytics data for the VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAnalyticsDataRefreshTime(requestParameters?: GetAnalyticsDataRefreshTimeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAnalyticsDataRefreshTime(requestParameters?: GetAnalyticsDataRefreshTimeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAnalyticsDataRefreshTime(requestParameters?: GetAnalyticsDataRefreshTimeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAnalyticsDataRefreshTime(requestParameters?: GetAnalyticsDataRefreshTimeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getAnalyticsDataRefreshTime`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * find appointments by vin or appointmentId\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsByVinOrAppointmentId(requestParameters: GetAppointmentsByVinOrAppointmentIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentsByVinOrAppointmentId(requestParameters: GetAppointmentsByVinOrAppointmentIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsByVinOrAppointmentId(requestParameters: GetAppointmentsByVinOrAppointmentIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsByVinOrAppointmentId(requestParameters: GetAppointmentsByVinOrAppointmentIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n const userToken = requestParameters.userToken;\n const productToken = requestParameters.productToken;\n const contextToken = requestParameters.contextToken;\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (userToken !== undefined && userToken !== null) {\n headers = headers.set('user-token', String(userToken));\n }\n if (productToken !== undefined && productToken !== null) {\n headers = headers.set('product-token', String(productToken));\n }\n if (contextToken !== undefined && contextToken !== null) {\n headers = headers.set('context-token', String(contextToken));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/iu/link/appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get assets details.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAssetsDetails(requestParameters?: GetAssetsDetailsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAssetsDetails(requestParameters?: GetAssetsDetailsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAssetsDetails(requestParameters?: GetAssetsDetailsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAssetsDetails(requestParameters?: GetAssetsDetailsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getAssetsDetails`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get CAN categories from GSS\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCategoriesDescribe(requestParameters: GetCategoriesDescribeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCategoriesDescribe(requestParameters: GetCategoriesDescribeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCategoriesDescribe(requestParameters: GetCategoriesDescribeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCategoriesDescribe(requestParameters: GetCategoriesDescribeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userToken = requestParameters.userToken;\n const productToken = requestParameters.productToken;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (userToken !== undefined && userToken !== null) {\n headers = headers.set('user-token', String(userToken));\n }\n if (productToken !== undefined && productToken !== null) {\n headers = headers.set('product-token', String(productToken));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getCategoriesDescribe`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get complete IU and ice code\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCompleteIuAndIceCodeByPubNumberAndIu(requestParameters: GetCompleteIuAndIceCodeByPubNumberAndIuRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getCompleteIuAndIceCodeByPubNumberAndIu(requestParameters: GetCompleteIuAndIceCodeByPubNumberAndIuRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCompleteIuAndIceCodeByPubNumberAndIu(requestParameters: GetCompleteIuAndIceCodeByPubNumberAndIuRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCompleteIuAndIceCodeByPubNumberAndIu(requestParameters: GetCompleteIuAndIceCodeByPubNumberAndIuRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const pubNumber = requestParameters.pubNumber;\n const iuId = requestParameters.iuId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (pubNumber !== undefined && pubNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pubNumber, 'pubNumber');\n }\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/complete-iu-and-ice`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get All components and connectors for corresponding iuId and functions.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getComponentsAndConnectors(requestParameters: GetComponentsAndConnectorsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getComponentsAndConnectors(requestParameters: GetComponentsAndConnectorsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getComponentsAndConnectors(requestParameters: GetComponentsAndConnectorsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getComponentsAndConnectors(requestParameters: GetComponentsAndConnectorsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling getComponentsAndConnectors.');\n }\n const functions = requestParameters.functions;\n if (functions === null || functions === undefined) {\n throw new Error('Required parameter functions was null or undefined when calling getComponentsAndConnectors.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/wiring/getComponentsAndConnectors/${encodeURIComponent(String(iuId))}/${encodeURIComponent(String(functions))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get All getConnectorImage.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getConnectorImage(requestParameters: GetConnectorImageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getConnectorImage(requestParameters: GetConnectorImageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConnectorImage(requestParameters: GetConnectorImageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConnectorImage(requestParameters: GetConnectorImageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const frameIfsref = requestParameters.frameIfsref;\n if (frameIfsref === null || frameIfsref === undefined) {\n throw new Error('Required parameter frameIfsref was null or undefined when calling getConnectorImage.');\n }\n const wordConnectorCriteria = requestParameters.wordConnectorCriteria;\n const codeConnectorCriteria = requestParameters.codeConnectorCriteria;\n const mode = requestParameters.mode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (wordConnectorCriteria !== undefined && wordConnectorCriteria !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n wordConnectorCriteria, 'wordConnectorCriteria');\n }\n if (codeConnectorCriteria !== undefined && codeConnectorCriteria !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n codeConnectorCriteria, 'codeConnectorCriteria');\n }\n if (frameIfsref !== undefined && frameIfsref !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n frameIfsref, 'frameIfsref');\n }\n if (mode !== undefined && mode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n mode, 'mode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/wiring/getConnectorImage`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * find IUs where the consumable is used\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getConsumableUse(requestParameters: GetConsumableUseRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getConsumableUse(requestParameters: GetConsumableUseRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConsumableUse(requestParameters: GetConsumableUseRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConsumableUse(requestParameters: GetConsumableUseRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getConsumableUse.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (id !== undefined && id !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n id, 'id');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getConsumableUse`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list of device document\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDeviceDocuments(requestParameters: GetDeviceDocumentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDeviceDocuments(requestParameters: GetDeviceDocumentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDeviceDocuments(requestParameters: GetDeviceDocumentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDeviceDocuments(requestParameters: GetDeviceDocumentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getDeviceDocuments.');\n }\n const deviceNumber = requestParameters.deviceNumber;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (deviceNumber !== undefined && deviceNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n deviceNumber, 'deviceNumber');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getDeviceDocuments/${encodeURIComponent(String(docType))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list of document (OM,OML,MPL,AI,SG,PTI,DQR,SM,SML,SRTL,GB)\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDocumentListRequest(requestParameters: GetDocumentListRequestRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDocumentListRequest(requestParameters: GetDocumentListRequestRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDocumentListRequest(requestParameters: GetDocumentListRequestRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDocumentListRequest(requestParameters: GetDocumentListRequestRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getDocumentListRequest.');\n }\n const highlightedKa = requestParameters.highlightedKa;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (highlightedKa !== undefined && highlightedKa !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n highlightedKa, 'highlightedKa');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getDocumentListRequest/${encodeURIComponent(String(docType))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the link or SRT legacy document\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDocumentSrt(requestParameters?: GetDocumentSrtRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDocumentSrt(requestParameters?: GetDocumentSrtRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDocumentSrt(requestParameters?: GetDocumentSrtRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDocumentSrt(requestParameters?: GetDocumentSrtRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getDocumentSrt`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Authentication through API\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getEncryptedAuth(requestParameters: GetEncryptedAuthRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getEncryptedAuth(requestParameters: GetEncryptedAuthRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEncryptedAuth(requestParameters: GetEncryptedAuthRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEncryptedAuth(requestParameters: GetEncryptedAuthRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const clearText = requestParameters.clearText;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (clearText !== undefined && clearText !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n clearText, 'clearText');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/encrypt-authentication`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the full analytics data for the VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFullAnalyticsData(requestParameters: GetFullAnalyticsDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getFullAnalyticsData(requestParameters: GetFullAnalyticsDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFullAnalyticsData(requestParameters: GetFullAnalyticsDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFullAnalyticsData(requestParameters: GetFullAnalyticsDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const metrics = requestParameters.metrics;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const limit = requestParameters.limit;\n const cursor = requestParameters.cursor;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (metrics) {\n metrics.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'metrics');\n })\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (cursor !== undefined && cursor !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n cursor, 'cursor');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getAnalyticsData`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get All functions for corresponding iuId.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFunctionsForIu(requestParameters: GetFunctionsForIuRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFunctionsForIu(requestParameters: GetFunctionsForIuRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFunctionsForIu(requestParameters: GetFunctionsForIuRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFunctionsForIu(requestParameters: GetFunctionsForIuRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling getFunctionsForIu.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/wiring/getFunctionsForIu/${encodeURIComponent(String(iuId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the Service Manuals IU related to the general section\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGeneralIus(requestParameters: GetGeneralIusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGeneralIus(requestParameters: GetGeneralIusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getGeneralIus(requestParameters: GetGeneralIusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getGeneralIus(requestParameters: GetGeneralIusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchedString = requestParameters.searchedString;\n const topics = requestParameters.topics;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (searchedString !== undefined && searchedString !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchedString, 'searchedString');\n }\n if (topics) {\n topics.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'topics');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sm/general/ius`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list of hotspot documents\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getHotspotDocumentListRequest(requestParameters?: GetHotspotDocumentListRequestRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getHotspotDocumentListRequest(requestParameters?: GetHotspotDocumentListRequestRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getHotspotDocumentListRequest(requestParameters?: GetHotspotDocumentListRequestRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getHotspotDocumentListRequest(requestParameters?: GetHotspotDocumentListRequestRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/document/hotspot`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get list of families/groups/subgroup/operation by multiple item\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getItemByLevelIdandTTcode(requestParameters: GetItemByLevelIdandTTcodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getItemByLevelIdandTTcode(requestParameters: GetItemByLevelIdandTTcodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getItemByLevelIdandTTcode(requestParameters: GetItemByLevelIdandTTcodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getItemByLevelIdandTTcode(requestParameters: GetItemByLevelIdandTTcodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const levelId = requestParameters.levelId;\n if (levelId === null || levelId === undefined) {\n throw new Error('Required parameter levelId was null or undefined when calling getItemByLevelIdandTTcode.');\n }\n const familyIceCode = requestParameters.familyIceCode;\n const groupsIceCode = requestParameters.groupsIceCode;\n const subGroupsIceCode = requestParameters.subGroupsIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (familyIceCode !== undefined && familyIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n familyIceCode, 'familyIceCode');\n }\n if (groupsIceCode !== undefined && groupsIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n groupsIceCode, 'groupsIceCode');\n }\n if (subGroupsIceCode !== undefined && subGroupsIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n subGroupsIceCode, 'subGroupsIceCode');\n }\n if (levelId !== undefined && levelId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n levelId, 'levelId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/srtGetItemByLevelIdandTTcode`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get any IU for SM, SB doctypes, or KA\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getIu(requestParameters: GetIuRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getIu(requestParameters: GetIuRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getIu(requestParameters: GetIuRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getIu(requestParameters: GetIuRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getIu.');\n }\n const docId = requestParameters.docId;\n const iuId = requestParameters.iuId;\n const iuIcecode = requestParameters.iuIcecode;\n const lang = requestParameters.lang;\n const iuChapter = requestParameters.iuChapter;\n const fromAlert = requestParameters.fromAlert;\n const fromDashboard = requestParameters.fromDashboard;\n const device = requestParameters.device;\n const mode = requestParameters.mode;\n const anchor = requestParameters.anchor;\n const byProductIceCode = requestParameters.byProductIceCode;\n const byEngineIceCode = requestParameters.byEngineIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (docId !== undefined && docId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docId, 'docId');\n }\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (docType !== undefined && docType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docType, 'docType');\n }\n if (iuIcecode !== undefined && iuIcecode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuIcecode, 'iuIcecode');\n }\n if (lang !== undefined && lang !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n lang, 'lang');\n }\n if (iuChapter !== undefined && iuChapter !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuChapter, 'iuChapter');\n }\n if (fromAlert !== undefined && fromAlert !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromAlert, 'fromAlert');\n }\n if (fromDashboard !== undefined && fromDashboard !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDashboard, 'fromDashboard');\n }\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n if (mode !== undefined && mode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n mode, 'mode');\n }\n if (anchor !== undefined && anchor !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n anchor, 'anchor');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n if (byEngineIceCode !== undefined && byEngineIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byEngineIceCode, 'byEngineIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getIu`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get any IU for SM, SB doctypes, or KA from fullIceCode\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getIuByFullIceCode(requestParameters: GetIuByFullIceCodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getIuByFullIceCode(requestParameters: GetIuByFullIceCodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getIuByFullIceCode(requestParameters: GetIuByFullIceCodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getIuByFullIceCode(requestParameters: GetIuByFullIceCodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getIuByFullIceCode.');\n }\n const docId = requestParameters.docId;\n const iuId = requestParameters.iuId;\n const iuIcecode = requestParameters.iuIcecode;\n const lang = requestParameters.lang;\n const iuChapter = requestParameters.iuChapter;\n const device = requestParameters.device;\n const mode = requestParameters.mode;\n const anchor = requestParameters.anchor;\n const kaTitle = requestParameters.kaTitle;\n const kaDate = requestParameters.kaDate;\n const kaPubNumberExactMatching = requestParameters.kaPubNumberExactMatching;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (docId !== undefined && docId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docId, 'docId');\n }\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (docType !== undefined && docType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docType, 'docType');\n }\n if (iuIcecode !== undefined && iuIcecode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuIcecode, 'iuIcecode');\n }\n if (lang !== undefined && lang !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n lang, 'lang');\n }\n if (iuChapter !== undefined && iuChapter !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuChapter, 'iuChapter');\n }\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n if (mode !== undefined && mode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n mode, 'mode');\n }\n if (anchor !== undefined && anchor !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n anchor, 'anchor');\n }\n if (kaTitle !== undefined && kaTitle !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n kaTitle, 'kaTitle');\n }\n if (kaDate !== undefined && kaDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n kaDate, 'kaDate');\n }\n if (kaPubNumberExactMatching !== undefined && kaPubNumberExactMatching !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n kaPubNumberExactMatching, 'kaPubNumberExactMatching');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getIuByFullIceCode`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get IU consumables\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getIuConsumables(requestParameters: GetIuConsumablesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getIuConsumables(requestParameters: GetIuConsumablesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>>;\n public getIuConsumables(requestParameters: GetIuConsumablesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>>;\n public getIuConsumables(requestParameters: GetIuConsumablesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling getIuConsumables.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>>(`${this.configuration.basePath}/getIuConsumables`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get IUs and SRTs put in the basket for a user and a VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getIuForBasket(requestParameters: GetIuForBasketRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getIuForBasket(requestParameters: GetIuForBasketRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getIuForBasket(requestParameters: GetIuForBasketRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getIuForBasket(requestParameters: GetIuForBasketRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n const userId = requestParameters.userId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/iu/basket`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get All wiringComponentFrame.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getJsonStringForFramesOfComponent(requestParameters: GetJsonStringForFramesOfComponentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getJsonStringForFramesOfComponent(requestParameters: GetJsonStringForFramesOfComponentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getJsonStringForFramesOfComponent(requestParameters: GetJsonStringForFramesOfComponentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getJsonStringForFramesOfComponent(requestParameters: GetJsonStringForFramesOfComponentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const componentIfsref = requestParameters.componentIfsref;\n if (componentIfsref === null || componentIfsref === undefined) {\n throw new Error('Required parameter componentIfsref was null or undefined when calling getJsonStringForFramesOfComponent.');\n }\n const componentNode = requestParameters.componentNode;\n const mode = requestParameters.mode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (componentIfsref !== undefined && componentIfsref !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n componentIfsref, 'componentIfsref');\n }\n if (componentNode !== undefined && componentNode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n componentNode, 'componentNode');\n }\n if (mode !== undefined && mode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n mode, 'mode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/wiring/wiringComponentFrame`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the applicability list of a given ka\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKaApplicability(requestParameters: GetKaApplicabilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKaApplicability(requestParameters: GetKaApplicabilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKaApplicability(requestParameters: GetKaApplicabilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKaApplicability(requestParameters: GetKaApplicabilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const kaID = requestParameters.kaID;\n if (kaID === null || kaID === undefined) {\n throw new Error('Required parameter kaID was null or undefined when calling getKaApplicability.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (kaID !== undefined && kaID !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n kaID, 'kaID');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/ka/applicability`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get All wiringComponent or connector.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListAllComponentIUsInContextForWiring(requestParameters: GetListAllComponentIUsInContextForWiringRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListAllComponentIUsInContextForWiring(requestParameters: GetListAllComponentIUsInContextForWiringRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListAllComponentIUsInContextForWiring(requestParameters: GetListAllComponentIUsInContextForWiringRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListAllComponentIUsInContextForWiring(requestParameters: GetListAllComponentIUsInContextForWiringRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const mode = requestParameters.mode;\n const isComponent = requestParameters.isComponent;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (mode !== undefined && mode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n mode, 'mode');\n }\n if (isComponent !== undefined && isComponent !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isComponent, 'isComponent');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/wiring/wiringComponentOrConnector`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get All wiringFrameComponent.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListIUsForInfotypeAndComponent(requestParameters: GetListIUsForInfotypeAndComponentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListIUsForInfotypeAndComponent(requestParameters: GetListIUsForInfotypeAndComponentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListIUsForInfotypeAndComponent(requestParameters: GetListIUsForInfotypeAndComponentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListIUsForInfotypeAndComponent(requestParameters: GetListIUsForInfotypeAndComponentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const frameIfsref = requestParameters.frameIfsref;\n if (frameIfsref === null || frameIfsref === undefined) {\n throw new Error('Required parameter frameIfsref was null or undefined when calling getListIUsForInfotypeAndComponent.');\n }\n const wordConnectorCriteria = requestParameters.wordConnectorCriteria;\n const codeConnectorCriteria = requestParameters.codeConnectorCriteria;\n const mode = requestParameters.mode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (wordConnectorCriteria !== undefined && wordConnectorCriteria !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n wordConnectorCriteria, 'wordConnectorCriteria');\n }\n if (codeConnectorCriteria !== undefined && codeConnectorCriteria !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n codeConnectorCriteria, 'codeConnectorCriteria');\n }\n if (frameIfsref !== undefined && frameIfsref !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n frameIfsref, 'frameIfsref');\n }\n if (mode !== undefined && mode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n mode, 'mode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/wiring/wiringFrameComponent`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get All wiringFrame.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListIUsForInfotypeForWiring(requestParameters: GetListIUsForInfotypeForWiringRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListIUsForInfotypeForWiring(requestParameters: GetListIUsForInfotypeForWiringRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListIUsForInfotypeForWiring(requestParameters: GetListIUsForInfotypeForWiringRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListIUsForInfotypeForWiring(requestParameters: GetListIUsForInfotypeForWiringRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const mode = requestParameters.mode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (mode !== undefined && mode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n mode, 'mode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/wiring/wiringFrame`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list Of TopicsView For the SM document.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListOfTopicsViewForSM(requestParameters?: GetListOfTopicsViewForSMRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListOfTopicsViewForSM(requestParameters?: GetListOfTopicsViewForSMRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListOfTopicsViewForSM(requestParameters?: GetListOfTopicsViewForSMRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListOfTopicsViewForSM(requestParameters?: GetListOfTopicsViewForSMRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sm/listOfTopicsView`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * allows to get the WPA Engine Form Data for a special Vin\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListWpaEngineForm(requestParameters: GetListWpaEngineFormRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getListWpaEngineForm(requestParameters: GetListWpaEngineFormRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListWpaEngineForm(requestParameters: GetListWpaEngineFormRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListWpaEngineForm(requestParameters: GetListWpaEngineFormRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getListWpaEngineForm.');\n }\n const getAllForm = requestParameters.getAllForm;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (getAllForm !== undefined && getAllForm !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n getAllForm, 'getAllForm');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getListWpaEngineForm`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get list of non engine form\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListWpaNonEngineForm(requestParameters: GetListWpaNonEngineFormRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getListWpaNonEngineForm(requestParameters: GetListWpaNonEngineFormRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListWpaNonEngineForm(requestParameters: GetListWpaNonEngineFormRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListWpaNonEngineForm(requestParameters: GetListWpaNonEngineFormRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getListWpaNonEngineForm.');\n }\n const getAllForm = requestParameters.getAllForm;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (getAllForm !== undefined && getAllForm !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n getAllForm, 'getAllForm');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getListWpaNonEngineForm`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get list of included or excluded by families/groups/subgroup/operation\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOperationByTTcode(requestParameters: GetOperationByTTcodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOperationByTTcode(requestParameters: GetOperationByTTcodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOperationByTTcode(requestParameters: GetOperationByTTcodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOperationByTTcode(requestParameters: GetOperationByTTcodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const familyIceCode = requestParameters.familyIceCode;\n if (familyIceCode === null || familyIceCode === undefined) {\n throw new Error('Required parameter familyIceCode was null or undefined when calling getOperationByTTcode.');\n }\n const groupsIceCode = requestParameters.groupsIceCode;\n if (groupsIceCode === null || groupsIceCode === undefined) {\n throw new Error('Required parameter groupsIceCode was null or undefined when calling getOperationByTTcode.');\n }\n const subGroupsIceCode = requestParameters.subGroupsIceCode;\n if (subGroupsIceCode === null || subGroupsIceCode === undefined) {\n throw new Error('Required parameter subGroupsIceCode was null or undefined when calling getOperationByTTcode.');\n }\n const operationIceCode = requestParameters.operationIceCode;\n if (operationIceCode === null || operationIceCode === undefined) {\n throw new Error('Required parameter operationIceCode was null or undefined when calling getOperationByTTcode.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (familyIceCode !== undefined && familyIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n familyIceCode, 'familyIceCode');\n }\n if (groupsIceCode !== undefined && groupsIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n groupsIceCode, 'groupsIceCode');\n }\n if (subGroupsIceCode !== undefined && subGroupsIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n subGroupsIceCode, 'subGroupsIceCode');\n }\n if (operationIceCode !== undefined && operationIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n operationIceCode, 'operationIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/srtGetOperationByTTcode`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get if the document has hydraulics/wiring\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSchematics(requestParameters?: GetSchematicsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSchematics(requestParameters?: GetSchematicsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSchematics(requestParameters?: GetSchematicsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSchematics(requestParameters?: GetSchematicsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getSchematics`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the subgroups / topics / ius list of the chapter\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSmChapterSubGroups(requestParameters: GetSmChapterSubGroupsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSmChapterSubGroups(requestParameters: GetSmChapterSubGroupsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSmChapterSubGroups(requestParameters: GetSmChapterSubGroupsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSmChapterSubGroups(requestParameters: GetSmChapterSubGroupsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const chapterId = requestParameters.chapterId;\n if (chapterId === null || chapterId === undefined) {\n throw new Error('Required parameter chapterId was null or undefined when calling getSmChapterSubGroups.');\n }\n const topics = requestParameters.topics;\n const searchedString = requestParameters.searchedString;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (topics) {\n topics.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'topics');\n })\n }\n if (searchedString !== undefined && searchedString !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchedString, 'searchedString');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sm/chapter/${encodeURIComponent(String(chapterId))}/subgroups`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the Chapter linked to a context, a section and a RM.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSmSectionChapters(requestParameters: GetSmSectionChaptersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSmSectionChapters(requestParameters: GetSmSectionChaptersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSmSectionChapters(requestParameters: GetSmSectionChaptersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSmSectionChapters(requestParameters: GetSmSectionChaptersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const sectionTidbId = requestParameters.sectionTidbId;\n if (sectionTidbId === null || sectionTidbId === undefined) {\n throw new Error('Required parameter sectionTidbId was null or undefined when calling getSmSectionChapters.');\n }\n const topics = requestParameters.topics;\n const searchedString = requestParameters.searchedString;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (topics) {\n topics.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'topics');\n })\n }\n if (searchedString !== undefined && searchedString !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchedString, 'searchedString');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sm/section/${encodeURIComponent(String(sectionTidbId))}/chapters`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the Sections linked to a context and a RM.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSmSections(requestParameters: GetSmSectionsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSmSections(requestParameters: GetSmSectionsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSmSections(requestParameters: GetSmSectionsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSmSections(requestParameters: GetSmSectionsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const topics = requestParameters.topics;\n const searchedString = requestParameters.searchedString;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (topics) {\n topics.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'topics');\n })\n }\n if (searchedString !== undefined && searchedString !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchedString, 'searchedString');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sm/sections`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the access to the smartView based on the user and the VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSmartViewAccess(requestParameters: GetSmartViewAccessRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSmartViewAccess(requestParameters: GetSmartViewAccessRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSmartViewAccess(requestParameters: GetSmartViewAccessRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSmartViewAccess(requestParameters: GetSmartViewAccessRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getSmartViewAccess.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/smartview-access`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get list of families/groups/subgroup/operation by multiple item\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSrtItemByLevelIdandTTcode(requestParameters: GetSrtItemByLevelIdandTTcodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSrtItemByLevelIdandTTcode(requestParameters: GetSrtItemByLevelIdandTTcodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSrtItemByLevelIdandTTcode(requestParameters: GetSrtItemByLevelIdandTTcodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSrtItemByLevelIdandTTcode(requestParameters: GetSrtItemByLevelIdandTTcodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const levelId = requestParameters.levelId;\n if (levelId === null || levelId === undefined) {\n throw new Error('Required parameter levelId was null or undefined when calling getSrtItemByLevelIdandTTcode.');\n }\n const groupsIceCode = requestParameters.groupsIceCode;\n const subGroupsIceCode = requestParameters.subGroupsIceCode;\n const defectIceCode = requestParameters.defectIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (groupsIceCode !== undefined && groupsIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n groupsIceCode, 'groupsIceCode');\n }\n if (subGroupsIceCode !== undefined && subGroupsIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n subGroupsIceCode, 'subGroupsIceCode');\n }\n if (defectIceCode !== undefined && defectIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n defectIceCode, 'defectIceCode');\n }\n if (levelId !== undefined && levelId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n levelId, 'levelId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getSrtItemByLevelIdandTTcode`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get list of SRT filtered by word\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSrtListFilteredByWord(requestParameters: GetSrtListFilteredByWordRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSrtListFilteredByWord(requestParameters: GetSrtListFilteredByWordRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSrtListFilteredByWord(requestParameters: GetSrtListFilteredByWordRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSrtListFilteredByWord(requestParameters: GetSrtListFilteredByWordRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const word = requestParameters.word;\n const groupIceCode = requestParameters.groupIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (word !== undefined && word !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n word, 'word');\n }\n if (groupIceCode !== undefined && groupIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n groupIceCode, 'groupIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getSrtListFilteredByWord`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get list of included or excluded by families/groups/subgroup/operation\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSrtOperationByTTcode(requestParameters: GetSrtOperationByTTcodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSrtOperationByTTcode(requestParameters: GetSrtOperationByTTcodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSrtOperationByTTcode(requestParameters: GetSrtOperationByTTcodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSrtOperationByTTcode(requestParameters: GetSrtOperationByTTcodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const groupsIceCode = requestParameters.groupsIceCode;\n if (groupsIceCode === null || groupsIceCode === undefined) {\n throw new Error('Required parameter groupsIceCode was null or undefined when calling getSrtOperationByTTcode.');\n }\n const subGroupsIceCode = requestParameters.subGroupsIceCode;\n if (subGroupsIceCode === null || subGroupsIceCode === undefined) {\n throw new Error('Required parameter subGroupsIceCode was null or undefined when calling getSrtOperationByTTcode.');\n }\n const defectIceCode = requestParameters.defectIceCode;\n if (defectIceCode === null || defectIceCode === undefined) {\n throw new Error('Required parameter defectIceCode was null or undefined when calling getSrtOperationByTTcode.');\n }\n const operationIceCode = requestParameters.operationIceCode;\n if (operationIceCode === null || operationIceCode === undefined) {\n throw new Error('Required parameter operationIceCode was null or undefined when calling getSrtOperationByTTcode.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (groupsIceCode !== undefined && groupsIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n groupsIceCode, 'groupsIceCode');\n }\n if (subGroupsIceCode !== undefined && subGroupsIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n subGroupsIceCode, 'subGroupsIceCode');\n }\n if (defectIceCode !== undefined && defectIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n defectIceCode, 'defectIceCode');\n }\n if (operationIceCode !== undefined && operationIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n operationIceCode, 'operationIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getSrtOperationByTTcode`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get coordinates and country time zone of the vehicle\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleGeoInfo(requestParameters?: GetVehicleGeoInfoRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVehicleGeoInfo(requestParameters?: GetVehicleGeoInfoRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleGeoInfo(requestParameters?: GetVehicleGeoInfoRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleGeoInfo(requestParameters?: GetVehicleGeoInfoRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getVehicleGeoInfo`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get timezone of the vehicle for the vin\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleTimeZone(requestParameters?: GetVehicleTimeZoneRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVehicleTimeZone(requestParameters?: GetVehicleTimeZoneRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleTimeZone(requestParameters?: GetVehicleTimeZoneRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleTimeZone(requestParameters?: GetVehicleTimeZoneRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getVehicleTimeZone`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * allows to get the WPA Engine Form Data\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWpaEngineData(requestParameters?: GetWpaEngineDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWpaEngineData(requestParameters?: GetWpaEngineDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWpaEngineData(requestParameters?: GetWpaEngineDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWpaEngineData(requestParameters?: GetWpaEngineDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getWpaEngineData`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get xml oc Repair\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getXmlOcRepairSurveyContent(requestParameters: GetXmlOcRepairSurveyContentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getXmlOcRepairSurveyContent(requestParameters: GetXmlOcRepairSurveyContentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getXmlOcRepairSurveyContent(requestParameters: GetXmlOcRepairSurveyContentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getXmlOcRepairSurveyContent(requestParameters: GetXmlOcRepairSurveyContentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getXmlOcRepairSurveyContent.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling getXmlOcRepairSurveyContent.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/getXmlWpaOcForm/${encodeURIComponent(String(docType))}/${encodeURIComponent(String(docId))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * return true if IUs are connected directly to a general section\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public hasGeneralSectionItem(requestParameters: HasGeneralSectionItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public hasGeneralSectionItem(requestParameters: HasGeneralSectionItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public hasGeneralSectionItem(requestParameters: HasGeneralSectionItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public hasGeneralSectionItem(requestParameters: HasGeneralSectionItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const topics = requestParameters.topics;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (topics) {\n topics.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'topics');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/sm/general/hasSectionItem`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * To know if the IU is Mandatory\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public isAdvancedDiagnosticMandatory(requestParameters: IsAdvancedDiagnosticMandatoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public isAdvancedDiagnosticMandatory(requestParameters: IsAdvancedDiagnosticMandatoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isAdvancedDiagnosticMandatory(requestParameters: IsAdvancedDiagnosticMandatoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isAdvancedDiagnosticMandatory(requestParameters: IsAdvancedDiagnosticMandatoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling isAdvancedDiagnosticMandatory.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/isAdvancedDiagnosticMandatory`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Add an IU or a SRT in the basket\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveIuInBasket(requestParameters: SaveIuInBasketRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveIuInBasket(requestParameters: SaveIuInBasketRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveIuInBasket(requestParameters: SaveIuInBasketRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveIuInBasket(requestParameters: SaveIuInBasketRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n const userId = requestParameters.userId;\n const iuLinkBasket = requestParameters.iuLinkBasket;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/iu/basket`,\n iuLinkBasket,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * allows to save the WPA Engine Form Data\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveWpaEngineForm(requestParameters: SaveWpaEngineFormRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveWpaEngineForm(requestParameters: SaveWpaEngineFormRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveWpaEngineForm(requestParameters: SaveWpaEngineFormRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveWpaEngineForm(requestParameters: SaveWpaEngineFormRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const wPAEngineFormDto = requestParameters.wPAEngineFormDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/saveWpaEngineForm`,\n wPAEngineFormDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * allows to save the WPA Component Form Data\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveWpaNonEngineForm(requestParameters: SaveWpaNonEngineFormRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveWpaNonEngineForm(requestParameters: SaveWpaNonEngineFormRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveWpaNonEngineForm(requestParameters: SaveWpaNonEngineFormRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveWpaNonEngineForm(requestParameters: SaveWpaNonEngineFormRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const wpaOcFormForPdfDto = requestParameters.wpaOcFormForPdfDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/saveWpaNonEngineForm`,\n wpaOcFormForPdfDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments matching the criteria\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchAppointments(requestParameters: SearchAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchAppointments(requestParameters: SearchAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchAppointments(requestParameters: SearchAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchAppointments(requestParameters: SearchAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const search = requestParameters.search;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (search !== undefined && search !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n search, 'search');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/iu/link/appointments/search`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Save report information in the database for subsequent use by the task scheduler to generate reports.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public storeReportsInfo(requestParameters: StoreReportsInfoRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public storeReportsInfo(requestParameters: StoreReportsInfoRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public storeReportsInfo(requestParameters: StoreReportsInfoRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public storeReportsInfo(requestParameters: StoreReportsInfoRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const reportsRequestDto = requestParameters.reportsRequestDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/storeReportsInfo`,\n reportsRequestDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentById(requestParameters: UpdateAppointmentByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentById(requestParameters: UpdateAppointmentByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentById(requestParameters: UpdateAppointmentByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentById(requestParameters: UpdateAppointmentByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling updateAppointmentById.');\n }\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/iu/link/appointments/${encodeURIComponent(String(appointmentId))}`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDqrLogisticUserRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DqrLogisticUserService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get Logistic User.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrLogisticUser(requestParameters?: GetDqrLogisticUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDqrLogisticUser(requestParameters?: GetDqrLogisticUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrLogisticUser(requestParameters?: GetDqrLogisticUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrLogisticUser(requestParameters?: GetDqrLogisticUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dqrLogisticUser`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Count } from '../model/models';\nimport { DqrFailureCode } from '../model/models';\nimport { DqrFaultStatus } from '../model/models';\nimport { DqrFaultStatusExport } from '../model/models';\nimport { DqrForm } from '../model/models';\nimport { DqrGroup } from '../model/models';\nimport { DqrHistoryDto } from '../model/models';\nimport { DqrReport } from '../model/models';\nimport { DqrSeverityCode } from '../model/models';\nimport { DqrSubmitResult } from '../model/models';\nimport { DqrTasksByType } from '../model/models';\nimport { EnumException } from '../model/models';\nimport { InlineResponse200 } from '../model/models';\nimport { Market } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CheckDQRSubmittedRequestParams {\n /** checklist Id */\n ckId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateThdTaskRequestParams {\n /** Create the THD task. */\n docID?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateWpaTaskRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteDqrReportByIdRequestParams {\n /** id of the report */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DownloadFullPdfFromAzureRequestParams {\n /** Id of the checklist document */\n docId: number;\n /** Language of the document */\n dealerLg: string;\n /** Fault of the document */\n isFaultPdfExport: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ExportFaultsStatusRequestParams {\n /** the headers for the export file */\n exportHeaders: Array;\n dqrFaultStatusExport?: DqrFaultStatusExport;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface FreezeFPTChecklistRequestParams {\n /** id of the report */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCountDqrReportsRequestParams {\n /** Active reports or archived reports */\n active?: boolean;\n dealership?: string;\n brand?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrChapterRequestParams {\n /** id of the report */\n id: number;\n dqrGroup?: DqrGroup;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrFailureCodesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrFaultsStatusRequestParams {\n /** vin of the checklist */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrFinalRequestParams {\n dqrForm?: DqrForm;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrForAsistJumpRequestParams {\n checklistId: string;\n questionId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrFormRequestParams {\n /** id of the report */\n id: number;\n /** request use xml to dto or not */\n useXmlDto: boolean;\n /** request attachment source or not */\n isAttachmentSourceRequired?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrFormForDocumentRequestParams {\n /** eltid of the report */\n id: string;\n /** document type */\n doctype: string;\n /** request use xml to dto or not */\n useXmlDto: boolean;\n /** request attachment source or not */\n isAttachmentSourceRequired?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrHistoryRequestParams {\n /** DQR vin */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrReportRequestParams {\n /** id of the report */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrReportsRequestParams {\n /** Active reports or archived reports */\n active?: boolean;\n dealership?: string;\n brand?: string;\n isFromSearchBar?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDqrSeverityCodesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGlobalStatusForFPTChecklistsRequestParams {\n /** preSales number */\n vin: string;\n /** Preceding fpt checklist types */\n fptTypes: Array;\n /** DealerCode for Internal connect as Dealer */\n dealerCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGlobalStatusLabelIdRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetThdDqrTasksRequestParams {\n docID?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWpaDqrTasksRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWpaMetadataRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface HasFaultPdfRequestParams {\n /** checklist Id */\n checklistId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface HasFaultsStatusRequestParams {\n /** checklist vin */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveDqrElementsRequestParams {\n /** id of the report */\n id: number;\n /** id of the iu */\n iuId: string;\n /** request attachment source or not */\n isAttachmentSourceRequired?: boolean;\n dqrGroup?: DqrGroup;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveDqrFormRequestParams {\n /** id of the report */\n id: number;\n dqrForm?: DqrForm;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveFaultsStatusRequestParams {\n dqrFaultStatus?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SubmitDqrFormRequestParams {\n /** id of the report */\n id: number;\n dqrForm?: DqrForm;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UnassignChecklistRequestParams {\n /** id of the report */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateDqrReportByIdRequestParams {\n /** id of the report */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateGlobalStatusByIdRequestParams {\n /** id of the report */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DqrReportService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Check DQR Checklist is submitted.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkDQRSubmitted(requestParameters: CheckDQRSubmittedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public checkDQRSubmitted(requestParameters: CheckDQRSubmittedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkDQRSubmitted(requestParameters: CheckDQRSubmittedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkDQRSubmitted(requestParameters: CheckDQRSubmittedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const ckId = requestParameters.ckId;\n if (ckId === null || ckId === undefined) {\n throw new Error('Required parameter ckId was null or undefined when calling checkDQRSubmitted.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (ckId !== undefined && ckId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ckId, 'ckId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/checkDQRSubmitted`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create the THD task.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createThdTask(requestParameters: CreateThdTaskRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createThdTask(requestParameters: CreateThdTaskRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createThdTask(requestParameters: CreateThdTaskRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createThdTask(requestParameters: CreateThdTaskRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docID = requestParameters.docID;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (docID !== undefined && docID !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docID, 'docID');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/createThdTask`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create the WPA task.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createWpaTask(requestParameters?: CreateWpaTaskRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWpaTask(requestParameters?: CreateWpaTaskRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createWpaTask(requestParameters?: CreateWpaTaskRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createWpaTask(requestParameters?: CreateWpaTaskRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/createWpaTask`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete the DQR report.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteDqrReportById(requestParameters: DeleteDqrReportByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteDqrReportById(requestParameters: DeleteDqrReportByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteDqrReportById(requestParameters: DeleteDqrReportByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteDqrReportById(requestParameters: DeleteDqrReportByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteDqrReportById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dqr-reports/delete/${encodeURIComponent(String(id))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get, if exist, the FULL pdf of the specified ck and language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public downloadFullPdfFromAzure(requestParameters: DownloadFullPdfFromAzureRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public downloadFullPdfFromAzure(requestParameters: DownloadFullPdfFromAzureRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public downloadFullPdfFromAzure(requestParameters: DownloadFullPdfFromAzureRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public downloadFullPdfFromAzure(requestParameters: DownloadFullPdfFromAzureRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling downloadFullPdfFromAzure.');\n }\n const dealerLg = requestParameters.dealerLg;\n if (dealerLg === null || dealerLg === undefined) {\n throw new Error('Required parameter dealerLg was null or undefined when calling downloadFullPdfFromAzure.');\n }\n const isFaultPdfExport = requestParameters.isFaultPdfExport;\n if (isFaultPdfExport === null || isFaultPdfExport === undefined) {\n throw new Error('Required parameter isFaultPdfExport was null or undefined when calling downloadFullPdfFromAzure.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isFaultPdfExport !== undefined && isFaultPdfExport !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isFaultPdfExport, 'isFaultPdfExport');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/downloadFullPdfFromAzure/${encodeURIComponent(String(docId))}/${encodeURIComponent(String(dealerLg))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * exporting the list of fault status\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public exportFaultsStatus(requestParameters: ExportFaultsStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/json'}): Observable;\n public exportFaultsStatus(requestParameters: ExportFaultsStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/json'}): Observable>;\n public exportFaultsStatus(requestParameters: ExportFaultsStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/json'}): Observable>;\n public exportFaultsStatus(requestParameters: ExportFaultsStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' | 'application/json'}): Observable {\n const exportHeaders = requestParameters.exportHeaders;\n if (exportHeaders === null || exportHeaders === undefined) {\n throw new Error('Required parameter exportHeaders was null or undefined when calling exportFaultsStatus.');\n }\n const dqrFaultStatusExport = requestParameters.dqrFaultStatusExport;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (exportHeaders) {\n exportHeaders.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'exportHeaders');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dqrFaultsStatus/export`,\n dqrFaultStatusExport,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Final freeze of an FPT Checklist\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public freezeFPTChecklist(requestParameters: FreezeFPTChecklistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public freezeFPTChecklist(requestParameters: FreezeFPTChecklistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public freezeFPTChecklist(requestParameters: FreezeFPTChecklistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public freezeFPTChecklist(requestParameters: FreezeFPTChecklistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling freezeFPTChecklist.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/freezeFPTChecklist/${encodeURIComponent(String(id))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the count of DQR reports.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCountDqrReports(requestParameters: GetCountDqrReportsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getCountDqrReports(requestParameters: GetCountDqrReportsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCountDqrReports(requestParameters: GetCountDqrReportsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCountDqrReports(requestParameters: GetCountDqrReportsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const active = requestParameters.active;\n const dealership = requestParameters.dealership;\n const brand = requestParameters.brand;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (active !== undefined && active !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n active, 'active');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n if (dealership !== undefined && dealership !== null) {\n headers = headers.set('dealership', String(dealership));\n }\n if (brand !== undefined && brand !== null) {\n headers = headers.set('brand', String(brand));\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dqr-reports/count`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the DQR chapter.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrChapter(requestParameters: GetDqrChapterRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDqrChapter(requestParameters: GetDqrChapterRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrChapter(requestParameters: GetDqrChapterRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrChapter(requestParameters: GetDqrChapterRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getDqrChapter.');\n }\n const dqrGroup = requestParameters.dqrGroup;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dqr-chapter/${encodeURIComponent(String(id))}`,\n dqrGroup,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get failure codes\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrFailureCodes(requestParameters?: GetDqrFailureCodesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrFailureCodes(requestParameters?: GetDqrFailureCodesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDqrFailureCodes(requestParameters?: GetDqrFailureCodesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDqrFailureCodes(requestParameters?: GetDqrFailureCodesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/loadFailureCodes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all DQR fault status report\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrFaultsStatus(requestParameters: GetDqrFaultsStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrFaultsStatus(requestParameters: GetDqrFaultsStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDqrFaultsStatus(requestParameters: GetDqrFaultsStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDqrFaultsStatus(requestParameters: GetDqrFaultsStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getDqrFaultsStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dqrFaultsStatus/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the DQR final.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrFinal(requestParameters: GetDqrFinalRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDqrFinal(requestParameters: GetDqrFinalRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrFinal(requestParameters: GetDqrFinalRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrFinal(requestParameters: GetDqrFinalRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const dqrForm = requestParameters.dqrForm;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dqr-final`,\n dqrForm,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get dqr when jump from asist\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrForAsistJump(requestParameters: GetDqrForAsistJumpRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDqrForAsistJump(requestParameters: GetDqrForAsistJumpRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrForAsistJump(requestParameters: GetDqrForAsistJumpRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrForAsistJump(requestParameters: GetDqrForAsistJumpRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const checklistId = requestParameters.checklistId;\n if (checklistId === null || checklistId === undefined) {\n throw new Error('Required parameter checklistId was null or undefined when calling getDqrForAsistJump.');\n }\n const questionId = requestParameters.questionId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (checklistId !== undefined && checklistId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n checklistId, 'checklistId');\n }\n if (questionId !== undefined && questionId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n questionId, 'questionId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getDqrForAsistJump`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the DQR form.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrForm(requestParameters: GetDqrFormRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDqrForm(requestParameters: GetDqrFormRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrForm(requestParameters: GetDqrFormRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrForm(requestParameters: GetDqrFormRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getDqrForm.');\n }\n const useXmlDto = requestParameters.useXmlDto;\n if (useXmlDto === null || useXmlDto === undefined) {\n throw new Error('Required parameter useXmlDto was null or undefined when calling getDqrForm.');\n }\n const isAttachmentSourceRequired = requestParameters.isAttachmentSourceRequired;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (useXmlDto !== undefined && useXmlDto !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n useXmlDto, 'useXmlDto');\n }\n if (isAttachmentSourceRequired !== undefined && isAttachmentSourceRequired !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isAttachmentSourceRequired, 'isAttachmentSourceRequired');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dqr-reports/${encodeURIComponent(String(id))}/form`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the DQR form for Document Page.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrFormForDocument(requestParameters: GetDqrFormForDocumentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDqrFormForDocument(requestParameters: GetDqrFormForDocumentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrFormForDocument(requestParameters: GetDqrFormForDocumentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrFormForDocument(requestParameters: GetDqrFormForDocumentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getDqrFormForDocument.');\n }\n const doctype = requestParameters.doctype;\n if (doctype === null || doctype === undefined) {\n throw new Error('Required parameter doctype was null or undefined when calling getDqrFormForDocument.');\n }\n const useXmlDto = requestParameters.useXmlDto;\n if (useXmlDto === null || useXmlDto === undefined) {\n throw new Error('Required parameter useXmlDto was null or undefined when calling getDqrFormForDocument.');\n }\n const isAttachmentSourceRequired = requestParameters.isAttachmentSourceRequired;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (doctype !== undefined && doctype !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n doctype, 'doctype');\n }\n if (useXmlDto !== undefined && useXmlDto !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n useXmlDto, 'useXmlDto');\n }\n if (isAttachmentSourceRequired !== undefined && isAttachmentSourceRequired !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isAttachmentSourceRequired, 'isAttachmentSourceRequired');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dqr-reports-document/${encodeURIComponent(String(id))}/form`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get all history logs for a vin\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrHistory(requestParameters: GetDqrHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDqrHistory(requestParameters: GetDqrHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrHistory(requestParameters: GetDqrHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrHistory(requestParameters: GetDqrHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getDqrHistory.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dqrHistory/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the DQR report.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrReport(requestParameters: GetDqrReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDqrReport(requestParameters: GetDqrReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrReport(requestParameters: GetDqrReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrReport(requestParameters: GetDqrReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getDqrReport.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dqr-reports/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all DQR reports.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrReports(requestParameters: GetDqrReportsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrReports(requestParameters: GetDqrReportsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDqrReports(requestParameters: GetDqrReportsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDqrReports(requestParameters: GetDqrReportsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const active = requestParameters.active;\n const dealership = requestParameters.dealership;\n const brand = requestParameters.brand;\n const isFromSearchBar = requestParameters.isFromSearchBar;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (active !== undefined && active !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n active, 'active');\n }\n if (dealership !== undefined && dealership !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dealership, 'dealership');\n }\n if (brand !== undefined && brand !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brand, 'brand');\n }\n if (isFromSearchBar !== undefined && isFromSearchBar !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isFromSearchBar, 'isFromSearchBar');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dqr-reports`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the severity codes\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDqrSeverityCodes(requestParameters?: GetDqrSeverityCodesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDqrSeverityCodes(requestParameters?: GetDqrSeverityCodesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDqrSeverityCodes(requestParameters?: GetDqrSeverityCodesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDqrSeverityCodes(requestParameters?: GetDqrSeverityCodesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/loadSeverityCodes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the global status for preceding FPT Checklists.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGlobalStatusForFPTChecklists(requestParameters: GetGlobalStatusForFPTChecklistsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getGlobalStatusForFPTChecklists(requestParameters: GetGlobalStatusForFPTChecklistsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGlobalStatusForFPTChecklists(requestParameters: GetGlobalStatusForFPTChecklistsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGlobalStatusForFPTChecklists(requestParameters: GetGlobalStatusForFPTChecklistsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getGlobalStatusForFPTChecklists.');\n }\n const fptTypes = requestParameters.fptTypes;\n if (fptTypes === null || fptTypes === undefined) {\n throw new Error('Required parameter fptTypes was null or undefined when calling getGlobalStatusForFPTChecklists.');\n }\n const dealerCode = requestParameters.dealerCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (fptTypes) {\n fptTypes.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'fptTypes');\n })\n }\n if (dealerCode !== undefined && dealerCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dealerCode, 'dealerCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getGlobalStatusForFPTChecklists`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get Labels id for global status by IU for FPT Checklist.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGlobalStatusLabelId(requestParameters?: GetGlobalStatusLabelIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGlobalStatusLabelId(requestParameters?: GetGlobalStatusLabelIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getGlobalStatusLabelId(requestParameters?: GetGlobalStatusLabelIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getGlobalStatusLabelId(requestParameters?: GetGlobalStatusLabelIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dqr-reports/getGlobalStatusLabelId`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the THD Dqr Tasks.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getThdDqrTasks(requestParameters: GetThdDqrTasksRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getThdDqrTasks(requestParameters: GetThdDqrTasksRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getThdDqrTasks(requestParameters: GetThdDqrTasksRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getThdDqrTasks(requestParameters: GetThdDqrTasksRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docID = requestParameters.docID;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (docID !== undefined && docID !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docID, 'docID');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getThdDqrTasks`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the WPA Dqr Tasks.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWpaDqrTasks(requestParameters?: GetWpaDqrTasksRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWpaDqrTasks(requestParameters?: GetWpaDqrTasksRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWpaDqrTasks(requestParameters?: GetWpaDqrTasksRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWpaDqrTasks(requestParameters?: GetWpaDqrTasksRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getWpaDqrTasks`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the WPA Metadata.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWpaMetadata(requestParameters?: GetWpaMetadataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWpaMetadata(requestParameters?: GetWpaMetadataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWpaMetadata(requestParameters?: GetWpaMetadataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWpaMetadata(requestParameters?: GetWpaMetadataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getWpaMetadata`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * return either a fault pdf is found or not for a given checklist\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public hasFaultPdf(requestParameters: HasFaultPdfRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public hasFaultPdf(requestParameters: HasFaultPdfRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public hasFaultPdf(requestParameters: HasFaultPdfRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public hasFaultPdf(requestParameters: HasFaultPdfRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const checklistId = requestParameters.checklistId;\n if (checklistId === null || checklistId === undefined) {\n throw new Error('Required parameter checklistId was null or undefined when calling hasFaultPdf.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (checklistId !== undefined && checklistId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n checklistId, 'checklistId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/hasFaultPdf`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * return either faults status if found or not for a given checklist\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public hasFaultsStatus(requestParameters: HasFaultsStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public hasFaultsStatus(requestParameters: HasFaultsStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public hasFaultsStatus(requestParameters: HasFaultsStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public hasFaultsStatus(requestParameters: HasFaultsStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling hasFaultsStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/hasFaultsStatus/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Save the elements of the DQR form.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveDqrElements(requestParameters: SaveDqrElementsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveDqrElements(requestParameters: SaveDqrElementsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveDqrElements(requestParameters: SaveDqrElementsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveDqrElements(requestParameters: SaveDqrElementsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling saveDqrElements.');\n }\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling saveDqrElements.');\n }\n const isAttachmentSourceRequired = requestParameters.isAttachmentSourceRequired;\n const dqrGroup = requestParameters.dqrGroup;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isAttachmentSourceRequired !== undefined && isAttachmentSourceRequired !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isAttachmentSourceRequired, 'isAttachmentSourceRequired');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/dqr-reports/${encodeURIComponent(String(id))}/groups/${encodeURIComponent(String(iuId))}`,\n dqrGroup,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Save the DQR form.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveDqrForm(requestParameters: SaveDqrFormRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveDqrForm(requestParameters: SaveDqrFormRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveDqrForm(requestParameters: SaveDqrFormRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveDqrForm(requestParameters: SaveDqrFormRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling saveDqrForm.');\n }\n const dqrForm = requestParameters.dqrForm;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/dqr-reports/${encodeURIComponent(String(id))}/form`,\n dqrForm,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * saving the list of modified fault status\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveFaultsStatus(requestParameters: SaveFaultsStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveFaultsStatus(requestParameters: SaveFaultsStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveFaultsStatus(requestParameters: SaveFaultsStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveFaultsStatus(requestParameters: SaveFaultsStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const dqrFaultStatus = requestParameters.dqrFaultStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dqrFaultsStatus/form`,\n dqrFaultStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Submit the DQR form.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public submitDqrForm(requestParameters: SubmitDqrFormRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public submitDqrForm(requestParameters: SubmitDqrFormRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public submitDqrForm(requestParameters: SubmitDqrFormRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public submitDqrForm(requestParameters: SubmitDqrFormRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling submitDqrForm.');\n }\n const dqrForm = requestParameters.dqrForm;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dqr-reports/${encodeURIComponent(String(id))}/form`,\n dqrForm,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Unassign the checklist from a User\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public unassignChecklist(requestParameters: UnassignChecklistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public unassignChecklist(requestParameters: UnassignChecklistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public unassignChecklist(requestParameters: UnassignChecklistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public unassignChecklist(requestParameters: UnassignChecklistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling unassignChecklist.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/unassignChecklist/${encodeURIComponent(String(id))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update the DQR report.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateDqrReportById(requestParameters: UpdateDqrReportByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateDqrReportById(requestParameters: UpdateDqrReportByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateDqrReportById(requestParameters: UpdateDqrReportByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateDqrReportById(requestParameters: UpdateDqrReportByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateDqrReportById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dqr-reports/update/${encodeURIComponent(String(id))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update global status of FPT Checklist.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateGlobalStatusById(requestParameters: UpdateGlobalStatusByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateGlobalStatusById(requestParameters: UpdateGlobalStatusByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateGlobalStatusById(requestParameters: UpdateGlobalStatusByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateGlobalStatusById(requestParameters: UpdateGlobalStatusByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateGlobalStatusById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/dqr-reports/updateGlobalStatus/${encodeURIComponent(String(id))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { DecryptResult } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface DecryptByKeyRequestParams {\n /** the value to decrypt */\n encryptedValue: string;\n /** the key Id */\n keyId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EncryptionService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * decrypt one value according to the Key\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public decryptByKey(requestParameters: DecryptByKeyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public decryptByKey(requestParameters: DecryptByKeyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public decryptByKey(requestParameters: DecryptByKeyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public decryptByKey(requestParameters: DecryptByKeyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const encryptedValue = requestParameters.encryptedValue;\n if (encryptedValue === null || encryptedValue === undefined) {\n throw new Error('Required parameter encryptedValue was null or undefined when calling decryptByKey.');\n }\n const keyId = requestParameters.keyId;\n if (keyId === null || keyId === undefined) {\n throw new Error('Required parameter keyId was null or undefined when calling decryptByKey.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (encryptedValue !== undefined && encryptedValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n encryptedValue, 'encryptedValue');\n }\n if (keyId !== undefined && keyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n keyId, 'keyId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/decrypt`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { EpartsBrandResult } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetEpartsBrandFromVinRequestParams {\n /** Vehicule VIN / Machine PIN/SN */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EpartsService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get all Brand, Market applicable and the link with the corresponding languages.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getEpartsBrandFromVin(requestParameters: GetEpartsBrandFromVinRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getEpartsBrandFromVin(requestParameters: GetEpartsBrandFromVinRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEpartsBrandFromVin(requestParameters: GetEpartsBrandFromVinRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEpartsBrandFromVin(requestParameters: GetEpartsBrandFromVinRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getEpartsBrandFromVin.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/eparts/brand-search`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AlertForHistory } from '../model/models';\nimport { AlertForSmartView } from '../model/models';\nimport { ApiError } from '../model/models';\nimport { AppTeaserResponseDto } from '../model/models';\nimport { AppVersion } from '../model/models';\nimport { BookmarkElement } from '../model/models';\nimport { Brand } from '../model/models';\nimport { BrandsMarketsLanguages } from '../model/models';\nimport { CustomerAlertFeedback } from '../model/models';\nimport { DashboardAlert } from '../model/models';\nimport { DashboardMyAlerts } from '../model/models';\nimport { DashboardTeaserPopIn } from '../model/models';\nimport { DecryptTidb } from '../model/models';\nimport { EtimSettingDto } from '../model/models';\nimport { ExecutedPip } from '../model/models';\nimport { FailureModeDetails } from '../model/models';\nimport { GuidedProcedure } from '../model/models';\nimport { HigherFaultCodePriorityDto } from '../model/models';\nimport { HistoryElement } from '../model/models';\nimport { HomepageData } from '../model/models';\nimport { IQuickCloseForm } from '../model/models';\nimport { ImageInfoDto } from '../model/models';\nimport { Language } from '../model/models';\nimport { LegacyTocDto } from '../model/models';\nimport { Market } from '../model/models';\nimport { MarketContext } from '../model/models';\nimport { MonJumpFleetSmartviewDto } from '../model/models';\nimport { PetDto } from '../model/models';\nimport { QuickCloseAlertFormResults } from '../model/models';\nimport { RemoteDisplayConnection } from '../model/models';\nimport { ResponseCheckTask } from '../model/models';\nimport { Routine } from '../model/models';\nimport { SdpTransactionId } from '../model/models';\nimport { SearchByPartNumberParams } from '../model/models';\nimport { SearchByPartNumberResult } from '../model/models';\nimport { SearchByPlateParams } from '../model/models';\nimport { SearchByPlateResult } from '../model/models';\nimport { SearchByTTBMParams } from '../model/models';\nimport { SearchByTTBMResult } from '../model/models';\nimport { SearchByVCBParams } from '../model/models';\nimport { SearchByVCBResult } from '../model/models';\nimport { SearchByVinParams } from '../model/models';\nimport { SearchByVinParamsMyBrand } from '../model/models';\nimport { SearchByVinResult } from '../model/models';\nimport { SharedHistory } from '../model/models';\nimport { TidbSbDto } from '../model/models';\nimport { TokenRequest } from '../model/models';\nimport { TutorialDocDto } from '../model/models';\nimport { User } from '../model/models';\nimport { UserPrefKeyValueDto } from '../model/models';\nimport { UserPrefs } from '../model/models';\nimport { WebSBHeader } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AuthenticationInternalRequestParams {\n tokenRequest?: TokenRequest;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CheckDqrTasksRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateDqrTaskRequestParams {\n /** Create the dqr task. */\n taskType: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DecryptRequestParams {\n decryptTidb?: DecryptTidb;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteBookmarkListRequestParams {\n brandIceCode: string;\n bookmarkElement?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DismissAlertRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ExecutedPipRequestParams {\n executedPip?: ExecutedPip;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAlarmsLiveRequestParams {\n brandIceCode: string;\n startDate?: string;\n endDate?: string;\n /** Limit the number of object returned */\n limit?: number;\n /** Cursor token if request is split */\n cursor?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAlertRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAlertByInstanceIdRequestParams {\n /** the instance id */\n instanceId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAlertHistoryRequestParams {\n maxOccurence?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAlertProcedurePDFRequestParams {\n instanceId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAlertsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAllBookmarksRequestParams {\n brandIceCode: string;\n isPin?: boolean;\n isLegacy?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppTeaserRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppVersionRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetBookmarksRequestParams {\n brandIceCode?: string;\n isPin?: boolean;\n isLegacy?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetBrandsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetBrandsMarketsLanguagesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetClosedAlertOccurenceRequestParams {\n alertId: number;\n maxOccurence?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetConnectorImagesRequestParams {\n /** connector code */\n code: string;\n /** the ice code of the location and infotype (Family.group.subgroup.subsubgroup.assembly-topic.subtopi.ctegory.infotype) */\n iceCode?: string;\n ifsId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetConnectorImagesAndLabelsRequestParams {\n /** connector code */\n code: string;\n /** the ice code of the location and infotype (Family.group.subgroup.subsubgroup.assembly-topic.subtopi.ctegory.infotype) */\n iceCode?: string;\n ifsId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCountyByMarketRequestParams {\n market: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomerAlertFeedbacksRequestParams {\n alertRuleId: number;\n instanceId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardAlertsRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardDocAllHistoryRequestParams {\n brandIceCode: string;\n isPin?: boolean;\n isLegacy?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardDocHistoryRequestParams {\n brandIceCode: string;\n isPin?: boolean;\n isLegacy?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardModelAllHistoryRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardModelHistoryRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardPinAllHistoryRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardPinHistoryRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardSearchAllHistoryRequestParams {\n brandIceCode: string;\n isPin?: boolean;\n isLegacy?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardSearchHistoryRequestParams {\n brandIceCode: string;\n isPin?: boolean;\n isLegacy?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDashboardTechnicalAlertsRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDealerUserListRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDisplayTocRequestParams {\n /** id of pdf */\n tdsId: string;\n /** is from dashboard or not */\n fromDashboard: boolean;\n /** docType of pdf */\n docType?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetEtimSettingsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFailureModesForHistoryRequestParams {\n routineId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFaultCodesLiveRequestParams {\n brandIceCode: string;\n startDate?: string;\n endDate?: string;\n /** Limit the number of object returned */\n limit?: number;\n /** Cursor token if request is split */\n cursor?: string;\n /** The fault code profile */\n profile?: string;\n /** The vin found in previous calls */\n foundVin?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFaultCodesPrioritiesRequestParams {\n /** iu id, example 123456789_123 */\n iuId: string;\n /** om, sg, ai, ii, tr, ... */\n docType: string;\n /** Dealer id. */\n delearId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFromIuRequestParams {\n /** information unit id */\n iuId: string;\n /** document id */\n docId?: string;\n /** language id */\n langId?: string;\n /** used by dashboard for overview */\n byProductIceCode?: string;\n /** used by dashboard for overview */\n byEngineIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGeostoreCoreAlarmDiagnosisHistoryRequestParams {\n /** false by default. */\n isTeleservice?: string;\n /** Limit the number of object returned */\n limit?: number;\n /** Cursor token if request is split */\n cursor?: string;\n /** Start date of the range. */\n startDate?: string;\n /** End date of the range. */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGeostoreCoreFaultsDiagnosisHistoryRequestParams {\n /** false by default. */\n isTeleservice?: string;\n /** Limit the number of object returned */\n limit?: number;\n /** Cursor token if request is split */\n cursor?: string;\n /** The fault code profile. */\n profile?: string;\n /** Start date of the range. */\n startDate?: string;\n /** End date of the range. */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGuidedProcedureRequestParams {\n instanceId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGuidedProceduresRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGuidedProceduresHistoryRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetHistoryListOfUserRequestParams {\n userId: string;\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetHomepageDataRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetLanguagesRequestParams {\n brandIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetModelHistoryRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetModelHistoryByBrandRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetModulesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPinHistoryRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPinHistoryByBrandRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetQuickCloseFormTreeRequestParams {\n alertId?: number;\n instanceId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetRemoteDisplayConnectionRequestParams {\n /** UUID */\n transactionId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSVFaultCodesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSVPipsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSdpTransactionIdRequestParams {\n /** VIN */\n vin: string;\n /** Event equal to START or ABORT */\n event: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSearchHistoryRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSearchHistoryByBrandRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTIDBMarketsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTeaserAndPopinAlertRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTutorialVideoMpPathRequestParams {\n /** brand code to filter maintenance plan\\'s tutorial videos */\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTutorialVideoPathRequestParams {\n /** brand code to filter tutorial videos */\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUserPrefsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PipStatusRequestParams {\n iuIds?: string;\n vin?: string;\n /** the id of the document */\n docIfsId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PutTrackingAlertRequestParams {\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveQuickCloseAlertRequestParams {\n quickCloseAlertFormResults?: QuickCloseAlertFormResults;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchByBMRequestParams {\n searchByTTBMParams?: SearchByTTBMParams;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchByChassisRequestParams {\n searchByVinParams?: SearchByVinParams;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchByPartNumberRequestParams {\n searchByPartNumberParams?: SearchByPartNumberParams;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchByPlateRequestParams {\n searchByPlateParams?: SearchByPlateParams;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchByTTRequestParams {\n searchByTTBMParams?: SearchByTTBMParams;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchByVCBRequestParams {\n searchByVCBParams?: SearchByVCBParams;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchByVinRequestParams {\n /** is the doc interactive */\n isInteractive?: boolean;\n searchByVinParams?: SearchByVinParams;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchByVinMyBrandRequestParams {\n searchByVinParamsMyBrand?: SearchByVinParamsMyBrand;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SetLanguageRequestParams {\n language?: Language;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ShareHistoryRequestParams {\n share: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface TrackingJumpMyfleetSmartviewRequestParams {\n monJumpFleetSmartviewDto?: MonJumpFleetSmartviewDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateRequestParams {\n iuIds?: string;\n pin?: string;\n /** the id of the document */\n pipCode?: string;\n /** the status of PIP */\n status?: string;\n /** the id of the document */\n docIfsId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateContextRequestParams {\n marketContext?: MarketContext;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateUserPrefsRequestParams {\n /** preference key */\n prefKey: string;\n /** preference value */\n prefValue: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateUserPrefsListRequestParams {\n userPrefKeyValueDto?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EtimService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the complete context for this internal user.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public authenticationInternal(requestParameters: AuthenticationInternalRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public authenticationInternal(requestParameters: AuthenticationInternalRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authenticationInternal(requestParameters: AuthenticationInternalRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authenticationInternal(requestParameters: AuthenticationInternalRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const tokenRequest = requestParameters.tokenRequest;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/initialize-internal-user`,\n tokenRequest,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * check if a dqr need to be created.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkDqrTasks(requestParameters?: CheckDqrTasksRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public checkDqrTasks(requestParameters?: CheckDqrTasksRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkDqrTasks(requestParameters?: CheckDqrTasksRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkDqrTasks(requestParameters?: CheckDqrTasksRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/check-dqr-task`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create the dqr task.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createDqrTask(requestParameters: CreateDqrTaskRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createDqrTask(requestParameters: CreateDqrTaskRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createDqrTask(requestParameters: CreateDqrTaskRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createDqrTask(requestParameters: CreateDqrTaskRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const taskType = requestParameters.taskType;\n if (taskType === null || taskType === undefined) {\n throw new Error('Required parameter taskType was null or undefined when calling createDqrTask.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/createDqrTask/${encodeURIComponent(String(taskType))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * decrypt user pwd.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public decrypt(requestParameters: DecryptRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public decrypt(requestParameters: DecryptRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public decrypt(requestParameters: DecryptRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public decrypt(requestParameters: DecryptRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const decryptTidb = requestParameters.decryptTidb;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/tidb-agent/POST`,\n decryptTidb,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * delete bookmarks of the given list\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteBookmarkList(requestParameters: DeleteBookmarkListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteBookmarkList(requestParameters: DeleteBookmarkListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteBookmarkList(requestParameters: DeleteBookmarkListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteBookmarkList(requestParameters: DeleteBookmarkListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling deleteBookmarkList.');\n }\n const bookmarkElement = requestParameters.bookmarkElement;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dashboard/bookmarks/delete`,\n bookmarkElement,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * dismiss the alert popin\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public dismissAlert(requestParameters?: DismissAlertRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public dismissAlert(requestParameters?: DismissAlertRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public dismissAlert(requestParameters?: DismissAlertRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public dismissAlert(requestParameters?: DismissAlertRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dashboard/popin/dismiss`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set executed time for pip.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public executedPip(requestParameters: ExecutedPipRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public executedPip(requestParameters: ExecutedPipRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public executedPip(requestParameters: ExecutedPipRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public executedPip(requestParameters: ExecutedPipRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const executedPip = requestParameters.executedPip;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/executed-pip`,\n executedPip,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get alarms live.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAlarmsLive(requestParameters: GetAlarmsLiveRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAlarmsLive(requestParameters: GetAlarmsLiveRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlarmsLive(requestParameters: GetAlarmsLiveRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlarmsLive(requestParameters: GetAlarmsLiveRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getAlarmsLive.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const limit = requestParameters.limit;\n const cursor = requestParameters.cursor;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (cursor !== undefined && cursor !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n cursor, 'cursor');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/geostore-core-faults/alarms-live`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get dashboard alert\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAlert(requestParameters: GetAlertRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAlert(requestParameters: GetAlertRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlert(requestParameters: GetAlertRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlert(requestParameters: GetAlertRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getAlert.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dashboard/alert`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get alert by instanceId.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAlertByInstanceId(requestParameters: GetAlertByInstanceIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAlertByInstanceId(requestParameters: GetAlertByInstanceIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlertByInstanceId(requestParameters: GetAlertByInstanceIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlertByInstanceId(requestParameters: GetAlertByInstanceIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const instanceId = requestParameters.instanceId;\n if (instanceId === null || instanceId === undefined) {\n throw new Error('Required parameter instanceId was null or undefined when calling getAlertByInstanceId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/alert/${encodeURIComponent(String(instanceId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the alert history list\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAlertHistory(requestParameters: GetAlertHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlertHistory(requestParameters: GetAlertHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAlertHistory(requestParameters: GetAlertHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAlertHistory(requestParameters: GetAlertHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const maxOccurence = requestParameters.maxOccurence;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (maxOccurence !== undefined && maxOccurence !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n maxOccurence, 'maxOccurence');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/history/alerts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the alert procedure PDF history\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAlertProcedurePDF(requestParameters: GetAlertProcedurePDFRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlertProcedurePDF(requestParameters: GetAlertProcedurePDFRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAlertProcedurePDF(requestParameters: GetAlertProcedurePDFRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAlertProcedurePDF(requestParameters: GetAlertProcedurePDFRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const instanceId = requestParameters.instanceId;\n if (instanceId === null || instanceId === undefined) {\n throw new Error('Required parameter instanceId was null or undefined when calling getAlertProcedurePDF.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/alert/alertProcedure/${encodeURIComponent(String(instanceId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the smrt view alerts\\' list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAlerts(requestParameters?: GetAlertsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlerts(requestParameters?: GetAlertsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAlerts(requestParameters?: GetAlertsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAlerts(requestParameters?: GetAlertsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/smalerts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get dashboard bookmarks\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllBookmarks(requestParameters: GetAllBookmarksRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllBookmarks(requestParameters: GetAllBookmarksRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllBookmarks(requestParameters: GetAllBookmarksRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllBookmarks(requestParameters: GetAllBookmarksRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getAllBookmarks.');\n }\n const isPin = requestParameters.isPin;\n const isLegacy = requestParameters.isLegacy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n if (isPin !== undefined && isPin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isPin, 'isPin');\n }\n if (isLegacy !== undefined && isLegacy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isLegacy, 'isLegacy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/bookmarks/all`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get dashboard teaser and pop-in alert for Service APP\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppTeaser(requestParameters: GetAppTeaserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAppTeaser(requestParameters: GetAppTeaserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppTeaser(requestParameters: GetAppTeaserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppTeaser(requestParameters: GetAppTeaserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getAppTeaser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dashboard/teaser-popin-app`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the App version.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppVersion(requestParameters?: GetAppVersionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAppVersion(requestParameters?: GetAppVersionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppVersion(requestParameters?: GetAppVersionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppVersion(requestParameters?: GetAppVersionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/app-version`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get dashboard bookmarks in limited number\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBookmarks(requestParameters: GetBookmarksRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBookmarks(requestParameters: GetBookmarksRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBookmarks(requestParameters: GetBookmarksRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBookmarks(requestParameters: GetBookmarksRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n const isPin = requestParameters.isPin;\n const isLegacy = requestParameters.isLegacy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n if (isPin !== undefined && isPin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isPin, 'isPin');\n }\n if (isLegacy !== undefined && isLegacy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isLegacy, 'isLegacy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/bookmarks`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all Brand applicable.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBrands(requestParameters?: GetBrandsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrands(requestParameters?: GetBrandsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBrands(requestParameters?: GetBrandsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBrands(requestParameters?: GetBrandsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/brands`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all Brand, Market applicable and the link with the corresponding languages.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBrandsMarketsLanguages(requestParameters?: GetBrandsMarketsLanguagesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getBrandsMarketsLanguages(requestParameters?: GetBrandsMarketsLanguagesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrandsMarketsLanguages(requestParameters?: GetBrandsMarketsLanguagesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrandsMarketsLanguages(requestParameters?: GetBrandsMarketsLanguagesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/brandsMaketsLanguagesMapping`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the alert history list\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getClosedAlertOccurence(requestParameters: GetClosedAlertOccurenceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getClosedAlertOccurence(requestParameters: GetClosedAlertOccurenceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getClosedAlertOccurence(requestParameters: GetClosedAlertOccurenceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getClosedAlertOccurence(requestParameters: GetClosedAlertOccurenceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const alertId = requestParameters.alertId;\n if (alertId === null || alertId === undefined) {\n throw new Error('Required parameter alertId was null or undefined when calling getClosedAlertOccurence.');\n }\n const maxOccurence = requestParameters.maxOccurence;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (maxOccurence !== undefined && maxOccurence !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n maxOccurence, 'maxOccurence');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/history/alerts/${encodeURIComponent(String(alertId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get connector images list\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getConnectorImages(requestParameters: GetConnectorImagesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getConnectorImages(requestParameters: GetConnectorImagesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConnectorImages(requestParameters: GetConnectorImagesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConnectorImages(requestParameters: GetConnectorImagesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const code = requestParameters.code;\n if (code === null || code === undefined) {\n throw new Error('Required parameter code was null or undefined when calling getConnectorImages.');\n }\n const iceCode = requestParameters.iceCode;\n const ifsId = requestParameters.ifsId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (code !== undefined && code !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n code, 'code');\n }\n if (iceCode !== undefined && iceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iceCode, 'iceCode');\n }\n if (ifsId !== undefined && ifsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ifsId, 'ifsId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/connector/images`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get connector images list with Labels\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getConnectorImagesAndLabels(requestParameters: GetConnectorImagesAndLabelsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getConnectorImagesAndLabels(requestParameters: GetConnectorImagesAndLabelsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConnectorImagesAndLabels(requestParameters: GetConnectorImagesAndLabelsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConnectorImagesAndLabels(requestParameters: GetConnectorImagesAndLabelsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const code = requestParameters.code;\n if (code === null || code === undefined) {\n throw new Error('Required parameter code was null or undefined when calling getConnectorImagesAndLabels.');\n }\n const iceCode = requestParameters.iceCode;\n const ifsId = requestParameters.ifsId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (code !== undefined && code !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n code, 'code');\n }\n if (iceCode !== undefined && iceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iceCode, 'iceCode');\n }\n if (ifsId !== undefined && ifsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ifsId, 'ifsId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/connector/imagesandlebels`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list of all available countries for the given market ID. Only available as an Internal user.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCountyByMarket(requestParameters: GetCountyByMarketRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCountyByMarket(requestParameters: GetCountyByMarketRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCountyByMarket(requestParameters: GetCountyByMarketRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCountyByMarket(requestParameters: GetCountyByMarketRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const market = requestParameters.market;\n if (market === null || market === undefined) {\n throw new Error('Required parameter market was null or undefined when calling getCountyByMarket.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/countries/${encodeURIComponent(String(market))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the customer alerts feedbacks\\' list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerAlertFeedbacks(requestParameters: GetCustomerAlertFeedbacksRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getCustomerAlertFeedbacks(requestParameters: GetCustomerAlertFeedbacksRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerAlertFeedbacks(requestParameters: GetCustomerAlertFeedbacksRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerAlertFeedbacks(requestParameters: GetCustomerAlertFeedbacksRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const alertRuleId = requestParameters.alertRuleId;\n if (alertRuleId === null || alertRuleId === undefined) {\n throw new Error('Required parameter alertRuleId was null or undefined when calling getCustomerAlertFeedbacks.');\n }\n const instanceId = requestParameters.instanceId;\n if (instanceId === null || instanceId === undefined) {\n throw new Error('Required parameter instanceId was null or undefined when calling getCustomerAlertFeedbacks.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/customer-alerts/feedback/${encodeURIComponent(String(alertRuleId))}/${encodeURIComponent(String(instanceId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get dashboard my alerts\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardAlerts(requestParameters: GetDashboardAlertsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDashboardAlerts(requestParameters: GetDashboardAlertsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardAlerts(requestParameters: GetDashboardAlertsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardAlerts(requestParameters: GetDashboardAlertsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardAlerts.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dashboard/myalerts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get docs dashboard history\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardDocAllHistory(requestParameters: GetDashboardDocAllHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardDocAllHistory(requestParameters: GetDashboardDocAllHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardDocAllHistory(requestParameters: GetDashboardDocAllHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardDocAllHistory(requestParameters: GetDashboardDocAllHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardDocAllHistory.');\n }\n const isPin = requestParameters.isPin;\n const isLegacy = requestParameters.isLegacy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n if (isPin !== undefined && isPin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isPin, 'isPin');\n }\n if (isLegacy !== undefined && isLegacy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isLegacy, 'isLegacy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/doc/all`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get docs dashboard history in limited number\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardDocHistory(requestParameters: GetDashboardDocHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardDocHistory(requestParameters: GetDashboardDocHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardDocHistory(requestParameters: GetDashboardDocHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardDocHistory(requestParameters: GetDashboardDocHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardDocHistory.');\n }\n const isPin = requestParameters.isPin;\n const isLegacy = requestParameters.isLegacy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n if (isPin !== undefined && isPin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isPin, 'isPin');\n }\n if (isLegacy !== undefined && isLegacy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isLegacy, 'isLegacy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/doc`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get models dashboard history\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardModelAllHistory(requestParameters: GetDashboardModelAllHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardModelAllHistory(requestParameters: GetDashboardModelAllHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardModelAllHistory(requestParameters: GetDashboardModelAllHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardModelAllHistory(requestParameters: GetDashboardModelAllHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardModelAllHistory.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/model/all`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get models dashboard history in limited number\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardModelHistory(requestParameters: GetDashboardModelHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardModelHistory(requestParameters: GetDashboardModelHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardModelHistory(requestParameters: GetDashboardModelHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardModelHistory(requestParameters: GetDashboardModelHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardModelHistory.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/model`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get pins dashboard history\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardPinAllHistory(requestParameters: GetDashboardPinAllHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardPinAllHistory(requestParameters: GetDashboardPinAllHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardPinAllHistory(requestParameters: GetDashboardPinAllHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardPinAllHistory(requestParameters: GetDashboardPinAllHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardPinAllHistory.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/pin/all`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get pins dashboard history in limited number\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardPinHistory(requestParameters: GetDashboardPinHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardPinHistory(requestParameters: GetDashboardPinHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardPinHistory(requestParameters: GetDashboardPinHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardPinHistory(requestParameters: GetDashboardPinHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardPinHistory.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/pin`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get searches dashboard history\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardSearchAllHistory(requestParameters: GetDashboardSearchAllHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardSearchAllHistory(requestParameters: GetDashboardSearchAllHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardSearchAllHistory(requestParameters: GetDashboardSearchAllHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardSearchAllHistory(requestParameters: GetDashboardSearchAllHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardSearchAllHistory.');\n }\n const isPin = requestParameters.isPin;\n const isLegacy = requestParameters.isLegacy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n if (isPin !== undefined && isPin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isPin, 'isPin');\n }\n if (isLegacy !== undefined && isLegacy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isLegacy, 'isLegacy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/search/all`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get searches dashboard history in limited number\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardSearchHistory(requestParameters: GetDashboardSearchHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardSearchHistory(requestParameters: GetDashboardSearchHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardSearchHistory(requestParameters: GetDashboardSearchHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDashboardSearchHistory(requestParameters: GetDashboardSearchHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardSearchHistory.');\n }\n const isPin = requestParameters.isPin;\n const isLegacy = requestParameters.isLegacy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n if (isPin !== undefined && isPin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isPin, 'isPin');\n }\n if (isLegacy !== undefined && isLegacy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isLegacy, 'isLegacy');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/search`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get dashboard my technical alerts\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDashboardTechnicalAlerts(requestParameters: GetDashboardTechnicalAlertsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDashboardTechnicalAlerts(requestParameters: GetDashboardTechnicalAlertsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardTechnicalAlerts(requestParameters: GetDashboardTechnicalAlertsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDashboardTechnicalAlerts(requestParameters: GetDashboardTechnicalAlertsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getDashboardTechnicalAlerts.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dashboard/myTechnicalAlerts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get dealer user list\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDealerUserList(requestParameters?: GetDealerUserListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDealerUserList(requestParameters?: GetDealerUserListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDealerUserList(requestParameters?: GetDealerUserListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDealerUserList(requestParameters?: GetDealerUserListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/share/team`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get PdfLegacy.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDisplayToc(requestParameters: GetDisplayTocRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDisplayToc(requestParameters: GetDisplayTocRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDisplayToc(requestParameters: GetDisplayTocRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDisplayToc(requestParameters: GetDisplayTocRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const tdsId = requestParameters.tdsId;\n if (tdsId === null || tdsId === undefined) {\n throw new Error('Required parameter tdsId was null or undefined when calling getDisplayToc.');\n }\n const fromDashboard = requestParameters.fromDashboard;\n if (fromDashboard === null || fromDashboard === undefined) {\n throw new Error('Required parameter fromDashboard was null or undefined when calling getDisplayToc.');\n }\n const docType = requestParameters.docType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (tdsId !== undefined && tdsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n tdsId, 'tdsId');\n }\n if (docType !== undefined && docType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docType, 'docType');\n }\n if (fromDashboard !== undefined && fromDashboard !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDashboard, 'fromDashboard');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/document/getLegacyTocById`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get helpSettings.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getEtimSettings(requestParameters?: GetEtimSettingsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEtimSettings(requestParameters?: GetEtimSettingsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getEtimSettings(requestParameters?: GetEtimSettingsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getEtimSettings(requestParameters?: GetEtimSettingsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/help-settings`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Failure modes based on the routine Id for the history of the alert\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFailureModesForHistory(requestParameters: GetFailureModesForHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getFailureModesForHistory(requestParameters: GetFailureModesForHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFailureModesForHistory(requestParameters: GetFailureModesForHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFailureModesForHistory(requestParameters: GetFailureModesForHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const routineId = requestParameters.routineId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (routineId !== undefined && routineId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n routineId, 'routineId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/quickclosealert/failuremodes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get fault codes live.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFaultCodesLive(requestParameters: GetFaultCodesLiveRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getFaultCodesLive(requestParameters: GetFaultCodesLiveRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFaultCodesLive(requestParameters: GetFaultCodesLiveRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFaultCodesLive(requestParameters: GetFaultCodesLiveRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getFaultCodesLive.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const limit = requestParameters.limit;\n const cursor = requestParameters.cursor;\n const profile = requestParameters.profile;\n const foundVin = requestParameters.foundVin;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (cursor !== undefined && cursor !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n cursor, 'cursor');\n }\n if (profile !== undefined && profile !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n profile, 'profile');\n }\n if (foundVin !== undefined && foundVin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n foundVin, 'foundVin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/geostore-core-faults/fault-codes-live`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get FaultCodes Priority list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFaultCodesPriorities(requestParameters: GetFaultCodesPrioritiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getFaultCodesPriorities(requestParameters: GetFaultCodesPrioritiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFaultCodesPriorities(requestParameters: GetFaultCodesPrioritiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFaultCodesPriorities(requestParameters: GetFaultCodesPrioritiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling getFaultCodesPriorities.');\n }\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getFaultCodesPriorities.');\n }\n const delearId = requestParameters.delearId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (docType !== undefined && docType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docType, 'docType');\n }\n if (delearId !== undefined && delearId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n delearId, 'delearId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/faultCode/faultcodePriority`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get service bulletin header\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFromIu(requestParameters: GetFromIuRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getFromIu(requestParameters: GetFromIuRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFromIu(requestParameters: GetFromIuRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFromIu(requestParameters: GetFromIuRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling getFromIu.');\n }\n const docId = requestParameters.docId;\n const langId = requestParameters.langId;\n const byProductIceCode = requestParameters.byProductIceCode;\n const byEngineIceCode = requestParameters.byEngineIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (docId !== undefined && docId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docId, 'docId');\n }\n if (langId !== undefined && langId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n langId, 'langId');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n if (byEngineIceCode !== undefined && byEngineIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byEngineIceCode, 'byEngineIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/sbHeaderFromIu`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the diagnosis history of alarms\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGeostoreCoreAlarmDiagnosisHistory(requestParameters: GetGeostoreCoreAlarmDiagnosisHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getGeostoreCoreAlarmDiagnosisHistory(requestParameters: GetGeostoreCoreAlarmDiagnosisHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGeostoreCoreAlarmDiagnosisHistory(requestParameters: GetGeostoreCoreAlarmDiagnosisHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGeostoreCoreAlarmDiagnosisHistory(requestParameters: GetGeostoreCoreAlarmDiagnosisHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const isTeleservice = requestParameters.isTeleservice;\n const limit = requestParameters.limit;\n const cursor = requestParameters.cursor;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isTeleservice !== undefined && isTeleservice !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isTeleservice, 'isTeleservice');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (cursor !== undefined && cursor !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n cursor, 'cursor');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/geostore-core/alarm-diagnosis-history`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the diagnosis history of fault codes\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGeostoreCoreFaultsDiagnosisHistory(requestParameters: GetGeostoreCoreFaultsDiagnosisHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getGeostoreCoreFaultsDiagnosisHistory(requestParameters: GetGeostoreCoreFaultsDiagnosisHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGeostoreCoreFaultsDiagnosisHistory(requestParameters: GetGeostoreCoreFaultsDiagnosisHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGeostoreCoreFaultsDiagnosisHistory(requestParameters: GetGeostoreCoreFaultsDiagnosisHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const isTeleservice = requestParameters.isTeleservice;\n const limit = requestParameters.limit;\n const cursor = requestParameters.cursor;\n const profile = requestParameters.profile;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isTeleservice !== undefined && isTeleservice !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isTeleservice, 'isTeleservice');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (cursor !== undefined && cursor !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n cursor, 'cursor');\n }\n if (profile !== undefined && profile !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n profile, 'profile');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/geostore-core-faults/diagnosis-history`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the smrt view guidedprocedures\\' list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGuidedProcedure(requestParameters: GetGuidedProcedureRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/png'}): Observable;\n public getGuidedProcedure(requestParameters: GetGuidedProcedureRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/png'}): Observable>;\n public getGuidedProcedure(requestParameters: GetGuidedProcedureRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/png'}): Observable>;\n public getGuidedProcedure(requestParameters: GetGuidedProcedureRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'image/png'}): Observable {\n const instanceId = requestParameters.instanceId;\n if (instanceId === null || instanceId === undefined) {\n throw new Error('Required parameter instanceId was null or undefined when calling getGuidedProcedure.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'image/png'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/guidedprocedure//${encodeURIComponent(String(instanceId))}`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the smrt view guidedprocedures\\' list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGuidedProcedures(requestParameters?: GetGuidedProceduresRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGuidedProcedures(requestParameters?: GetGuidedProceduresRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getGuidedProcedures(requestParameters?: GetGuidedProceduresRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getGuidedProcedures(requestParameters?: GetGuidedProceduresRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/smguidedprocedures`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the smrt view guidedprocedures\\' list history.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGuidedProceduresHistory(requestParameters?: GetGuidedProceduresHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGuidedProceduresHistory(requestParameters?: GetGuidedProceduresHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getGuidedProceduresHistory(requestParameters?: GetGuidedProceduresHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getGuidedProceduresHistory(requestParameters?: GetGuidedProceduresHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/smhistguidedprocedures`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get all the history of choosen user\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getHistoryListOfUser(requestParameters: GetHistoryListOfUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getHistoryListOfUser(requestParameters: GetHistoryListOfUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getHistoryListOfUser(requestParameters: GetHistoryListOfUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getHistoryListOfUser(requestParameters: GetHistoryListOfUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getHistoryListOfUser.');\n }\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getHistoryListOfUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dashboard/history/share/user`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get data to load homepage\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getHomepageData(requestParameters?: GetHomepageDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getHomepageData(requestParameters?: GetHomepageDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getHomepageData(requestParameters?: GetHomepageDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getHomepageData(requestParameters?: GetHomepageDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/homepage/data`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get user\\'s languages.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLanguages(requestParameters: GetLanguagesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLanguages(requestParameters: GetLanguagesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getLanguages(requestParameters: GetLanguagesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getLanguages(requestParameters: GetLanguagesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/languages`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the model history list\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getModelHistory(requestParameters?: GetModelHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getModelHistory(requestParameters?: GetModelHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getModelHistory(requestParameters?: GetModelHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getModelHistory(requestParameters?: GetModelHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/history/models`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the model history list (to be used when the brand ice code is not in the token)\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getModelHistoryByBrand(requestParameters: GetModelHistoryByBrandRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getModelHistoryByBrand(requestParameters: GetModelHistoryByBrandRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getModelHistoryByBrand(requestParameters: GetModelHistoryByBrandRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getModelHistoryByBrand(requestParameters: GetModelHistoryByBrandRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getModelHistoryByBrand.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/history/models/${encodeURIComponent(String(brandIceCode))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get modules available for the dealer.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getModules(requestParameters?: GetModulesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getModules(requestParameters?: GetModulesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getModules(requestParameters?: GetModulesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getModules(requestParameters?: GetModulesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/modules`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the PIN history list\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPinHistory(requestParameters?: GetPinHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPinHistory(requestParameters?: GetPinHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPinHistory(requestParameters?: GetPinHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPinHistory(requestParameters?: GetPinHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/history/pin`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the PIN history list (to be used when the brand ice code is not in the token)\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPinHistoryByBrand(requestParameters: GetPinHistoryByBrandRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPinHistoryByBrand(requestParameters: GetPinHistoryByBrandRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPinHistoryByBrand(requestParameters: GetPinHistoryByBrandRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPinHistoryByBrand(requestParameters: GetPinHistoryByBrandRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getPinHistoryByBrand.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/history/pin/${encodeURIComponent(String(brandIceCode))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get questions and answers for quickclose alert and failure modes based on alertId/instanceId\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getQuickCloseFormTree(requestParameters: GetQuickCloseFormTreeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getQuickCloseFormTree(requestParameters: GetQuickCloseFormTreeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getQuickCloseFormTree(requestParameters: GetQuickCloseFormTreeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getQuickCloseFormTree(requestParameters: GetQuickCloseFormTreeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const alertId = requestParameters.alertId;\n const instanceId = requestParameters.instanceId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (alertId !== undefined && alertId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n alertId, 'alertId');\n }\n if (instanceId !== undefined && instanceId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n instanceId, 'instanceId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/quickclosealert/formtree`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get transaction status from SDP Azure Service Bus\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRemoteDisplayConnection(requestParameters: GetRemoteDisplayConnectionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getRemoteDisplayConnection(requestParameters: GetRemoteDisplayConnectionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRemoteDisplayConnection(requestParameters: GetRemoteDisplayConnectionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRemoteDisplayConnection(requestParameters: GetRemoteDisplayConnectionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const transactionId = requestParameters.transactionId;\n if (transactionId === null || transactionId === undefined) {\n throw new Error('Required parameter transactionId was null or undefined when calling getRemoteDisplayConnection.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/remote-display-view/connection/${encodeURIComponent(String(transactionId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get fault code\\'s smartview.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSVFaultCodes(requestParameters?: GetSVFaultCodesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSVFaultCodes(requestParameters?: GetSVFaultCodesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSVFaultCodes(requestParameters?: GetSVFaultCodesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSVFaultCodes(requestParameters?: GetSVFaultCodesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/sv-fault-codes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get pip\\'s smartview.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSVPips(requestParameters?: GetSVPipsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSVPips(requestParameters?: GetSVPipsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSVPips(requestParameters?: GetSVPipsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSVPips(requestParameters?: GetSVPipsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sv-pips`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get transactionId from SDP Azure Service Bus\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSdpTransactionId(requestParameters: GetSdpTransactionIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSdpTransactionId(requestParameters: GetSdpTransactionIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSdpTransactionId(requestParameters: GetSdpTransactionIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSdpTransactionId(requestParameters: GetSdpTransactionIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getSdpTransactionId.');\n }\n const event = requestParameters.event;\n if (event === null || event === undefined) {\n throw new Error('Required parameter event was null or undefined when calling getSdpTransactionId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (event !== undefined && event !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n event, 'event');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/remote-display-view/transaction-id/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the Search history list\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSearchHistory(requestParameters?: GetSearchHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSearchHistory(requestParameters?: GetSearchHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSearchHistory(requestParameters?: GetSearchHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSearchHistory(requestParameters?: GetSearchHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/history/search`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the search history list (to be used when the brand ice code is not in the token)\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSearchHistoryByBrand(requestParameters: GetSearchHistoryByBrandRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSearchHistoryByBrand(requestParameters: GetSearchHistoryByBrandRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSearchHistoryByBrand(requestParameters: GetSearchHistoryByBrandRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSearchHistoryByBrand(requestParameters: GetSearchHistoryByBrandRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getSearchHistoryByBrand.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/history/search/${encodeURIComponent(String(brandIceCode))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list of all available markets. Only available as an Internal user.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTIDBMarkets(requestParameters?: GetTIDBMarketsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTIDBMarkets(requestParameters?: GetTIDBMarketsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTIDBMarkets(requestParameters?: GetTIDBMarketsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTIDBMarkets(requestParameters?: GetTIDBMarketsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/markets`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get dashboard teaser and pop-in alert\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTeaserAndPopinAlert(requestParameters: GetTeaserAndPopinAlertRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getTeaserAndPopinAlert(requestParameters: GetTeaserAndPopinAlertRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTeaserAndPopinAlert(requestParameters: GetTeaserAndPopinAlertRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTeaserAndPopinAlert(requestParameters: GetTeaserAndPopinAlertRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getTeaserAndPopinAlert.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dashboard/teaser-popin`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get list of tutorial videos for maintenance plan\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTutorialVideoMpPath(requestParameters: GetTutorialVideoMpPathRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTutorialVideoMpPath(requestParameters: GetTutorialVideoMpPathRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTutorialVideoMpPath(requestParameters: GetTutorialVideoMpPathRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTutorialVideoMpPath(requestParameters: GetTutorialVideoMpPathRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getTutorialVideoMpPath.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/tutorial/videomp`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get list of tutorial videos\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTutorialVideoPath(requestParameters: GetTutorialVideoPathRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTutorialVideoPath(requestParameters: GetTutorialVideoPathRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTutorialVideoPath(requestParameters: GetTutorialVideoPathRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTutorialVideoPath(requestParameters: GetTutorialVideoPathRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getTutorialVideoPath.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandIceCode !== undefined && brandIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandIceCode, 'brandIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/tutorial/video`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get user preferences.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserPrefs(requestParameters?: GetUserPrefsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserPrefs(requestParameters?: GetUserPrefsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserPrefs(requestParameters?: GetUserPrefsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserPrefs(requestParameters?: GetUserPrefsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/userprefs`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get PIP status.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public pipStatus(requestParameters: PipStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public pipStatus(requestParameters: PipStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public pipStatus(requestParameters: PipStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public pipStatus(requestParameters: PipStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuIds = requestParameters.iuIds;\n const vin = requestParameters.vin;\n const docIfsId = requestParameters.docIfsId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuIds !== undefined && iuIds !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuIds, 'iuIds');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (docIfsId !== undefined && docIfsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docIfsId, 'docIfsId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/executed-pip/pipstatus`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * the user has open the alert, save the info in db\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public putTrackingAlert(requestParameters: PutTrackingAlertRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public putTrackingAlert(requestParameters: PutTrackingAlertRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public putTrackingAlert(requestParameters: PutTrackingAlertRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public putTrackingAlert(requestParameters: PutTrackingAlertRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling putTrackingAlert.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/trackingalert/${encodeURIComponent(String(id))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Save and close alert with quick close form.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveQuickCloseAlert(requestParameters: SaveQuickCloseAlertRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveQuickCloseAlert(requestParameters: SaveQuickCloseAlertRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveQuickCloseAlert(requestParameters: SaveQuickCloseAlertRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveQuickCloseAlert(requestParameters: SaveQuickCloseAlertRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const quickCloseAlertFormResults = requestParameters.quickCloseAlertFormResults;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/quickclosealert/close`,\n quickCloseAlertFormResults,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search by BM\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchByBM(requestParameters: SearchByBMRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchByBM(requestParameters: SearchByBMRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByBM(requestParameters: SearchByBMRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByBM(requestParameters: SearchByBMRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchByTTBMParams = requestParameters.searchByTTBMParams;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/searchByBM`,\n searchByTTBMParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search by chassis\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchByChassis(requestParameters: SearchByChassisRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchByChassis(requestParameters: SearchByChassisRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByChassis(requestParameters: SearchByChassisRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByChassis(requestParameters: SearchByChassisRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchByVinParams = requestParameters.searchByVinParams;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/searchByChassis`,\n searchByVinParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search by PartNumber\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchByPartNumber(requestParameters: SearchByPartNumberRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchByPartNumber(requestParameters: SearchByPartNumberRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByPartNumber(requestParameters: SearchByPartNumberRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByPartNumber(requestParameters: SearchByPartNumberRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchByPartNumberParams = requestParameters.searchByPartNumberParams;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/searchByPartNumber`,\n searchByPartNumberParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search by plate\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchByPlate(requestParameters: SearchByPlateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchByPlate(requestParameters: SearchByPlateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByPlate(requestParameters: SearchByPlateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByPlate(requestParameters: SearchByPlateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchByPlateParams = requestParameters.searchByPlateParams;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/searchByPlate`,\n searchByPlateParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search by TT\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchByTT(requestParameters: SearchByTTRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchByTT(requestParameters: SearchByTTRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByTT(requestParameters: SearchByTTRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByTT(requestParameters: SearchByTTRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchByTTBMParams = requestParameters.searchByTTBMParams;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/searchByTT`,\n searchByTTBMParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search by VCB\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchByVCB(requestParameters: SearchByVCBRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchByVCB(requestParameters: SearchByVCBRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByVCB(requestParameters: SearchByVCBRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByVCB(requestParameters: SearchByVCBRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchByVCBParams = requestParameters.searchByVCBParams;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/searchByVCB`,\n searchByVCBParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search by vin\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchByVin(requestParameters: SearchByVinRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchByVin(requestParameters: SearchByVinRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByVin(requestParameters: SearchByVinRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByVin(requestParameters: SearchByVinRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const isInteractive = requestParameters.isInteractive;\n const searchByVinParams = requestParameters.searchByVinParams;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isInteractive !== undefined && isInteractive !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isInteractive, 'isInteractive');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/searchByVin`,\n searchByVinParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search by vin for My Brand\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchByVinMyBrand(requestParameters: SearchByVinMyBrandRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public searchByVinMyBrand(requestParameters: SearchByVinMyBrandRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByVinMyBrand(requestParameters: SearchByVinMyBrandRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchByVinMyBrand(requestParameters: SearchByVinMyBrandRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const searchByVinParamsMyBrand = requestParameters.searchByVinParamsMyBrand;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/searchByVinMyBrand`,\n searchByVinParamsMyBrand,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set Language.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setLanguage(requestParameters: SetLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setLanguage(requestParameters: SetLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setLanguage(requestParameters: SetLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setLanguage(requestParameters: SetLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const language = requestParameters.language;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/language`,\n language,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Change user shared history setting\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public shareHistory(requestParameters: ShareHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public shareHistory(requestParameters: ShareHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public shareHistory(requestParameters: ShareHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public shareHistory(requestParameters: ShareHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const share = requestParameters.share;\n if (share === null || share === undefined) {\n throw new Error('Required parameter share was null or undefined when calling shareHistory.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (share !== undefined && share !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n share, 'share');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/dashboard/history/share`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Save and update the tracking of jump between my fleet and smartview\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public trackingJumpMyfleetSmartview(requestParameters: TrackingJumpMyfleetSmartviewRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public trackingJumpMyfleetSmartview(requestParameters: TrackingJumpMyfleetSmartviewRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public trackingJumpMyfleetSmartview(requestParameters: TrackingJumpMyfleetSmartviewRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public trackingJumpMyfleetSmartview(requestParameters: TrackingJumpMyfleetSmartviewRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const monJumpFleetSmartviewDto = requestParameters.monJumpFleetSmartviewDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/trackingJumpFleetSmartview/insertUpdateTracking`,\n monJumpFleetSmartviewDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update PIP.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public update(requestParameters: UpdateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public update(requestParameters: UpdateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public update(requestParameters: UpdateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public update(requestParameters: UpdateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuIds = requestParameters.iuIds;\n const pin = requestParameters.pin;\n const pipCode = requestParameters.pipCode;\n const status = requestParameters.status;\n const docIfsId = requestParameters.docIfsId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuIds !== undefined && iuIds !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuIds, 'iuIds');\n }\n if (pin !== undefined && pin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pin, 'pin');\n }\n if (pipCode !== undefined && pipCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pipCode, 'pipCode');\n }\n if (status !== undefined && status !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n status, 'status');\n }\n if (docIfsId !== undefined && docIfsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docIfsId, 'docIfsId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/executed-pip/update`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set market country.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateContext(requestParameters: UpdateContextRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateContext(requestParameters: UpdateContextRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateContext(requestParameters: UpdateContextRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateContext(requestParameters: UpdateContextRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const marketContext = requestParameters.marketContext;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/context`,\n marketContext,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update user preferences.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateUserPrefs(requestParameters: UpdateUserPrefsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateUserPrefs(requestParameters: UpdateUserPrefsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateUserPrefs(requestParameters: UpdateUserPrefsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateUserPrefs(requestParameters: UpdateUserPrefsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const prefKey = requestParameters.prefKey;\n if (prefKey === null || prefKey === undefined) {\n throw new Error('Required parameter prefKey was null or undefined when calling updateUserPrefs.');\n }\n const prefValue = requestParameters.prefValue;\n if (prefValue === null || prefValue === undefined) {\n throw new Error('Required parameter prefValue was null or undefined when calling updateUserPrefs.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (prefKey !== undefined && prefKey !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n prefKey, 'prefKey');\n }\n if (prefValue !== undefined && prefValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n prefValue, 'prefValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/userprefs`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update user preferences.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateUserPrefsList(requestParameters: UpdateUserPrefsListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateUserPrefsList(requestParameters: UpdateUserPrefsListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateUserPrefsList(requestParameters: UpdateUserPrefsListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateUserPrefsList(requestParameters: UpdateUserPrefsListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userPrefKeyValueDto = requestParameters.userPrefKeyValueDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/userprefslist`,\n userPrefKeyValueDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetHealthRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HealthService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get etim-api health check result\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getHealth(requestParameters?: GetHealthRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getHealth(requestParameters?: GetHealthRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getHealth(requestParameters?: GetHealthRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getHealth(requestParameters?: GetHealthRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/health`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetLocationImageRequestParams {\n familyIceCode: string;\n groupIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetProductGraphicRequestParams {\n iceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSmDefectImageRequestParams {\n familyIceCode: string;\n groupIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetimageRequestParams {\n type: string;\n image: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetimgRequestParams {\n filename: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImageService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get an image (icon, only for group and subgroup) linked to a given location and a given product.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLocationImage(requestParameters: GetLocationImageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable;\n public getLocationImage(requestParameters: GetLocationImageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable>;\n public getLocationImage(requestParameters: GetLocationImageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable>;\n public getLocationImage(requestParameters: GetLocationImageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable {\n const familyIceCode = requestParameters.familyIceCode;\n if (familyIceCode === null || familyIceCode === undefined) {\n throw new Error('Required parameter familyIceCode was null or undefined when calling getLocationImage.');\n }\n const groupIceCode = requestParameters.groupIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (familyIceCode !== undefined && familyIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n familyIceCode, 'familyIceCode');\n }\n if (groupIceCode !== undefined && groupIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n groupIceCode, 'groupIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'image/svg+xml',\n 'image/png',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/image/location`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get an image (icon, only for group and subgroup) linked to a given product.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getProductGraphic(requestParameters: GetProductGraphicRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable;\n public getProductGraphic(requestParameters: GetProductGraphicRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable>;\n public getProductGraphic(requestParameters: GetProductGraphicRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable>;\n public getProductGraphic(requestParameters: GetProductGraphicRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable {\n const iceCode = requestParameters.iceCode;\n if (iceCode === null || iceCode === undefined) {\n throw new Error('Required parameter iceCode was null or undefined when calling getProductGraphic.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iceCode !== undefined && iceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iceCode, 'iceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'image/svg+xml',\n 'image/png',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/image/product`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get a defect image linked to a given location defect and a given product.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSmDefectImage(requestParameters: GetSmDefectImageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'application/json'}): Observable;\n public getSmDefectImage(requestParameters: GetSmDefectImageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'application/json'}): Observable>;\n public getSmDefectImage(requestParameters: GetSmDefectImageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'application/json'}): Observable>;\n public getSmDefectImage(requestParameters: GetSmDefectImageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'image/svg+xml' | 'application/json'}): Observable {\n const familyIceCode = requestParameters.familyIceCode;\n if (familyIceCode === null || familyIceCode === undefined) {\n throw new Error('Required parameter familyIceCode was null or undefined when calling getSmDefectImage.');\n }\n const groupIceCode = requestParameters.groupIceCode;\n if (groupIceCode === null || groupIceCode === undefined) {\n throw new Error('Required parameter groupIceCode was null or undefined when calling getSmDefectImage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (familyIceCode !== undefined && familyIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n familyIceCode, 'familyIceCode');\n }\n if (groupIceCode !== undefined && groupIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n groupIceCode, 'groupIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'image/svg+xml',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/sm/image/defect`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get an image from its type and ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getimage(requestParameters: GetimageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable;\n public getimage(requestParameters: GetimageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable>;\n public getimage(requestParameters: GetimageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable>;\n public getimage(requestParameters: GetimageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'image/svg+xml' | 'image/png' | 'application/json'}): Observable {\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling getimage.');\n }\n const image = requestParameters.image;\n if (image === null || image === undefined) {\n throw new Error('Required parameter image was null or undefined when calling getimage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'image/svg+xml',\n 'image/png',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/image/${encodeURIComponent(String(type))}/${encodeURIComponent(String(image))}`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get an image for KA.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getimg(requestParameters: GetimgRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/png' | 'application/json'}): Observable;\n public getimg(requestParameters: GetimgRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/png' | 'application/json'}): Observable>;\n public getimg(requestParameters: GetimgRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'image/png' | 'application/json'}): Observable>;\n public getimg(requestParameters: GetimgRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'image/png' | 'application/json'}): Observable {\n const filename = requestParameters.filename;\n if (filename === null || filename === undefined) {\n throw new Error('Required parameter filename was null or undefined when calling getimg.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'image/png',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/km/images/${encodeURIComponent(String(filename))}`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { InteractiveData } from '../model/models';\nimport { RequestInteractiveIU } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface PostInitStepsRequestParams {\n requestInteractiveIU?: RequestInteractiveIU;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractiveInitStepsService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get saved data attached from an interactive procedure.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public postInitSteps(requestParameters: PostInitStepsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public postInitSteps(requestParameters: PostInitStepsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public postInitSteps(requestParameters: PostInitStepsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public postInitSteps(requestParameters: PostInitStepsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const requestInteractiveIU = requestParameters.requestInteractiveIU;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/initsteps`,\n requestInteractiveIU,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { SaveMetaDatas } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SaveMetadatasRequestParams {\n saveMetaDatas?: SaveMetaDatas;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractivePdfService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * post a request for generating PDF.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveMetadatas(requestParameters: SaveMetadatasRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveMetadatas(requestParameters: SaveMetadatasRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveMetadatas(requestParameters: SaveMetadatasRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveMetadatas(requestParameters: SaveMetadatasRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const saveMetaDatas = requestParameters.saveMetaDatas;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/savemetadatas`,\n saveMetaDatas,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CheckIuExistForLanguageRequestParams {\n /** language of the iu */\n lang: string;\n /** the id of the iu */\n iuID: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CheckIuXmlFileExistRequestParams {\n /** language of the iu */\n lang: string;\n /** the id of the iu */\n iuID: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListLanguagesRequestParams {\n /** the id of the iu */\n iuID?: string;\n /** the id of the document */\n docIfsid?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LangService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * allows to check if the Iu Xml exists in a special language in database\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkIuExistForLanguage(requestParameters: CheckIuExistForLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public checkIuExistForLanguage(requestParameters: CheckIuExistForLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkIuExistForLanguage(requestParameters: CheckIuExistForLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkIuExistForLanguage(requestParameters: CheckIuExistForLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const lang = requestParameters.lang;\n if (lang === null || lang === undefined) {\n throw new Error('Required parameter lang was null or undefined when calling checkIuExistForLanguage.');\n }\n const iuID = requestParameters.iuID;\n if (iuID === null || iuID === undefined) {\n throw new Error('Required parameter iuID was null or undefined when calling checkIuExistForLanguage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (lang !== undefined && lang !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n lang, 'lang');\n }\n if (iuID !== undefined && iuID !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuID, 'iuID');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/iuExistForLanguage`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * allows to check if the Iu Xml File exists in a special language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkIuXmlFileExist(requestParameters: CheckIuXmlFileExistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public checkIuXmlFileExist(requestParameters: CheckIuXmlFileExistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkIuXmlFileExist(requestParameters: CheckIuXmlFileExistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkIuXmlFileExist(requestParameters: CheckIuXmlFileExistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const lang = requestParameters.lang;\n if (lang === null || lang === undefined) {\n throw new Error('Required parameter lang was null or undefined when calling checkIuXmlFileExist.');\n }\n const iuID = requestParameters.iuID;\n if (iuID === null || iuID === undefined) {\n throw new Error('Required parameter iuID was null or undefined when calling checkIuXmlFileExist.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (lang !== undefined && lang !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n lang, 'lang');\n }\n if (iuID !== undefined && iuID !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuID, 'iuID');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/checkIuXmlFileExist`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * find the list of languages to change the iu doc language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListLanguages(requestParameters: GetListLanguagesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListLanguages(requestParameters: GetListLanguagesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListLanguages(requestParameters: GetListLanguagesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListLanguages(requestParameters: GetListLanguagesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuID = requestParameters.iuID;\n const docIfsid = requestParameters.docIfsid;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuID !== undefined && iuID !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuID, 'iuID');\n }\n if (docIfsid !== undefined && docIfsid !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docIfsid, 'docIfsid');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/listLanguages`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { LocalNoteResponseDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreatenoteRequestParams {\n /** the id of the IU */\n iuId: string;\n /** the content of the IU */\n content: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetallnotesRequestParams {\n /** the ids of the IUs */\n iuIds: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetnoteRequestParams {\n /** the id of the IU */\n iuId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemovenoteRequestParams {\n /** the id of the IU */\n iuId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdatenoteRequestParams {\n /** the id of the IU */\n iuId: string;\n /** the content of the IU */\n content: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalnoteService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * create local note\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createnote(requestParameters: CreatenoteRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createnote(requestParameters: CreatenoteRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createnote(requestParameters: CreatenoteRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createnote(requestParameters: CreatenoteRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling createnote.');\n }\n const content = requestParameters.content;\n if (content === null || content === undefined) {\n throw new Error('Required parameter content was null or undefined when calling createnote.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (content !== undefined && content !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n content, 'content');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/localNote/createnote`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get all notes\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getallnotes(requestParameters: GetallnotesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getallnotes(requestParameters: GetallnotesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getallnotes(requestParameters: GetallnotesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getallnotes(requestParameters: GetallnotesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuIds = requestParameters.iuIds;\n if (iuIds === null || iuIds === undefined) {\n throw new Error('Required parameter iuIds was null or undefined when calling getallnotes.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuIds !== undefined && iuIds !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuIds, 'iuIds');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/localNote/getallnotes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get note\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getnote(requestParameters: GetnoteRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getnote(requestParameters: GetnoteRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getnote(requestParameters: GetnoteRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getnote(requestParameters: GetnoteRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling getnote.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/localNote/getnote`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * delete the local note\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removenote(requestParameters: RemovenoteRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public removenote(requestParameters: RemovenoteRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public removenote(requestParameters: RemovenoteRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public removenote(requestParameters: RemovenoteRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling removenote.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/localNote/removenote`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * update the local note\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatenote(requestParameters: UpdatenoteRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updatenote(requestParameters: UpdatenoteRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatenote(requestParameters: UpdatenoteRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatenote(requestParameters: UpdatenoteRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling updatenote.');\n }\n const content = requestParameters.content;\n if (content === null || content === undefined) {\n throw new Error('Required parameter content was null or undefined when calling updatenote.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (content !== undefined && content !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n content, 'content');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/localNote/updatenote`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { FailureModeDetails } from '../model/models';\nimport { ModularDiagnosticInteractiveData } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetFailureModeListRequestParams {\n /** Modular diagnostic IU ID. */\n iuId: string;\n /** Modular diagnostic IU troubleshooting ID. */\n interactiveId?: number;\n /** Is the IU displayed in flat mode? */\n flatMode?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RestartAllModularDiagProcedureRequestParams {\n /** Modular diagnostic IU ID. */\n iuId: string;\n modularDiagnosticInteractiveData?: ModularDiagnosticInteractiveData;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModularDiagnosticService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the list of failure mode IU details for a given Modular diagnostic IU.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFailureModeList(requestParameters: GetFailureModeListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFailureModeList(requestParameters: GetFailureModeListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFailureModeList(requestParameters: GetFailureModeListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFailureModeList(requestParameters: GetFailureModeListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling getFailureModeList.');\n }\n const interactiveId = requestParameters.interactiveId;\n const flatMode = requestParameters.flatMode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (interactiveId !== undefined && interactiveId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n interactiveId, 'interactiveId');\n }\n if (flatMode !== undefined && flatMode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n flatMode, 'flatMode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/modular-diagnostic-ius/${encodeURIComponent(String(iuId))}/list`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list of failure mode IU details for a given Modular diagnostic IU.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public restartAllModularDiagProcedure(requestParameters: RestartAllModularDiagProcedureRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public restartAllModularDiagProcedure(requestParameters: RestartAllModularDiagProcedureRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public restartAllModularDiagProcedure(requestParameters: RestartAllModularDiagProcedureRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public restartAllModularDiagProcedure(requestParameters: RestartAllModularDiagProcedureRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling restartAllModularDiagProcedure.');\n }\n const modularDiagnosticInteractiveData = requestParameters.modularDiagnosticInteractiveData;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/modular-diagnostic-ius/${encodeURIComponent(String(iuId))}/restart`,\n modularDiagnosticInteractiveData,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { RatingResponseDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddRequestParams {\n /** the docid of the iu */\n docId: string;\n /** the doctype of the iu */\n docType: string;\n /** the rating for the iu */\n rating: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface InitRequestParams {\n /** the docid of the iu */\n docId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RatingService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * add rating\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public add(requestParameters: AddRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public add(requestParameters: AddRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public add(requestParameters: AddRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public add(requestParameters: AddRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling add.');\n }\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling add.');\n }\n const rating = requestParameters.rating;\n if (rating === null || rating === undefined) {\n throw new Error('Required parameter rating was null or undefined when calling add.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (docId !== undefined && docId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docId, 'docId');\n }\n if (docType !== undefined && docType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docType, 'docType');\n }\n if (rating !== undefined && rating !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n rating, 'rating');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/rating/add`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * add rating\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public init(requestParameters: InitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public init(requestParameters: InitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public init(requestParameters: InitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public init(requestParameters: InitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling init.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (docId !== undefined && docId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docId, 'docId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/rating/init`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ArchiveReportFileResult } from '../model/models';\nimport { ArchiveReportResult } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CheckReportAvailableRequestParams {\n token: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetArchiveReportFileRequestParams {\n /** name of the pdf to download */\n fileName: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetArchiveReportListRequestParams {\n reportType?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatusMhrRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RequestMachineCareReportRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RequestMachineOperatorReportSyncRequestParams {\n startDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RequestReportGenerationAsyncRequestParams {\n reportType: string;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReportService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Check if the report requested is available.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkReportAvailable(requestParameters: CheckReportAvailableRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public checkReportAvailable(requestParameters: CheckReportAvailableRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkReportAvailable(requestParameters: CheckReportAvailableRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkReportAvailable(requestParameters: CheckReportAvailableRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const token = requestParameters.token;\n if (token === null || token === undefined) {\n throw new Error('Required parameter token was null or undefined when calling checkReportAvailable.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (token !== undefined && token !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n token, 'token');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/checkReportAvailable`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Request the archive reports file.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getArchiveReportFile(requestParameters: GetArchiveReportFileRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getArchiveReportFile(requestParameters: GetArchiveReportFileRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getArchiveReportFile(requestParameters: GetArchiveReportFileRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getArchiveReportFile(requestParameters: GetArchiveReportFileRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fileName = requestParameters.fileName;\n if (fileName === null || fileName === undefined) {\n throw new Error('Required parameter fileName was null or undefined when calling getArchiveReportFile.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fileName !== undefined && fileName !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fileName, 'fileName');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getArchiveReportFile`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Request the archive reports list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getArchiveReportList(requestParameters: GetArchiveReportListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getArchiveReportList(requestParameters: GetArchiveReportListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getArchiveReportList(requestParameters: GetArchiveReportListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getArchiveReportList(requestParameters: GetArchiveReportListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const reportType = requestParameters.reportType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (reportType !== undefined && reportType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n reportType, 'reportType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getArchiveReportList`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the service status of machine history report.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatusMhr(requestParameters?: GetStatusMhrRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getStatusMhr(requestParameters?: GetStatusMhrRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatusMhr(requestParameters?: GetStatusMhrRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatusMhr(requestParameters?: GetStatusMhrRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getStatusMhr`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Request the generation of the machine care report.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public requestMachineCareReport(requestParameters?: RequestMachineCareReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public requestMachineCareReport(requestParameters?: RequestMachineCareReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public requestMachineCareReport(requestParameters?: RequestMachineCareReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public requestMachineCareReport(requestParameters?: RequestMachineCareReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/requestMachineCareReport`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Request the generation of the machine operator report.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public requestMachineOperatorReportSync(requestParameters: RequestMachineOperatorReportSyncRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public requestMachineOperatorReportSync(requestParameters: RequestMachineOperatorReportSyncRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public requestMachineOperatorReportSync(requestParameters: RequestMachineOperatorReportSyncRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public requestMachineOperatorReportSync(requestParameters: RequestMachineOperatorReportSyncRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/requestMachineOperatorReportSync`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Request the generation of the vehicle report.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public requestReportGenerationAsync(requestParameters: RequestReportGenerationAsyncRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public requestReportGenerationAsync(requestParameters: RequestReportGenerationAsyncRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public requestReportGenerationAsync(requestParameters: RequestReportGenerationAsyncRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public requestReportGenerationAsync(requestParameters: RequestReportGenerationAsyncRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const reportType = requestParameters.reportType;\n if (reportType === null || reportType === undefined) {\n throw new Error('Required parameter reportType was null or undefined when calling requestReportGenerationAsync.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (reportType !== undefined && reportType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n reportType, 'reportType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/requestReportGenerationAsync`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { InteractiveData } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SavestepsRequestParams {\n interactiveData?: InteractiveData;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SaveInteractiveStepsService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Save an interactivtive procedure.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public savesteps(requestParameters: SavestepsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public savesteps(requestParameters: SavestepsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savesteps(requestParameters: SavestepsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savesteps(requestParameters: SavestepsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const interactiveData = requestParameters.interactiveData;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/savesteps`,\n interactiveData,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Steps } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SaveSmartWarrantyDataRequestParams {\n steps?: Steps;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SaveSmartWarrantyCodesService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Saved Smary Warranty data attached from an interactive procedure.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveSmartWarrantyData(requestParameters: SaveSmartWarrantyDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveSmartWarrantyData(requestParameters: SaveSmartWarrantyDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveSmartWarrantyData(requestParameters: SaveSmartWarrantyDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveSmartWarrantyData(requestParameters: SaveSmartWarrantyDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const steps = requestParameters.steps;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/saveSmartWarrantyData`,\n steps,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Brand } from '../model/models';\nimport { ServiceNotificationDetails } from '../model/models';\nimport { ServiceNotificationLabels } from '../model/models';\nimport { ServiceNotificationResult } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetServiceNotificationRequestParams {\n /** current brand ice code of the user */\n icecode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetServiceNotificationExcelRequestParams {\n /** Contains the needed labels to generate the excel file in all languages */\n serviceNotificationLabels: ServiceNotificationLabels;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetServiceNotificationTreeRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateServiceNotificationRequestParams {\n /** The preferences to update */\n serviceNotificationDetails: ServiceNotificationDetails;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ServicenotificationService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get service notification.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getServiceNotification(requestParameters: GetServiceNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getServiceNotification(requestParameters: GetServiceNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getServiceNotification(requestParameters: GetServiceNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getServiceNotification(requestParameters: GetServiceNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const icecode = requestParameters.icecode;\n if (icecode === null || icecode === undefined) {\n throw new Error('Required parameter icecode was null or undefined when calling getServiceNotification.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (icecode !== undefined && icecode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n icecode, 'icecode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/service-notification/get`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Generate a excel export of service notification\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getServiceNotificationExcel(requestParameters: GetServiceNotificationExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream' | 'application/json'}): Observable;\n public getServiceNotificationExcel(requestParameters: GetServiceNotificationExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream' | 'application/json'}): Observable>;\n public getServiceNotificationExcel(requestParameters: GetServiceNotificationExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/octet-stream' | 'application/json'}): Observable>;\n public getServiceNotificationExcel(requestParameters: GetServiceNotificationExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/octet-stream' | 'application/json'}): Observable {\n const serviceNotificationLabels = requestParameters.serviceNotificationLabels;\n if (serviceNotificationLabels === null || serviceNotificationLabels === undefined) {\n throw new Error('Required parameter serviceNotificationLabels was null or undefined when calling getServiceNotificationExcel.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/octet-stream',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/service-notification/export`,\n serviceNotificationLabels,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get service notification tree.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getServiceNotificationTree(requestParameters?: GetServiceNotificationTreeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getServiceNotificationTree(requestParameters?: GetServiceNotificationTreeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getServiceNotificationTree(requestParameters?: GetServiceNotificationTreeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getServiceNotificationTree(requestParameters?: GetServiceNotificationTreeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/service-notification/tree`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update service notification.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateServiceNotification(requestParameters: UpdateServiceNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateServiceNotification(requestParameters: UpdateServiceNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateServiceNotification(requestParameters: UpdateServiceNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateServiceNotification(requestParameters: UpdateServiceNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const serviceNotificationDetails = requestParameters.serviceNotificationDetails;\n if (serviceNotificationDetails === null || serviceNotificationDetails === undefined) {\n throw new Error('Required parameter serviceNotificationDetails was null or undefined when calling updateServiceNotification.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/service-notification/update`,\n serviceNotificationDetails,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { SmartWarrantyGroupData } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetSmartWarrantyDataRequestParams {\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SmartWarrantyService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get smart warranty data.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSmartWarrantyData(requestParameters: GetSmartWarrantyDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSmartWarrantyData(requestParameters: GetSmartWarrantyDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSmartWarrantyData(requestParameters: GetSmartWarrantyDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSmartWarrantyData(requestParameters: GetSmartWarrantyDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getSmartWarrantyData.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getSmartWarrantyData/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CalculateClaimCodeRequestParams {\n id: number;\n /** list of warranty id */\n warrantyIds?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SmartWarrantyCodeService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Calculate Claim code.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public calculateClaimCode(requestParameters: CalculateClaimCodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public calculateClaimCode(requestParameters: CalculateClaimCodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public calculateClaimCode(requestParameters: CalculateClaimCodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public calculateClaimCode(requestParameters: CalculateClaimCodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling calculateClaimCode.');\n }\n const warrantyIds = requestParameters.warrantyIds;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (warrantyIds !== undefined && warrantyIds !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n warrantyIds, 'warrantyIds');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/calculateClaimCode/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ApplicabilityResult } from '../model/models';\nimport { ElementSearchResult } from '../model/models';\nimport { SpecialToolView } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetSpecialToolApplicabilitiesRequestParams {\n /** the reference of the special tool */\n toolRef: string;\n /** true if opening from the dashboard (disables history). */\n fromDashboard?: boolean;\n /** used by dashboard for overview */\n byProductIceCode?: string;\n /** used by dashboard for overview */\n byEngineIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSpecialToolWhereUsedRequestParams {\n /** the reference of the special tool */\n toolRef: string;\n /** true if opening from the dashboard (disables history). */\n fromDashboard?: boolean;\n /** used by dashboard for overview */\n byProductIceCode?: string;\n /** used by dashboard for overview */\n byEngineIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSpecialToolsForIuRequestParams {\n iuId: string;\n iuIce: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpecialToolsService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * find applicabilities of the special tool\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSpecialToolApplicabilities(requestParameters: GetSpecialToolApplicabilitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSpecialToolApplicabilities(requestParameters: GetSpecialToolApplicabilitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSpecialToolApplicabilities(requestParameters: GetSpecialToolApplicabilitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSpecialToolApplicabilities(requestParameters: GetSpecialToolApplicabilitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const toolRef = requestParameters.toolRef;\n if (toolRef === null || toolRef === undefined) {\n throw new Error('Required parameter toolRef was null or undefined when calling getSpecialToolApplicabilities.');\n }\n const fromDashboard = requestParameters.fromDashboard;\n const byProductIceCode = requestParameters.byProductIceCode;\n const byEngineIceCode = requestParameters.byEngineIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (toolRef !== undefined && toolRef !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toolRef, 'toolRef');\n }\n if (fromDashboard !== undefined && fromDashboard !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDashboard, 'fromDashboard');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n if (byEngineIceCode !== undefined && byEngineIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byEngineIceCode, 'byEngineIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getSpecialToolApplicabilities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * find IUs where the special tool is used\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSpecialToolWhereUsed(requestParameters: GetSpecialToolWhereUsedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSpecialToolWhereUsed(requestParameters: GetSpecialToolWhereUsedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSpecialToolWhereUsed(requestParameters: GetSpecialToolWhereUsedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSpecialToolWhereUsed(requestParameters: GetSpecialToolWhereUsedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const toolRef = requestParameters.toolRef;\n if (toolRef === null || toolRef === undefined) {\n throw new Error('Required parameter toolRef was null or undefined when calling getSpecialToolWhereUsed.');\n }\n const fromDashboard = requestParameters.fromDashboard;\n const byProductIceCode = requestParameters.byProductIceCode;\n const byEngineIceCode = requestParameters.byEngineIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (toolRef !== undefined && toolRef !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toolRef, 'toolRef');\n }\n if (fromDashboard !== undefined && fromDashboard !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDashboard, 'fromDashboard');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n if (byEngineIceCode !== undefined && byEngineIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byEngineIceCode, 'byEngineIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getSpecialToolWhereUsed`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Special Tools for Iu.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSpecialToolsForIu(requestParameters: GetSpecialToolsForIuRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSpecialToolsForIu(requestParameters: GetSpecialToolsForIuRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSpecialToolsForIu(requestParameters: GetSpecialToolsForIuRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSpecialToolsForIu(requestParameters: GetSpecialToolsForIuRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuId = requestParameters.iuId;\n if (iuId === null || iuId === undefined) {\n throw new Error('Required parameter iuId was null or undefined when calling getSpecialToolsForIu.');\n }\n const iuIce = requestParameters.iuIce;\n if (iuIce === null || iuIce === undefined) {\n throw new Error('Required parameter iuIce was null or undefined when calling getSpecialToolsForIu.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (iuId !== undefined && iuId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuId, 'iuId');\n }\n if (iuIce !== undefined && iuIce !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n iuIce, 'iuIce');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/getSpecialToolsForIu`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { InfotypeView } from '../model/models';\nimport { TdsChapter } from '../model/models';\nimport { TdsIu } from '../model/models';\nimport { Url } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAzurePathRequestParams {\n /** document id, example 123456789_123 */\n docId: string;\n /** Device Code */\n device?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListOfTopicsViewForDeviceTDSRequestParams {\n /** om, sg, ai, ii, tr, ... */\n docType: string;\n /** document id, example 123456789_123 */\n docId: string;\n index?: number;\n /** Device Code */\n device?: string;\n /** used by global search */\n byProductIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetListOfTopicsViewForTDSRequestParams {\n /** om, sg, ai, ii, tr, ... */\n docType: string;\n /** document id, example 123456789_123 */\n docId: string;\n /** Device Code */\n device?: string;\n /** used by global search */\n byProductIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSbIusRequestParams {\n /** selected docType */\n docType: string;\n /** selected docId */\n docId: string;\n /** true if opening from the dashboard (disables history). */\n fromDashboard?: boolean;\n /** used by dashboard for overview */\n byProductIceCode?: string;\n /** used by dashboard for overview */\n byEngineIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTdsChapterIusRequestParams {\n /** om, sg, ai, ii, tr, ... */\n docType: string;\n /** document id, example 123456789_123 */\n docId: string;\n /** chapter id, example t21 */\n chapterId: string;\n /** Device Code */\n device?: string;\n /** used by global search */\n byProductIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTdsChaptersRequestParams {\n /** om, sg, ai, ii, tr, ... */\n docType: string;\n /** document id, example 123456789_123 */\n docId: string;\n /** Device Code */\n device?: string;\n /** used by global search */\n byProductIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface InitTdsRequestParams {\n /** om, sg, ai, ii, tr, ... */\n docType: string;\n /** document id, example 123456789_123 */\n docId: string;\n /** Device Code */\n device?: string;\n /** used by global search */\n byProductIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchTdsChapterIusRequestParams {\n /** om, sg, ai, ii, tr, ... */\n docType: string;\n /** document id, example 123456789_123 */\n docId: string;\n /** searched string. */\n searchedText: string;\n /** used by global search */\n byProductIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchTdsChaptersRequestParams {\n /** om, sg, ai, ii, tr, ... */\n docType: string;\n /** document id, example 123456789_123 */\n docId: string;\n /** searched string. */\n searchedText: string;\n /** Device Code */\n device?: string;\n /** used by global search */\n byProductIceCode?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TdsService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * get the azure path\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAzurePath(requestParameters: GetAzurePathRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAzurePath(requestParameters: GetAzurePathRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAzurePath(requestParameters: GetAzurePathRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAzurePath(requestParameters: GetAzurePathRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling getAzurePath.');\n }\n const device = requestParameters.device;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/tds/${encodeURIComponent(String(docId))}/azurePath`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list Of TopicsView For the TDS documents of a product device, given the index of the selected device.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListOfTopicsViewForDeviceTDS(requestParameters: GetListOfTopicsViewForDeviceTDSRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListOfTopicsViewForDeviceTDS(requestParameters: GetListOfTopicsViewForDeviceTDSRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListOfTopicsViewForDeviceTDS(requestParameters: GetListOfTopicsViewForDeviceTDSRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListOfTopicsViewForDeviceTDS(requestParameters: GetListOfTopicsViewForDeviceTDSRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getListOfTopicsViewForDeviceTDS.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling getListOfTopicsViewForDeviceTDS.');\n }\n const index = requestParameters.index;\n const device = requestParameters.device;\n const byProductIceCode = requestParameters.byProductIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (index !== undefined && index !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n index, 'index');\n }\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/tds/${encodeURIComponent(String(docType))}/${encodeURIComponent(String(docId))}/listOfTopicsViewForDevice`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the list Of TopicsView For the TDS documents.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getListOfTopicsViewForTDS(requestParameters: GetListOfTopicsViewForTDSRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getListOfTopicsViewForTDS(requestParameters: GetListOfTopicsViewForTDSRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListOfTopicsViewForTDS(requestParameters: GetListOfTopicsViewForTDSRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getListOfTopicsViewForTDS(requestParameters: GetListOfTopicsViewForTDSRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getListOfTopicsViewForTDS.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling getListOfTopicsViewForTDS.');\n }\n const device = requestParameters.device;\n const byProductIceCode = requestParameters.byProductIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/tds/${encodeURIComponent(String(docType))}/${encodeURIComponent(String(docId))}/listOfTopicsView`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Allows to get the list of ius.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSbIus(requestParameters: GetSbIusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSbIus(requestParameters: GetSbIusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSbIus(requestParameters: GetSbIusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSbIus(requestParameters: GetSbIusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getSbIus.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling getSbIus.');\n }\n const fromDashboard = requestParameters.fromDashboard;\n const byProductIceCode = requestParameters.byProductIceCode;\n const byEngineIceCode = requestParameters.byEngineIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (docType !== undefined && docType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docType, 'docType');\n }\n if (docId !== undefined && docId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n docId, 'docId');\n }\n if (fromDashboard !== undefined && fromDashboard !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDashboard, 'fromDashboard');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n if (byEngineIceCode !== undefined && byEngineIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byEngineIceCode, 'byEngineIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/tds/sb/ius`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the IUs of a chapter given by its chapter id (txx)\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTdsChapterIus(requestParameters: GetTdsChapterIusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTdsChapterIus(requestParameters: GetTdsChapterIusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTdsChapterIus(requestParameters: GetTdsChapterIusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTdsChapterIus(requestParameters: GetTdsChapterIusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getTdsChapterIus.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling getTdsChapterIus.');\n }\n const chapterId = requestParameters.chapterId;\n if (chapterId === null || chapterId === undefined) {\n throw new Error('Required parameter chapterId was null or undefined when calling getTdsChapterIus.');\n }\n const device = requestParameters.device;\n const byProductIceCode = requestParameters.byProductIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/tds/${encodeURIComponent(String(docType))}/${encodeURIComponent(String(docId))}/chapter/${encodeURIComponent(String(chapterId))}/ius`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the tds chapters from cache if set or from server, and set the cache if from server\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTdsChapters(requestParameters: GetTdsChaptersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTdsChapters(requestParameters: GetTdsChaptersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTdsChapters(requestParameters: GetTdsChaptersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTdsChapters(requestParameters: GetTdsChaptersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling getTdsChapters.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling getTdsChapters.');\n }\n const device = requestParameters.device;\n const byProductIceCode = requestParameters.byProductIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/tds/${encodeURIComponent(String(docType))}/${encodeURIComponent(String(docId))}/chapters`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * initialise the tdsTree cache. should be called each time docType or docId is changed before getting tds chapters\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public initTds(requestParameters: InitTdsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public initTds(requestParameters: InitTdsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public initTds(requestParameters: InitTdsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public initTds(requestParameters: InitTdsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling initTds.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling initTds.');\n }\n const device = requestParameters.device;\n const byProductIceCode = requestParameters.byProductIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/tds/${encodeURIComponent(String(docType))}/${encodeURIComponent(String(docId))}/init`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the ius fully matching the string provided\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchTdsChapterIus(requestParameters: SearchTdsChapterIusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchTdsChapterIus(requestParameters: SearchTdsChapterIusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchTdsChapterIus(requestParameters: SearchTdsChapterIusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchTdsChapterIus(requestParameters: SearchTdsChapterIusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling searchTdsChapterIus.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling searchTdsChapterIus.');\n }\n const searchedText = requestParameters.searchedText;\n if (searchedText === null || searchedText === undefined) {\n throw new Error('Required parameter searchedText was null or undefined when calling searchTdsChapterIus.');\n }\n const byProductIceCode = requestParameters.byProductIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (searchedText !== undefined && searchedText !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchedText, 'searchedText');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/tds/${encodeURIComponent(String(docType))}/${encodeURIComponent(String(docId))}/chapters/searchius`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the chapters matching the string provided\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchTdsChapters(requestParameters: SearchTdsChaptersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchTdsChapters(requestParameters: SearchTdsChaptersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchTdsChapters(requestParameters: SearchTdsChaptersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchTdsChapters(requestParameters: SearchTdsChaptersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const docType = requestParameters.docType;\n if (docType === null || docType === undefined) {\n throw new Error('Required parameter docType was null or undefined when calling searchTdsChapters.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling searchTdsChapters.');\n }\n const searchedText = requestParameters.searchedText;\n if (searchedText === null || searchedText === undefined) {\n throw new Error('Required parameter searchedText was null or undefined when calling searchTdsChapters.');\n }\n const device = requestParameters.device;\n const byProductIceCode = requestParameters.byProductIceCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (searchedText !== undefined && searchedText !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchedText, 'searchedText');\n }\n if (device !== undefined && device !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n device, 'device');\n }\n if (byProductIceCode !== undefined && byProductIceCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n byProductIceCode, 'byProductIceCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/tds/${encodeURIComponent(String(docType))}/${encodeURIComponent(String(docId))}/chapters/search`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Visibility } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetVisibilityRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVisibilityWithBrandCodeRequestParams {\n brandIceCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VisibilityService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the visibility for the current context\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVisibility(requestParameters?: GetVisibilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVisibility(requestParameters?: GetVisibilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVisibility(requestParameters?: GetVisibilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVisibility(requestParameters?: GetVisibilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getVisibility`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the visibility for the current brand\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVisibilityWithBrandCode(requestParameters: GetVisibilityWithBrandCodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVisibilityWithBrandCode(requestParameters: GetVisibilityWithBrandCodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVisibilityWithBrandCode(requestParameters: GetVisibilityWithBrandCodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVisibilityWithBrandCode(requestParameters: GetVisibilityWithBrandCodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandIceCode = requestParameters.brandIceCode;\n if (brandIceCode === null || brandIceCode === undefined) {\n throw new Error('Required parameter brandIceCode was null or undefined when calling getVisibilityWithBrandCode.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/getVisibility/${encodeURIComponent(String(brandIceCode))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ActiveWarranty { \n vin?: string;\n language?: string;\n subflowName?: string;\n number?: string;\n descriptionEn?: string;\n descriptionDeal?: string;\n warrantyType?: string;\n duration?: number;\n servStartdate?: string;\n servEnddate?: string;\n mileage?: string;\n contract?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AddInfos { \n id?: number;\n idTroubleshooting?: number;\n idIuTroubleshooting?: string;\n vin?: string;\n dealerId?: string;\n farm?: boolean;\n preparation?: boolean;\n workshop?: boolean;\n disclaimer?: boolean;\n dateContact?: string;\n datePreparation?: string;\n dateFarm?: string;\n dateWorkshop?: string;\n lastModification?: string;\n proactive?: boolean;\n reactive?: boolean;\n triggered?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { User } from './user';\nimport { Routine } from './routine';\n\n\nexport interface Alert { \n alertId?: number;\n instanceId?: number;\n priority: number;\n /**\n * A: Ans | C: Maintenance Alert | D: DQR | O: Control Room | R: Technical Alert | U: Topcare | W: Vehicle in workshop\n */\n type?: Alert.TypeEnum;\n title?: string;\n description?: string;\n languageId?: string;\n pinVin?: string;\n notifDealerCode?: string;\n notifUserId?: string;\n visuType?: number;\n visuValues?: string;\n visuValuesName?: Array;\n predictiveTechnicalAlert?: number;\n routines: Array;\n readOnly?: boolean;\n planId?: string;\n dateCreation?: string;\n dateClosure?: string;\n dealerName?: string;\n itemCode?: string;\n itemCounter?: number;\n autoClosureDays?: number;\n status?: number;\n level?: number;\n couponCode?: string;\n warrantySaving?: string;\n warrantyStartDate?: string;\n uptimeSaving?: string;\n dealerCodeTargetted?: string;\n transactionId?: string;\n nextDate?: string;\n sequencing?: boolean;\n keepOrder?: boolean;\n occurences?: number;\n externalRuleId?: number;\n isSimpleRule?: boolean;\n targetDealer?: string;\n useCaseStatus?: string;\n hasStartedProcedureAtLeastOne?: boolean;\n category?: string;\n notifiedUsers?: Array;\n}\nexport namespace Alert {\n export type TypeEnum = 'A' | 'C' | 'D' | 'O' | 'R' | 'T' | 'U' | 'W';\n export const TypeEnum = {\n A: 'A' as TypeEnum,\n C: 'C' as TypeEnum,\n D: 'D' as TypeEnum,\n O: 'O' as TypeEnum,\n R: 'R' as TypeEnum,\n T: 'T' as TypeEnum,\n U: 'U' as TypeEnum,\n W: 'W' as TypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { User } from './user';\nimport { Alert } from './alert';\nimport { QuickCloseAlertFormResults } from './quickCloseAlertFormResults';\nimport { Routine } from './routine';\n\n\nexport interface AlertForHistory extends Alert { \n occurences?: number;\n instanceId?: number;\n takeInCharge?: boolean;\n showGuidedProcedure?: boolean;\n solved?: boolean;\n hasProcedureDone?: boolean;\n closureReason?: string;\n routinesForHistory?: Array;\n quickCloseAlertFormResults?: QuickCloseAlertFormResults;\n}\nexport namespace AlertForHistory {\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { User } from './user';\nimport { UptimeDossierInfo } from './uptimeDossierInfo';\nimport { Alert } from './alert';\nimport { Routine } from './routine';\n\n\nexport interface AlertForSmartView extends Alert { \n uptimeDossierInfo?: UptimeDossierInfo;\n}\nexport namespace AlertForSmartView {\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { TelemetryStatus } from './telemetryStatus';\n\n\nexport interface AnalyticData { \n items?: Array;\n cursor?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AnalyticsDataRefreshTime { \n refreshTime?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ApiError { \n code: number;\n message: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppTeaserResponseDto { \n id?: number;\n success?: boolean;\n title?: string;\n text?: string;\n module?: string;\n trigger?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppVersion { \n version?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ApplicabilityResult { \n modelName?: string;\n configName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PriorityType } from './priorityType';\nimport { OnHoldReason } from './onHoldReason';\nimport { AppointmentUnitStatus } from './appointmentUnitStatus';\nimport { CustomerCompany } from './customerCompany';\nimport { Jobcard } from './jobcard';\nimport { CpdContactDetails } from './cpdContactDetails';\nimport { ChecklistDamage } from './checklistDamage';\nimport { AppointmentStatus } from './appointmentStatus';\nimport { VehicleCourtesy } from './vehicleCourtesy';\nimport { CustomerCompanyUser } from './customerCompanyUser';\nimport { EpartsPart } from './epartsPart';\nimport { JobcardTravel } from './jobcardTravel';\nimport { Vehicle } from './vehicle';\nimport { ChecklistInstance } from './checklistInstance';\nimport { VehicleCourtesyBooking } from './vehicleCourtesyBooking';\nimport { AppointmentIuDocument } from './appointmentIuDocument';\n\n\nexport interface Appointment { \n id: number;\n workshopId?: number;\n workshopBayId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n repairAddress?: string;\n types?: Array;\n mileage?: number;\n engineHours?: number;\n failureEngineHours?: number;\n receptionDate?: string;\n deliveryDate?: string;\n repairCompletionDate?: string;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n plannedDeliveryDate?: string;\n dmsCreationDate?: string;\n jobcard?: Jobcard;\n customerCompany?: CustomerCompany;\n vehicle?: Vehicle;\n vehicleCourtesy?: VehicleCourtesy;\n status?: AppointmentStatus;\n unitStatus?: AppointmentUnitStatus;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n /**\n * List of attached checklists\n */\n checklistInstances?: Array;\n checklistDamages?: Array;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUser;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReason;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n orderTypeHeaderCode?: number;\n vehicleCourtesyBookingDto?: VehicleCourtesyBooking;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n ManuallyUnits?: Appointment.ManuallyUnitsEnum;\n travels?: Array;\n currentAppointmentstatus?: AppointmentStatus;\n cpdAlternateContact?: CpdContactDetails;\n cpdContactDetails?: CpdContactDetails;\n epartsParts?: Array;\n dmsLogError?: boolean;\n appointmentPriority?: string;\n priorityType?: PriorityType;\n currentStatus?: Appointment.CurrentStatusEnum;\n iuDocuments?: Array;\n customerPaymentMode?: string;\n}\nexport namespace Appointment {\n export type ManuallyUnitsEnum = 'numberOfBales' | 'numberOfAcres' | 'threshingHours' | 'mileage' | 'engineHours';\n export const ManuallyUnitsEnum = {\n NumberOfBales: 'numberOfBales' as ManuallyUnitsEnum,\n NumberOfAcres: 'numberOfAcres' as ManuallyUnitsEnum,\n ThreshingHours: 'threshingHours' as ManuallyUnitsEnum,\n Mileage: 'mileage' as ManuallyUnitsEnum,\n EngineHours: 'engineHours' as ManuallyUnitsEnum\n };\n export type CurrentStatusEnum = 'new' | 'draft' | 'schedule' | 'appointmentPrepared' | 'received' | 'reparing' | 'serviceAdvisorValidationPending' | 'clientValidationPending' | 'warrantyValidationPending' | 'sentBackError' | 'workfileValidated' | 'delivered' | 'jobcardFinalised' | 'cancelled';\n export const CurrentStatusEnum = {\n New: 'new' as CurrentStatusEnum,\n Draft: 'draft' as CurrentStatusEnum,\n Schedule: 'schedule' as CurrentStatusEnum,\n AppointmentPrepared: 'appointmentPrepared' as CurrentStatusEnum,\n Received: 'received' as CurrentStatusEnum,\n Reparing: 'reparing' as CurrentStatusEnum,\n ServiceAdvisorValidationPending: 'serviceAdvisorValidationPending' as CurrentStatusEnum,\n ClientValidationPending: 'clientValidationPending' as CurrentStatusEnum,\n WarrantyValidationPending: 'warrantyValidationPending' as CurrentStatusEnum,\n SentBackError: 'sentBackError' as CurrentStatusEnum,\n WorkfileValidated: 'workfileValidated' as CurrentStatusEnum,\n Delivered: 'delivered' as CurrentStatusEnum,\n JobcardFinalised: 'jobcardFinalised' as CurrentStatusEnum,\n Cancelled: 'cancelled' as CurrentStatusEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * IU or SRT associated to an appointment.\n */\nexport interface AppointmentIuDocument { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n vin?: string;\n appointmentId?: number;\n selected?: boolean;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignature { \n id: number;\n url?: string;\n phase?: AppointmentSignature.PhaseEnum;\n appointmentId?: number;\n checklistInstanceId?: number;\n customerCompanyUserId?: number;\n /**\n * creation time.\n */\n time?: string;\n secretKey?: string;\n secretIV?: string;\n customerNotPresent?: boolean;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n}\nexport namespace AppointmentSignature {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface AppointmentStatus { \n id: number;\n time?: string;\n status?: AppointmentStatus.StatusEnum;\n reason?: AppointmentStatus.ReasonEnum;\n customerCompanyUser?: CustomerCompanyUser;\n workshopUser?: WorkshopUser;\n}\nexport namespace AppointmentStatus {\n export type StatusEnum = 'new' | 'draft' | 'schedule' | 'appointmentPrepared' | 'received' | 'reparing' | 'serviceAdvisorValidationPending' | 'clientValidationPending' | 'warrantyValidationPending' | 'sentBackError' | 'workfileValidated' | 'delivered' | 'jobcardFinalised' | 'cancelled';\n export const StatusEnum = {\n New: 'new' as StatusEnum,\n Draft: 'draft' as StatusEnum,\n Schedule: 'schedule' as StatusEnum,\n AppointmentPrepared: 'appointmentPrepared' as StatusEnum,\n Received: 'received' as StatusEnum,\n Reparing: 'reparing' as StatusEnum,\n ServiceAdvisorValidationPending: 'serviceAdvisorValidationPending' as StatusEnum,\n ClientValidationPending: 'clientValidationPending' as StatusEnum,\n WarrantyValidationPending: 'warrantyValidationPending' as StatusEnum,\n SentBackError: 'sentBackError' as StatusEnum,\n WorkfileValidated: 'workfileValidated' as StatusEnum,\n Delivered: 'delivered' as StatusEnum,\n JobcardFinalised: 'jobcardFinalised' as StatusEnum,\n Cancelled: 'cancelled' as StatusEnum\n };\n export type ReasonEnum = 'customerAdvised' | 'slotNotAvailable' | 'partNotAvailable' | 'repairCarriedOut' | 'repairAnotherBooking' | 'other';\n export const ReasonEnum = {\n CustomerAdvised: 'customerAdvised' as ReasonEnum,\n SlotNotAvailable: 'slotNotAvailable' as ReasonEnum,\n PartNotAvailable: 'partNotAvailable' as ReasonEnum,\n RepairCarriedOut: 'repairCarriedOut' as ReasonEnum,\n RepairAnotherBooking: 'repairAnotherBooking' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentUnitStatus { \n id: number;\n date?: string;\n unitDown?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ArchiveReportFileResult { \n data?: string;\n status?: number;\n dataflowStatus?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Status } from './status';\nimport { ArchiveReportResultData } from './archiveReportResultData';\n\n\nexport interface ArchiveReportResult { \n data?: Array;\n status?: Status;\n dataflowStatus?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ArchiveReportResultData { \n vin: string;\n type: string;\n systemCode: string;\n languageCode: string;\n platform: string;\n startDataRange: string;\n endDataRange: string;\n downloadDate: string;\n format: string;\n userID: string;\n userType: number;\n fileName: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Device } from './device';\nimport { CountryTimeZone } from './countryTimeZone';\n\n\n/**\n * assets details.\n */\nexport interface AssetsDetails { \n country?: CountryTimeZone;\n devices?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Aure Token to retrieve the token\n */\nexport interface AzureAccount { \n azureAccountName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BmkHistCommonDto { \n userId?: string;\n creationDate?: string;\n eltType?: string;\n eltId?: string;\n documentType?: string;\n documentId?: string;\n iuIce?: string;\n chapter?: string;\n marketId?: number;\n brandIceCode?: string;\n typeIceCode?: string;\n productIceCode?: string;\n seriesIceCode?: string;\n modelIceCode?: string;\n techTypeIceCode?: string;\n pin?: string;\n languagesList?: Array;\n label?: string;\n purchaseLocally?: boolean;\n modelName?: string;\n serieName?: string;\n techtypeName?: string;\n customerName?: string;\n pip?: boolean;\n legacyPath?: string;\n nbPages?: number;\n publicationDate?: string;\n pubNumberExactMatching?: string;\n isLegacy?: boolean;\n shortLabel?: string;\n legacyComponentId?: number;\n legacyLang?: string;\n engineFullIceCode?: string;\n fullIceCode?: string;\n modelFullIceCode?: string;\n seriesFullIceCode?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BookmarkDto { \n fullIceCode?: string;\n ifsId?: string;\n docType?: string;\n docId?: string;\n iuIce?: string;\n chapter?: string;\n reference?: string;\n page?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BmkHistCommonDto } from './bmkHistCommonDto';\n\n\nexport interface BookmarkElement extends BmkHistCommonDto { \n order?: number;\n groupCode?: string;\n subGroupCode?: string;\n defectCode?: string;\n operationCode?: string;\n mainDescription?: string;\n secondaryDescription?: string;\n repairTime?: number;\n srtCode?: string;\n columnNumber?: number;\n techTypeCode?: string;\n techTypeLabel?: string;\n languageId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface BookmarkResponseDto { \n errorType?: string;\n errorMessage?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Series } from './series';\nimport { Types } from './types';\nimport { Model } from './model';\n\n\n/**\n * Vehicles\\' brand.\n */\nexport interface Brand { \n /**\n * Brand ID.\n */\n id?: number;\n /**\n * Brand name.\n */\n name?: string;\n /**\n * Ice code.\n */\n iceCode?: string;\n image?: string;\n models?: Array;\n series?: Array;\n typeList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Language } from './language';\n\n\nexport interface BrandMarketLanguages { \n brandIcecode?: string;\n mkId?: number;\n languages?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { UrlLang } from './urlLang';\n\n\nexport interface BrandMarketUrlLanguage { \n brandIcecode?: string;\n mkId?: number;\n languages?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { BrandMarketLanguages } from './brandMarketLanguages';\nimport { Market } from './market';\n\n\nexport interface BrandsMarketsLanguages { \n brands?: Array;\n markets?: Array;\n brandMarketLanguagesList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * GSS categories for CANs.\n */\nexport interface CANCategoriesDescription { \n name?: string;\n type?: string;\n _function?: string;\n min?: number;\n max?: number;\n description?: string;\n category?: string;\n uom?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CategoryIwd { \n catIwdId?: number;\n catIwdDescription?: string;\n catIwdType?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistCheck { \n /**\n * Id of the check used for checklist response value.\n */\n id: number;\n /**\n * Order to display the checks in the array.\n */\n order?: number;\n /**\n * Label to display next to the check.\n */\n label?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Checklist Result Attachment.\n */\nexport interface ChecklistDamage { \n /**\n * Jobcard item Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n zone?: number;\n creationDate?: string;\n comment?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistQuestion } from './checklistQuestion';\n\n\nexport interface ChecklistGroup { \n name: string;\n questions?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistResult } from './checklistResult';\nimport { AppointmentSignature } from './appointmentSignature';\nimport { ChecklistGroup } from './checklistGroup';\n\n\nexport interface ChecklistInstance { \n id: number;\n summaryUrl?: string;\n content?: string;\n checklistGroups?: Array;\n appointmentId?: number;\n type?: ChecklistInstance.TypeEnum;\n workshopUserId?: string;\n checkListResult?: Array;\n checklistSignature?: AppointmentSignature;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n}\nexport namespace ChecklistInstance {\n export type TypeEnum = 'reception' | 'safety' | 'maintenance';\n export const TypeEnum = {\n Reception: 'reception' as TypeEnum,\n Safety: 'safety' as TypeEnum,\n Maintenance: 'maintenance' as TypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistCheck } from './checklistCheck';\n\n\nexport interface ChecklistQuestion { \n id: number;\n order?: number;\n label?: string;\n resultType?: ChecklistQuestion.ResultTypeEnum;\n sliderMin?: number;\n sliderMax?: number;\n sliderStep?: number;\n labelOk?: string;\n labelFault?: string;\n value?: number;\n required?: boolean;\n checks?: Array;\n}\nexport namespace ChecklistQuestion {\n export type ResultTypeEnum = 'status' | 'slider' | 'switch' | 'checks';\n export const ResultTypeEnum = {\n Status: 'status' as ResultTypeEnum,\n Slider: 'slider' as ResultTypeEnum,\n Switch: 'switch' as ResultTypeEnum,\n Checks: 'checks' as ResultTypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistResultAttachment } from './checklistResultAttachment';\n\n\nexport interface ChecklistResult { \n id: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Checklist Result Attachment.\n */\nexport interface ChecklistResultAttachment { \n /**\n * Jobcard item Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n creationDate?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChosenTxtCtrl { \n paramId?: number;\n id?: string;\n order?: string;\n textValue?: string | boolean;\n goTo?: number;\n solve?: boolean;\n exit?: boolean;\n label?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Consumable { \n id?: string;\n language?: string;\n group?: string;\n description?: string;\n name?: string;\n hidden?: number;\n hideComment?: string;\n lastModifiedDate?: string;\n user?: string;\n partNumber?: string;\n brandId?: number;\n consBrandId?: number;\n brandPrefix?: string;\n techChar?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Consumables { \n id?: string;\n language?: string;\n group?: string;\n description?: string;\n name?: string;\n hidden?: number;\n hideComment?: string;\n lastModifiedDate?: string;\n user?: string;\n partNumber?: string;\n brandId?: number;\n consBrandId?: number;\n brandPrefix?: string;\n techChar?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Count { \n count: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CountryTimeZone { \n code?: string;\n name?: string;\n timeZone?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetails { \n id: number;\n customerName?: string;\n cityName?: string;\n countryCode?: string;\n address?: string;\n zipCode?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CtrlMeasurementDto { \n measurement?: string;\n nameid?: string;\n increment?: string;\n min?: string;\n max?: string;\n ctrlType?: string;\n name?: string;\n ctrlOrder?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Currency\n */\nexport interface Currency { \n /**\n * Currency code following ISO 4217\n */\n code?: string;\n /**\n * Currency name\n */\n label?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CustomerAlertFeedback { \n alertId: number;\n instanceId: number;\n rating: number;\n feedbackComment: string;\n feedbackDate: string;\n createdBy: string;\n instanceApp: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CpdContactDetails } from './cpdContactDetails';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface CustomerCompany { \n id: number;\n dmsId?: string;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: string;\n zipcode?: string;\n address?: string;\n displayedName?: string;\n mobilePhone?: string;\n phone?: string;\n email?: string;\n customerNote?: string;\n users?: Array;\n alternateContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CustomerCompanyUser { \n id?: number;\n customerCompanyId?: number;\n firstName?: string;\n lastName?: string;\n email?: string;\n mobilePhone?: string;\n phone?: string;\n dmsId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DMCDto { \n dmcUrl?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DashboardAlert { \n id?: number;\n text?: string;\n type?: string;\n startDate?: string;\n endDate?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AlertForSmartView } from './alertForSmartView';\n\n\nexport interface DashboardMyAlerts { \n alertType?: number;\n pendingControlRoomDossiers?: boolean;\n yaAppointmentsToCancelCount?: number;\n alerts?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DashboardTeaserPopIn { \n success?: boolean;\n url?: string;\n trigger?: string;\n message?: string;\n html?: string;\n videoTeaser?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DecryptResult { \n decryptionResult?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DecryptTidb { \n encrypted: string;\n app?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * device data.\n */\nexport interface Device { \n /**\n * Serial Number of the vehicle.\n */\n serialNumber?: string;\n /**\n * Version of the vehicle.\n */\n deviceBundleVersion?: string;\n /**\n * Type of the vehicle.\n */\n type?: string;\n /**\n * file transfert status.\n */\n fileTransfert?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DocumentInfo } from './documentInfo';\n\n\nexport interface DeviceDocument { \n /**\n * device name\n */\n deviceName?: string;\n /**\n * document type\n */\n docType?: string;\n listOM?: Array;\n listSG?: Array;\n listAI?: Array;\n listDQR?: Array;\n listPTI?: Array;\n listMP?: Array;\n listGB?: Array;\n listTR?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type DocType = 'SB' | 'IU' | 'OM' | 'WB' | 'SM' | 'SBL' | 'LSY' | 'PTI' | 'MPL' | 'SML' | 'OML' | 'PIP' | 'KA' | 'II' | 'SG' | 'GB' | 'AI' | 'DAR' | 'PDI' | 'MTN' | 'WCK';\n\nexport const DocType = {\n SB: 'SB' as DocType,\n IU: 'IU' as DocType,\n OM: 'OM' as DocType,\n WB: 'WB' as DocType,\n SM: 'SM' as DocType,\n SBL: 'SBL' as DocType,\n LSY: 'LSY' as DocType,\n PTI: 'PTI' as DocType,\n MPL: 'MPL' as DocType,\n SML: 'SML' as DocType,\n OML: 'OML' as DocType,\n PIP: 'PIP' as DocType,\n KA: 'KA' as DocType,\n II: 'II' as DocType,\n SG: 'SG' as DocType,\n GB: 'GB' as DocType,\n AI: 'AI' as DocType,\n DAR: 'DAR' as DocType,\n PDI: 'PDI' as DocType,\n MTN: 'MTN' as DocType,\n WCK: 'WCK' as DocType\n};\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DocumentHasSchematics { \n hasWiring: boolean;\n hasHydraulic: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DocumentInfoPdf } from './documentInfoPdf';\nimport { PinRangeDto } from './pinRangeDto';\n\n\nexport interface DocumentInfo { \n /**\n * id of the document\n */\n eltid?: string;\n /**\n * id of the document\n */\n documentId?: string;\n /**\n * path to download legacy PDF\n */\n path?: string;\n /**\n * type of the document\n */\n documentTypeString?: string;\n /**\n * could be retrieved also from the token context\n */\n fullicecode?: string;\n /**\n * ice code from the search legacy PDF result\n */\n iceCode?: string;\n /**\n * by default title= modelname - pub date\n */\n name?: string;\n /**\n * pub number exact matching only for OM\n */\n pubNumberExactMatching?: string;\n /**\n * type of document\n */\n docType?: string;\n /**\n * type of document from the search legacy PDF result\n */\n type?: string;\n /**\n * publication date\n */\n docPubDate?: string;\n /**\n * contains the configuration chain. In front translate the \\\"or\\\" and \\\"and\\\" in the corresponding language\n */\n tooltip?: string;\n /**\n * true if language list is not null or empty\n */\n myLang?: boolean;\n languagesList?: Array;\n legacy?: boolean;\n pdf?: DocumentInfoPdf;\n doctype?: string;\n /**\n * TO BE DEFINED - complex strucutre for training\n */\n filter?: string;\n /**\n * only for OM commercial name\n */\n title?: string;\n extratitle?: string;\n /**\n * key label to be used for the button display\n */\n keyDescription?: string;\n /**\n * if true define the link to DMC viewer\n */\n hasDmcViewer?: boolean;\n /**\n * link to open\n */\n href?: string;\n sponsored?: boolean;\n /**\n * only for SG true if there is an IU recently published\n */\n isNew?: boolean;\n pinRangeDto?: PinRangeDto;\n /**\n * could be retrieved also from the token context\n */\n deviceFullIceCode?: string;\n /**\n * only used in the front\n */\n bmk?: string;\n /**\n * only used in the front\n */\n link?: string;\n /**\n * TDS template description for GB\n */\n tdsTemplateDescr?: string;\n /**\n * TDS subtype (THD checklists mainly)\n */\n tdsSubtype?: number;\n /**\n * Show Progress for legacy PDF download\n */\n downloadProgress?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DocumentInfoPdf { \n /**\n * nb page only for legacy doc\n */\n pageNumber?: number;\n /**\n * azure path to get the document\n */\n azurePath?: string;\n /**\n * legacy path used to create the link to the route to get the document\n */\n legacyPath?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DownloadableFileDto { \n fileId: number;\n fileName: string;\n folderName: string;\n azurePath: string;\n fileSize: string;\n rmiFlag: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Illustration } from './illustration';\nimport { InstructionElement } from './instructionElement';\nimport { Instructions } from './instructions';\nimport { DqrQuestion } from './dqrQuestion';\n\n\nexport interface DqrElement { \n id?: number;\n type?: DqrElement.TypeEnum;\n element?: string;\n question: DqrQuestion;\n instructions?: Instructions;\n instruction?: InstructionElement;\n illustration?: Illustration;\n}\nexport namespace DqrElement {\n export type TypeEnum = 'Instructions' | 'Instruction' | 'Question' | 'Illustration';\n export const TypeEnum = {\n Instructions: 'Instructions' as TypeEnum,\n Instruction: 'Instruction' as TypeEnum,\n Question: 'Question' as TypeEnum,\n Illustration: 'Illustration' as TypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DqrFailureCode { \n code: string;\n description: string;\n dqrVisible?: number;\n language?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DqrFaultStatus { \n id: number;\n dqrCkId?: number;\n dqrCkIuId?: string;\n dqrCkQuestionId?: number;\n dqrCkResponseId?: number;\n dqrFaultSolved: number;\n dqrCommentAction?: string;\n dqrCommentActionEn?: string;\n dqrDateSolving?: string;\n dqrActionUser?: string;\n ckType?: string;\n questionLabel?: string;\n ckResponse?: string;\n sapFailureCode?: string;\n sapFailureLabel?: string;\n faultComment?: string;\n userName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DqrFaultStatus } from './dqrFaultStatus';\n\n\nexport interface DqrFaultStatusExport { \n vin: string;\n dqrType?: string;\n dateExported?: string;\n fileName?: string;\n productLine?: string;\n modelName?: string;\n dqrFaultsStatus?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DqrGroup } from './dqrGroup';\n\n\nexport interface DqrForm { \n id?: number;\n comment?: string;\n score?: number;\n scoreMandatory?: boolean;\n brandIceCode?: string;\n country?: string;\n vin?: string;\n timetoload?: number;\n type?: DqrForm.TypeEnum;\n groups?: Array;\n}\nexport namespace DqrForm {\n export type TypeEnum = 'DAR' | 'MTN' | 'PDI' | 'WCK' | 'PPD' | 'NPP' | 'LPA' | 'LAG' | 'LPD' | 'TAI' | 'TDR' | 'FPT1' | 'FPT2' | 'FPT3' | 'FPT4' | 'FPT5' | 'FPT6' | 'FPT7';\n export const TypeEnum = {\n DAR: 'DAR' as TypeEnum,\n MTN: 'MTN' as TypeEnum,\n PDI: 'PDI' as TypeEnum,\n WCK: 'WCK' as TypeEnum,\n PPD: 'PPD' as TypeEnum,\n NPP: 'NPP' as TypeEnum,\n LPA: 'LPA' as TypeEnum,\n LAG: 'LAG' as TypeEnum,\n LPD: 'LPD' as TypeEnum,\n TAI: 'TAI' as TypeEnum,\n TDR: 'TDR' as TypeEnum,\n FPT1: 'FPT1' as TypeEnum,\n FPT2: 'FPT2' as TypeEnum,\n FPT3: 'FPT3' as TypeEnum,\n FPT4: 'FPT4' as TypeEnum,\n FPT5: 'FPT5' as TypeEnum,\n FPT6: 'FPT6' as TypeEnum,\n FPT7: 'FPT7' as TypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DqrFailureCode } from './dqrFailureCode';\nimport { DqrElement } from './dqrElement';\n\n\nexport interface DqrGroup { \n chapterName: string;\n iuId?: string;\n elements: Array;\n severityCodesList?: string;\n failureCodesByCode?: Array;\n dqrLanguage?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DqrHistoryDtoMap } from './dqrHistoryDtoMap';\n\n\nexport interface DqrHistoryDto { \n logsToDisplay?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DqrHistoryDtoMap { \n logCode: DqrHistoryDtoMap.LogCodeEnum;\n dqrType?: string;\n dealer?: string;\n reason?: string;\n duration?: string;\n}\nexport namespace DqrHistoryDtoMap {\n export type LogCodeEnum = 'alreadyCompleted' | 'ckInProgress' | 'ckCancelled' | 'noDocApplicable' | 'alreadyPerformed' | 'warrantyDateExpired' | 'invoiceDateExpired';\n export const LogCodeEnum = {\n AlreadyCompleted: 'alreadyCompleted' as LogCodeEnum,\n CkInProgress: 'ckInProgress' as LogCodeEnum,\n CkCancelled: 'ckCancelled' as LogCodeEnum,\n NoDocApplicable: 'noDocApplicable' as LogCodeEnum,\n AlreadyPerformed: 'alreadyPerformed' as LogCodeEnum,\n WarrantyDateExpired: 'warrantyDateExpired' as LogCodeEnum,\n InvoiceDateExpired: 'invoiceDateExpired' as LogCodeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DqrResponse } from './dqrResponse';\n\n\nexport interface DqrQuestion { \n id: string;\n iuId?: string;\n configurationId?: string;\n questionId: string;\n questionLabel: string;\n questionLanguage?: string;\n questionMandatory: boolean;\n questionType?: string;\n questionGraphic: DqrQuestion.QuestionGraphicEnum;\n unit?: string;\n max?: number;\n min?: number;\n dqrqMin?: number;\n increment?: number;\n group?: string;\n subGroup?: string;\n defect?: string;\n sapFailure?: string;\n sapFailureCust?: string;\n sapFailureSelected?: boolean;\n dqrqFault?: boolean;\n faultSeverity?: number;\n qualityFault?: boolean;\n faultType?: number;\n failureCode?: boolean;\n questionOrder?: number;\n hidden?: boolean;\n hideComment?: string;\n responses: Array;\n dqrqFaultSeverity?: number;\n answerer?: string;\n dqrTemplate?: string;\n}\nexport namespace DqrQuestion {\n export type QuestionGraphicEnum = 'Switch Button' | 'Dropdown' | 'Radio Button' | 'Slider' | 'Number' | 'Date Picker' | 'Text' | 'Multiple Values' | 'File';\n export const QuestionGraphicEnum = {\n SwitchButton: 'Switch Button' as QuestionGraphicEnum,\n Dropdown: 'Dropdown' as QuestionGraphicEnum,\n RadioButton: 'Radio Button' as QuestionGraphicEnum,\n Slider: 'Slider' as QuestionGraphicEnum,\n Number: 'Number' as QuestionGraphicEnum,\n DatePicker: 'Date Picker' as QuestionGraphicEnum,\n Text: 'Text' as QuestionGraphicEnum,\n MultipleValues: 'Multiple Values' as QuestionGraphicEnum,\n File: 'File' as QuestionGraphicEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DqrReportMobile } from './dqrReportMobile';\n\n\nexport interface DqrReport { \n id: number;\n product?: string;\n type?: DqrReport.TypeEnum;\n model?: string;\n vin?: string;\n status?: DqrReport.StatusEnum;\n openDate: string;\n closeDate: string;\n scoring?: number;\n dqrLg: string;\n dqrQualityScore?: number;\n active?: boolean;\n dqrUpdateTimeLimteExceed?: boolean;\n dqrDeleteTimeLimteExceed?: boolean;\n mobile?: DqrReportMobile;\n dqrGlobalStatus?: number;\n dqrFreezeDate?: string;\n dqrCkFreezeUser?: string;\n dqrWarrantyStartDate?: string;\n dqrInvoiceDate?: string;\n warrantyStartOrInvoiceDate?: string;\n warrantyStartDate?: string;\n dqrCountDownAutoClosure?: number;\n dqrParentId?: number;\n faultStatus?: DqrReport.FaultStatusEnum;\n}\nexport namespace DqrReport {\n export type TypeEnum = 'DAR' | 'MTN' | 'PDI' | 'PPD' | 'NPP' | 'WCK' | 'FPT1' | 'FPT2' | 'FPT3' | 'FPT4' | 'FPT5' | 'FPT6' | 'FPT7' | 'LPA' | 'LAG' | 'LPD' | 'TAI' | 'TDR';\n export const TypeEnum = {\n DAR: 'DAR' as TypeEnum,\n MTN: 'MTN' as TypeEnum,\n PDI: 'PDI' as TypeEnum,\n PPD: 'PPD' as TypeEnum,\n NPP: 'NPP' as TypeEnum,\n WCK: 'WCK' as TypeEnum,\n FPT1: 'FPT1' as TypeEnum,\n FPT2: 'FPT2' as TypeEnum,\n FPT3: 'FPT3' as TypeEnum,\n FPT4: 'FPT4' as TypeEnum,\n FPT5: 'FPT5' as TypeEnum,\n FPT6: 'FPT6' as TypeEnum,\n FPT7: 'FPT7' as TypeEnum,\n LPA: 'LPA' as TypeEnum,\n LAG: 'LAG' as TypeEnum,\n LPD: 'LPD' as TypeEnum,\n TAI: 'TAI' as TypeEnum,\n TDR: 'TDR' as TypeEnum\n };\n export type StatusEnum = 'NEW' | 'INPROGRESS' | 'COMPLETED';\n export const StatusEnum = {\n NEW: 'NEW' as StatusEnum,\n INPROGRESS: 'INPROGRESS' as StatusEnum,\n COMPLETED: 'COMPLETED' as StatusEnum\n };\n export type FaultStatusEnum = 'NO_FAULT' | 'NOT_SOLVED' | 'SOLVED';\n export const FaultStatusEnum = {\n NOFAULT: 'NO_FAULT' as FaultStatusEnum,\n NOTSOLVED: 'NOT_SOLVED' as FaultStatusEnum,\n SOLVED: 'SOLVED' as FaultStatusEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DqrReportMobile { \n isDownloaded?: boolean;\n isUpdated?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DqrQuestion } from './dqrQuestion';\n\n\nexport interface DqrResponse { \n id?: number;\n iuId?: string;\n questionId?: string;\n questionParentId?: string;\n responseId?: string;\n selected?: boolean;\n responseLabel?: string;\n responseLabelId?: string;\n unit?: string;\n responseLanguage?: string;\n responseMandatory?: boolean;\n responseFault?: boolean;\n responseAttachment?: boolean;\n /**\n * Files name separated by pipes\n */\n responseAttachmentFiles?: string;\n responseComment?: string;\n failureCode?: string;\n failureCodeComment?: string;\n subQuestions?: Array;\n severityCode?: number;\n responseTitle?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DqrSeverityCode { \n code: number;\n description: string;\n value?: number;\n language?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DqrSubmitResult { \n wtyStartDateValid?: boolean;\n error?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DqrTasksByType { \n nbActiveWpa?: string;\n nbActiveThd?: string;\n ckid?: string;\n ifsid?: string;\n isNewVersionChecklistDocAvailable?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ElementSearchResultFaultCodeDto } from './elementSearchResultFaultCodeDto';\nimport { ElementSearchResultSgTitleDto } from './elementSearchResultSgTitleDto';\nimport { ElementSearchResultLegacyFaultCodeDto } from './elementSearchResultLegacyFaultCodeDto';\nimport { ElementSearchResultPdf } from './elementSearchResultPdf';\nimport { MultiMediaVideo } from './multiMediaVideo';\nimport { DocType } from './docType';\n\n\nexport interface ElementSearchResult { \n ifsId?: string;\n pubDate?: string;\n hasSpecialTools?: boolean;\n hasConsumables?: boolean;\n advancedDiagnostic?: boolean;\n documentType?: number;\n documentTypeString?: DocType;\n documentId?: string;\n iuIce?: string;\n pubNumber?: string;\n iceType?: string;\n score?: number;\n type?: string;\n title?: string;\n typecode?: string;\n iuStatus?: string;\n configurationLabel?: string;\n text?: string;\n group?: string;\n subGroup?: string;\n defect?: string;\n legacy?: boolean;\n fromEstModel?: boolean;\n pubNumberExactMatching?: string;\n searchFragements?: Array;\n highlighted?: boolean;\n faultCodeDto?: ElementSearchResultFaultCodeDto;\n legacyFaultCodeDto?: ElementSearchResultLegacyFaultCodeDto;\n sgTitleDto?: ElementSearchResultSgTitleDto;\n groupSgDefectCode?: string;\n groupSgDefectName?: string;\n iceShortTitle?: string;\n componentCode?: string;\n ka?: boolean;\n extraTitle?: string;\n link?: string;\n jump?: string;\n lang?: string;\n where?: string;\n kitName?: string;\n kitNnumber?: string;\n kitDescription?: string;\n eltid?: string;\n pdf?: ElementSearchResultPdf;\n cons?: string;\n st?: string;\n componentIfsId?: string;\n app?: string;\n reference?: string;\n name?: string;\n description?: string;\n kaname?: string;\n kanumber?: string;\n groupsgdefect?: string;\n pubnbexactmatch?: string;\n piptype?: string;\n pipcode?: string;\n pipLevel?: number;\n date?: string;\n terminationdate?: string;\n componentTitle?: string;\n selected?: boolean;\n subject?: string;\n month?: string;\n year?: string;\n bulletinNumber?: string;\n fileUnder?: string;\n webVisibility?: number;\n iuUpdateComment?: string;\n sbTypeAbbrev?: DocType;\n hasWhereUsed?: boolean;\n id?: string;\n issue?: string;\n cause?: string;\n solve?: string;\n component?: string;\n binder?: string;\n issueNumber?: string;\n issuedBy?: string;\n replaces?: string;\n series?: string;\n models?: string;\n sgroup?: string;\n active?: boolean;\n path?: string;\n revision?: string;\n componentId?: string;\n pdfLink?: string;\n bookmark?: string;\n legacyPath?: string;\n docPubDate?: string;\n usage?: string;\n performance?: string;\n configurations?: Array;\n imageLink?: Array;\n requirement?: string;\n level?: string;\n languagesList?: Array;\n time?: number;\n timeType?: string;\n docType?: string;\n kitname?: string;\n iilinked?: string;\n fullIceCode?: string;\n kitdescription?: string;\n kitnumber?: string;\n download?: string;\n feedbackInfoTitle?: string;\n bulletinnumber?: string;\n fileunder?: string;\n global?: boolean;\n groupsgcares?: string;\n islegacy?: string;\n issuedby?: string;\n issuenumber?: string;\n pages?: string;\n pubnumber?: string;\n sbid?: string;\n sbtype?: string;\n sortdate?: string;\n tooltip?: string;\n doctype?: string;\n isHighlighted?: string;\n multimediaVideos?: Array;\n newTypeLabel?: string;\n downloadProgress?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ElementSearchResultFaultCodeDto { \n description?: string;\n ecId?: number;\n errorCode?: string;\n title?: string;\n ecuName?: string;\n listEcClusterValue?: string;\n ccm?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ElementSearchResultLegacyFaultCodeDto { \n webEcId?: string;\n webDescription?: string;\n webErrorCode?: number;\n ecuName?: string;\n webEcCompFailure?: string;\n webEcErrorType?: string;\n webEcVisibleFault?: string;\n webEcpossibleCause?: string;\n webEcAction?: string;\n webEcControll?: string;\n webEcCondMesure?: string;\n webEcMeasure?: string;\n webEcNote?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ElementSearchResultPdf { \n searchedPage?: number;\n pageNumber?: number;\n path?: string;\n azurePath?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ElementSearchResultSgTitleDto { \n iuId?: string;\n sgVersion?: string;\n andAfter?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type EnumException = 'NO_CHECKLIST_APPLICABLE' | 'DOCUMENT_FILE_NOT_FOUND' | 'CHECKLIST_NOT_AVAILABLE_LANG';\n\nexport const EnumException = {\n NOCHECKLISTAPPLICABLE: 'NO_CHECKLIST_APPLICABLE' as EnumException,\n DOCUMENTFILENOTFOUND: 'DOCUMENT_FILE_NOT_FOUND' as EnumException,\n CHECKLISTNOTAVAILABLELANG: 'CHECKLIST_NOT_AVAILABLE_LANG' as EnumException\n};\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Gices the corresponding eParts brand name for a given VIN/PIN/SN.\n */\nexport interface EpartsBrandResult { \n /**\n * The concerned VIN/PIN/SN\n */\n vin?: string;\n /**\n * The corresponding eParts brand name\n */\n epartsBrand?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\nimport { Currency } from './currency';\n\n\nexport interface EpartsPart { \n id?: number;\n appointmentId?: number;\n code?: string;\n description?: string;\n quantity?: number;\n dateAdded?: string;\n dealerPrice?: number;\n retailPrice?: number;\n currency?: Currency;\n part?: Part;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface EtimSettingDto { \n settingType?: string;\n documentId?: string;\n updatedDate?: string;\n active?: number;\n visibility?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ExecutedPip { \n pipCode?: string;\n vin?: string;\n status?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Other Workshop\n */\nexport interface ExtraOperation { \n id?: number;\n typeLabel?: string;\n type?: ExtraOperation.TypeEnum;\n description?: string;\n code?: string;\n supplierName?: string;\n level?: string;\n distance?: number;\n amount?: number;\n compulsory?: boolean;\n selected?: boolean;\n dmsId?: string;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n deleted?: boolean;\n active?: boolean;\n}\nexport namespace ExtraOperation {\n export type TypeEnum = 'all' | 'material' | 'extraCharges' | 'sublet' | 'travel' | 'freight' | 'fictitious_material' | 'fm_antifreeze' | 'fm_miscellaneous' | 'fm_oil' | 'fm_refrigerant' | 'fm_tyre';\n export const TypeEnum = {\n All: 'all' as TypeEnum,\n Material: 'material' as TypeEnum,\n ExtraCharges: 'extraCharges' as TypeEnum,\n Sublet: 'sublet' as TypeEnum,\n Travel: 'travel' as TypeEnum,\n Freight: 'freight' as TypeEnum,\n FictitiousMaterial: 'fictitious_material' as TypeEnum,\n FmAntifreeze: 'fm_antifreeze' as TypeEnum,\n FmMiscellaneous: 'fm_miscellaneous' as TypeEnum,\n FmOil: 'fm_oil' as TypeEnum,\n FmRefrigerant: 'fm_refrigerant' as TypeEnum,\n FmTyre: 'fm_tyre' as TypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { InteractiveData } from './interactiveData';\n\n\n/**\n * Represents the details of a Failure Mode IU reference in a Modular diagnostic IU.\n */\nexport interface FailureModeDetails { \n iuDiagId?: string;\n iuDiagInteractiveId?: string;\n iuFailureModeId?: string;\n iuFailureModeIceCode?: string;\n probability?: string;\n avgTime?: string;\n fmId?: number;\n fmLanguage?: string;\n fmDescription?: string;\n fmCompRef?: string;\n interactiveData?: InteractiveData;\n fmStatus?: FailureModeDetails.FmStatusEnum;\n}\nexport namespace FailureModeDetails {\n export type FmStatusEnum = 'open' | 'solved' | 'eliminated';\n export const FmStatusEnum = {\n Open: 'open' as FmStatusEnum,\n Solved: 'solved' as FmStatusEnum,\n Eliminated: 'eliminated' as FmStatusEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FictitiousMaterial = '-OIL' | '-ANTIFREEZE' | '-MISCELLANEOUS' | '-REFRIGERANT' | '-MATERIAL' | '-TIRE';\n\nexport const FictitiousMaterial = {\n OIL: '-OIL' as FictitiousMaterial,\n ANTIFREEZE: '-ANTIFREEZE' as FictitiousMaterial,\n MISCELLANEOUS: '-MISCELLANEOUS' as FictitiousMaterial,\n REFRIGERANT: '-REFRIGERANT' as FictitiousMaterial,\n MATERIAL: '-MATERIAL' as FictitiousMaterial,\n TIRE: '-TIRE' as FictitiousMaterial\n};\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CountryTimeZone } from './countryTimeZone';\nimport { GeoStorePosition } from './geoStorePosition';\n\n\n/**\n * connected machine geo store details from eTIM.\n */\nexport interface GeoStoreDetails { \n /**\n * Asset id.\n */\n assetId?: string;\n /**\n * VIN/PIN details.\n */\n vin?: string;\n /**\n * vin9 id.\n */\n vin9?: string;\n /**\n * vin17 id.\n */\n vin17?: string;\n /**\n * ceq Id.\n */\n ceqId?: string;\n /**\n * tech Type details.\n */\n techType?: string;\n /**\n * company name.\n */\n companyName?: string;\n /**\n * company id details.\n */\n companyId?: string;\n /**\n * vehicle branch.\n */\n brand?: string;\n /**\n * vehicle model.\n */\n model?: string;\n /**\n * product Line details.\n */\n productLine?: string;\n /**\n * archived details.\n */\n archived?: boolean;\n /**\n * geo store last connected time\n */\n time?: string;\n country?: CountryTimeZone;\n pos?: GeoStorePosition;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface GeoStorePosition { \n time?: string;\n lat?: string;\n lon?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface GuidedProcedure { \n interactiveId?: number;\n procedureId?: string;\n iuVersion?: string;\n logDateTime: string;\n event?: string;\n status?: string;\n statusId?: number;\n title?: string;\n documentType?: string;\n documentId?: string;\n warranty?: boolean;\n advancedDiagnostic?: boolean;\n warrantyPreAuthorization?: boolean;\n ka?: boolean;\n iuIce?: string;\n pdfUrl?: string;\n parentInteractiveId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { HigherFaultCodePriorityDtoList } from './higherFaultCodePriorityDtoList';\n\n\nexport interface HigherFaultCodePriorityDto { \n higherPriorityLists?: Array>;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface HigherFaultCodePriorityDtoList { \n iuId?: string;\n iuIceCode?: string;\n iuTitle?: string;\n errorCode?: string;\n lastSolved?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { BmkHistCommonDto } from './bmkHistCommonDto';\n\n\nexport interface HistoryElement extends BmkHistCommonDto { \n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface HomePageLanguage { \n id?: string;\n language?: string;\n translatedLanguage?: string;\n languageOrder?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { BrandMarketUrlLanguage } from './brandMarketUrlLanguage';\nimport { HomePageLanguage } from './homePageLanguage';\nimport { CategoryIwd } from './categoryIwd';\nimport { MarketCountries } from './marketCountries';\nimport { Market } from './market';\n\n\nexport interface HomepageData { \n brandList?: Array;\n marketList?: Array;\n enLanguages?: Array;\n bmlList?: Array;\n marketCountries?: Array;\n categoryList?: Array;\n alertMessage?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface HotspotDto { \n /**\n * Azure path to get the document\n */\n azurePath: string;\n /**\n * The publication number\n */\n pubNumberExactMatching: string;\n /**\n * Date when the document was published\n */\n docPubDate: string;\n /**\n * Indicates if the document is preferred\n */\n preferred: string;\n /**\n * The title of the document\n */\n title: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface HotspotIuIceCodeDto { \n /**\n * Complete IU information\n */\n completeIu: string;\n /**\n * ICE code information\n */\n iceCode: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { IResponse } from './iResponse';\n\n\nexport interface IQuestion { \n id?: number;\n labelId?: number;\n responses?: Array;\n idResponseChecked?: number;\n questionIsVisible?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FailureModeDetails } from './failureModeDetails';\nimport { IQuestion } from './iQuestion';\n\n\nexport interface IQuickCloseForm { \n quickCloseForm?: Array;\n failureModeList?: Array;\n hasFailureMode?: boolean;\n routineId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface IResponse { \n id?: number;\n questionId?: number;\n orderId?: number;\n labelId?: string;\n nextQuestionId?: number;\n closureType?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface IUGenericTagDto { \n tagType?: string;\n content?: object;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface IceLocationDto { \n familyIceCode?: string;\n subGroupIceCode?: string;\n subSubGroupIceCode?: string;\n assemblyIceCode?: string;\n title?: string;\n lastName?: string;\n shortName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Illustration { \n url?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ImageInfoDto { \n /**\n * Image file reference\n */\n fileReference?: string;\n /**\n * Image Label\n */\n text?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShortPdfLegacy } from './shortPdfLegacy';\n\n\n/**\n * infotype information.\n */\nexport interface InfotypeView { \n /**\n * ice code of infotype ( For legacy, label to be translated in the front :smpdf,ompdf,sbpdf).\n */\n iceCode?: string;\n /**\n * infotype name.\n */\n name?: string;\n /**\n * infotype name in english.\n */\n enName?: string;\n shortPdfLegacyList?: Array;\n /**\n * definition.\n */\n definition?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineResponse200 { \n pdfFound: boolean;\n pdfurl?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Illustration } from './illustration';\nimport { IUGenericTagDto } from './iUGenericTagDto';\nimport { InstructionElementAttention } from './instructionElementAttention';\nimport { InteractiveIU } from './interactiveIU';\n\n\nexport interface InstructionElement { \n type?: InstructionElement.TypeEnum;\n order?: number;\n attention?: InstructionElementAttention;\n note?: InstructionElementAttention;\n text?: string;\n instruction?: object;\n illustration?: Illustration;\n directives?: InteractiveIU;\n tagList?: Array;\n}\nexport namespace InstructionElement {\n export type TypeEnum = 'Instruction' | 'Attention' | 'Note' | 'Text' | 'Illustration';\n export const TypeEnum = {\n Instruction: 'Instruction' as TypeEnum,\n Attention: 'Attention' as TypeEnum,\n Note: 'Note' as TypeEnum,\n Text: 'Text' as TypeEnum,\n Illustration: 'Illustration' as TypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InstructionElementAttention { \n text?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { InstructionElement } from './instructionElement';\n\n\nexport interface Instructions { \n elements?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Consumables } from './consumables';\nimport { Steps } from './steps';\nimport { ProductConfiguration } from './productConfiguration';\nimport { Tools } from './tools';\nimport { AddInfos } from './addInfos';\n\n\nexport interface InteractiveData { \n interactiveId?: number;\n procedureId?: string;\n iuVersion?: string;\n solved?: boolean;\n statusId?: number;\n dealerId?: string;\n dealerName?: string;\n vin?: string;\n totalNumberOfSteps?: number;\n currentStep?: number;\n previousStepsPerformed?: Array;\n title?: string;\n documentType?: number;\n steps?: Array;\n tools?: Array;\n consumables?: Array;\n restart?: boolean;\n addInfos?: AddInfos;\n productConfiguration?: ProductConfiguration;\n iuDiagId?: string;\n iuDiagInteractiveId?: number;\n /**\n * Is it a Modular Diagnostic IU with Failure mode IUs?\n */\n isFailureMode?: boolean;\n parentInteractiveId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Title } from './title';\nimport { IUGenericTagDto } from './iUGenericTagDto';\nimport { KaMetaData } from './kaMetaData';\n\n\nexport interface InteractiveIU { \n cdlanguage?: string;\n cdid?: string;\n cdice?: string;\n cdtopic?: string;\n fullTitle?: string;\n content?: string;\n docId?: string;\n isInteractive?: boolean;\n isModular?: boolean;\n webVisibility?: number;\n metaData?: KaMetaData;\n title?: Title;\n tagList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InteractiveViewDto { \n title?: string;\n logDate?: string;\n logDateTime?: string;\n event?: string;\n link?: string;\n status?: string;\n documentType?: string;\n statusId?: number;\n interactiveId?: number;\n iuId?: string;\n advancedDiagnostic?: boolean;\n mandatory?: boolean;\n mandatoryDateFrom?: string;\n mandatoryDateTo?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { LegacyFaultCodeDto } from './legacyFaultCodeDto';\nimport { SgTitleDto } from './sgTitleDto';\nimport { IceLocationDto } from './iceLocationDto';\n\n\nexport interface IuDocDto { \n ifsId?: string;\n order?: number;\n reOrder?: number;\n definedForCurrentLanguage?: boolean;\n isNewIU?: boolean;\n status?: string;\n pubDate?: string;\n version?: string;\n extraTitle?: string;\n omSgTitle?: string;\n componentCode?: string;\n componentTitle?: string;\n componentIfsId?: string;\n opTitle?: string;\n opType?: string;\n opValue?: string;\n iceLocation?: IceLocationDto;\n iceInfotype?: IceLocationDto;\n lg?: string;\n header?: string;\n legacyPath?: string;\n configuration?: object;\n configurationLabel?: string;\n hasSpecialTools?: boolean;\n hasConsumables?: boolean;\n fromEstModel?: boolean;\n isAdvancedDiagnostic?: boolean;\n mandatoryDateFrom?: string;\n mandatoryDateTo?: string;\n dealerRegistryId?: number;\n isMandatory?: boolean;\n dealerCondition?: number;\n documentType?: number;\n documentTypeString?: string;\n documentId?: string;\n iuIce?: string;\n pubNumber?: string;\n firstImageRef?: string;\n interactiveLogDate?: string;\n interactiveStatus?: number;\n interactiveId?: number;\n routineOrder?: number;\n outcomeStatus?: number;\n outcomeDealerCode?: string;\n visible?: boolean;\n hasTechData?: boolean;\n hasTorqueData?: boolean;\n hasElectricalComponent?: boolean;\n anchor?: string;\n title?: string;\n pubNumberExtraTitle?: string;\n pubNumberExactMatching?: string;\n iceType?: string;\n pubLanguage?: string;\n creationDate?: string;\n modificationDate?: string;\n visibility?: string;\n srcLanguage?: string;\n failureMode?: string;\n engineType?: string;\n region?: string;\n groupSgDefectCode?: string;\n groupSgDefectName?: string;\n legacy?: boolean;\n isHighlighted?: boolean;\n expirationDate?: string;\n isKa?: boolean;\n hasWhereUsed?: boolean;\n brandIceCode?: string;\n typeIceCode?: string;\n productIceCode?: string;\n seriesIceCode?: string;\n modelIceCode?: string;\n id?: string;\n name?: string;\n searchFragements?: Array;\n score?: number;\n outcomeDate?: string;\n faultCodeDto?: LegacyFaultCodeDto;\n legacyFaultCodeDto?: LegacyFaultCodeDto;\n sgTitleDto?: SgTitleDto;\n lstwhereUsedIus?: Array;\n capacity?: boolean;\n type?: string;\n sheetNumber?: string;\n childs?: string;\n xmlId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { IuDocumentDto } from './iuDocumentDto';\n\n\nexport interface IuDocumentBasketDto { \n userId?: string;\n appointmentId?: number;\n documents?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface IuDocumentDto { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n appointmentId?: number;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface IuLinkBasket { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n vin?: string;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDeleted } from './jobcardItemDeleted';\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardTravel } from './jobcardTravel';\n\n\n/**\n * Jobcard main informations.\n */\nexport interface Jobcard { \n /**\n * Jobcard ID.\n */\n id: number;\n /**\n * Jobcard DMS job order.\n */\n dmsJobOrder?: string;\n /**\n * Dealer Claim Number from SAP.\n */\n dealerClaimNumber?: string;\n /**\n * ANS Dossier for CRM.\n */\n ansDossier?: string;\n /**\n * Jobcard job order to claim.\n */\n dmsToStrClaim?: string;\n /**\n * Claim Number.\n */\n claim?: string;\n /**\n * Jobcard execution estimated duration.\n */\n estimatedDuration?: number;\n /**\n * Jobcard start time.\n */\n startTime?: string;\n /**\n * Jobcard end time.\n */\n endTime?: string;\n /**\n * Failure Date\n */\n failureDate?: string;\n jobcardItems?: Array;\n jobcardItemDeleted?: Array;\n /**\n * Jobcard attachments list. TODO rename\n */\n jobcardAttachmentDtos?: Array;\n customerOrderNumber?: string;\n dmsOrderType?: Jobcard.DmsOrderTypeEnum;\n djcOrderType?: Jobcard.DjcOrderTypeEnum;\n jobcardTravels?: Array;\n /**\n * Jobcard mileages list.\n */\n jobcardMileages?: Array;\n /**\n * Jobcard engine hour list.\n */\n jobcardEngineHours?: Array;\n /**\n * Jobcard serial number list.\n */\n jobcardSerialNumbers?: Array;\n}\nexport namespace Jobcard {\n export type DmsOrderTypeEnum = 'Quote' | 'Invoice' | 'Reservation' | 'Order';\n export const DmsOrderTypeEnum = {\n Quote: 'Quote' as DmsOrderTypeEnum,\n Invoice: 'Invoice' as DmsOrderTypeEnum,\n Reservation: 'Reservation' as DmsOrderTypeEnum,\n Order: 'Order' as DmsOrderTypeEnum\n };\n export type DjcOrderTypeEnum = 'readyToInvoice' | 'Invoice';\n export const DjcOrderTypeEnum = {\n ReadyToInvoice: 'readyToInvoice' as DjcOrderTypeEnum,\n Invoice: 'Invoice' as DjcOrderTypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard Attachment.\n */\nexport interface JobcardAttachment { \n /**\n * Jobcard Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n filename?: string;\n jobOrder?: number;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WarrantyType } from './warrantyType';\nimport { JobcardItemTechnician } from './jobcardItemTechnician';\nimport { MpInformation } from './mpInformation';\nimport { PaymentSubSubType } from './paymentSubSubType';\nimport { JobcardItemStatus } from './jobcardItemStatus';\nimport { Operation } from './operation';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardItemCustomerStatus } from './jobcardItemCustomerStatus';\nimport { JobcardTravel } from './jobcardTravel';\nimport { JobcardItemIuDocument } from './jobcardItemIuDocument';\nimport { WarrantyClaimData } from './warrantyClaimData';\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { JobcardItemSpell } from './jobcardItemSpell';\nimport { PaymentType } from './paymentType';\nimport { ChecklistInstance } from './checklistInstance';\nimport { PaymentSubType } from './paymentSubType';\nimport { JobcardPartsBacklog } from './jobcardPartsBacklog';\nimport { Split } from './split';\nimport { ExtraOperation } from './extraOperation';\n\n\n/**\n * Jobcard item details.\n */\nexport interface JobcardItem { \n /**\n * Jobcard item ID.\n */\n id?: number;\n /**\n * Jobcard item type.\n */\n type?: JobcardItem.TypeEnum;\n /**\n * Jobcard subtype used for subtype of an alert.\n */\n subtype?: string;\n /**\n * Jobcard priority used for level of priority of an alert.\n */\n priority?: number;\n /**\n * Jobcard weight used to order the jobcardItems.\n */\n weight?: number;\n /**\n * Jobcard item name.\n */\n name: string;\n /**\n * Jobcard item description.\n */\n description?: string;\n /**\n * Jobcard item additional description.\n */\n additionalDescription?: string;\n /**\n * Jobcard item code.\n */\n code?: string;\n estimatedDuration?: number;\n /**\n * Jobcard item\\'s details URL\n */\n url?: string;\n /**\n * Jobcard item\\'s Asist Buy Kits URL\n */\n asistUrl?: string;\n /**\n * Jobcard item operation list.\n */\n operations?: Array;\n /**\n * Jobcard item status list.\n */\n jobcardItemStatus?: Array;\n /**\n * Missing Parts in Jobcard.\n */\n jobcardPartsBacklog?: Array;\n /**\n * Jobcard item attachment list.\n */\n jobcardItemAttachments?: Array;\n workshopUserId?: string;\n comment?: string;\n /**\n * Activity might be deferred (not shown)\n */\n deferred?: boolean;\n /**\n * Date the activity was deferred\n */\n deferredDate?: string;\n /**\n * Date to the activity was deferred\n */\n deferredToDate?: string;\n /**\n * Reason for deferring activity\n */\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n agreementSignatureUrl?: string;\n agreementCustomerName?: string;\n travels?: Array;\n /**\n * Show/hide activity to the customer\n */\n visible?: boolean;\n /**\n * Supplier Code\n */\n supplierCode?: string;\n /**\n * Defect Code\n */\n defectCode?: string;\n /**\n * Failure Code\n */\n failureCode?: string;\n /**\n * Failure Description\n */\n failureDescription?: string;\n /**\n * Severity of the failure for activity\n */\n failureSeverity?: number;\n /**\n * Warranty coverage for activity.\n */\n warrantyCoverage?: boolean;\n /**\n * Warranty Contract that covers the activity.\n */\n warrantyContract?: string;\n /**\n * Warranty Contract Number that covers the Vehicle.\n */\n contractNumber?: string;\n /**\n * Warranty Type that covers the activity.\n */\n warrantyType?: string;\n /**\n * Operation required parts.\n */\n causalPartId?: number;\n extraOperations?: Array;\n /**\n * Activity set to be deleted in backend\n */\n deleted?: boolean;\n loading?: boolean;\n /**\n * Payment Code\n */\n paymentCode?: string;\n /**\n * Payment Type Id\n */\n paymentTypeId?: number;\n /**\n * Pay Type\n */\n payType?: string;\n /**\n * Payment Sub Code\n */\n paymentSubcode?: string;\n /**\n * Payment Sub Type Id\n */\n paymentSubTypeId?: number;\n /**\n * Payment Sub 2 Code\n */\n paymentSub2Code?: string;\n /**\n * Payment Sub Type 2 Id\n */\n paymentSubType2Id?: number;\n /**\n * Payment Sub 3 Code\n */\n paymentSub3Code?: string;\n /**\n * Payment Sub Type 3 Id\n */\n paymentSubType3Id?: number;\n defectDescription?: string;\n supplierDescription?: string;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformation;\n couponStatus?: string;\n status?: JobcardItem.StatusEnum;\n totalPrice?: number;\n generalNote?: string;\n cause?: string;\n correction?: string;\n internalNotes?: string;\n paymentType?: PaymentType;\n paymentSubType?: PaymentSubType;\n paymentSubType2?: PaymentSubSubType;\n paymentSubType3?: PaymentSubSubType;\n paymentWarrantyType?: WarrantyType;\n isPaymentTypeDisabled?: boolean;\n isCausalPartDisabled?: boolean;\n startDate?: string;\n percentage?: number;\n discountTypeId?: number;\n technicians?: Array;\n installedDate?: string;\n amountUseOnSpareParts?: number;\n sparePartInvoiceNumber?: string;\n failedComponentSerialNumber?: number;\n replacedComponentSerialNumber?: number;\n preAuthorizationCode?: string;\n authorizerName?: JobcardItem.AuthorizerNameEnum;\n groupReplaced?: JobcardItem.GroupReplacedEnum;\n serviceParticipation?: number;\n warrantyClaimData?: WarrantyClaimData;\n selected?: boolean;\n inspectionActivity?: boolean;\n /**\n * Response from SAP system\n */\n sapResponse?: string;\n workshopBayId?: number;\n checklistInstances?: Array;\n /**\n * Status duration.\n */\n officialTime?: number;\n /**\n * PIP is or not yet available for this Vehicle/Product\n */\n disabled?: boolean;\n docId?: string;\n etimDocLink?: string;\n jobcardItemSpells?: Array;\n remainingDays?: number;\n jobcardItemCustomerStatus?: Array;\n activityValidated?: boolean;\n discounts?: Array;\n selectedDiscount?: string;\n isDiscountAvailable?: boolean;\n /**\n * temp Jobcard item ID used for booking screen handle drag and drop.\n */\n tempJId?: string;\n /**\n * Reason for deleting deffered activity\n */\n defferDeleteReason?: string;\n jobcardItemIuDocuments?: Array;\n duration?: number;\n}\nexport namespace JobcardItem {\n export type TypeEnum = 'alert' | 'pip' | 'fault' | 'nextMaintenance' | 'proposedMaintenance' | 'srt' | 'free' | 'deferred' | 'checklist' | 'etimWeb';\n export const TypeEnum = {\n Alert: 'alert' as TypeEnum,\n Pip: 'pip' as TypeEnum,\n Fault: 'fault' as TypeEnum,\n NextMaintenance: 'nextMaintenance' as TypeEnum,\n ProposedMaintenance: 'proposedMaintenance' as TypeEnum,\n Srt: 'srt' as TypeEnum,\n Free: 'free' as TypeEnum,\n Deferred: 'deferred' as TypeEnum,\n Checklist: 'checklist' as TypeEnum,\n EtimWeb: 'etimWeb' as TypeEnum\n };\n export type StatusEnum = 'normal' | 'inTime' | 'warning' | 'inDelay' | 'inProgress' | 'completed';\n export const StatusEnum = {\n Normal: 'normal' as StatusEnum,\n InTime: 'inTime' as StatusEnum,\n Warning: 'warning' as StatusEnum,\n InDelay: 'inDelay' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Completed: 'completed' as StatusEnum\n };\n export type AuthorizerNameEnum = 'NE' | 'CE';\n export const AuthorizerNameEnum = {\n NE: 'NE' as AuthorizerNameEnum,\n CE: 'CE' as AuthorizerNameEnum\n };\n export type GroupReplacedEnum = 'N' | 'R';\n export const GroupReplacedEnum = {\n N: 'N' as GroupReplacedEnum,\n R: 'R' as GroupReplacedEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Customer\\'s approval/rejection status response history.\n */\nexport interface JobcardItemCustomerStatus { \n id?: number;\n /**\n * Jobcard item reference ID\n */\n jobcardItemId?: number;\n /**\n * Action from user to check if they approve/reject an activity.\n */\n action?: JobcardItemCustomerStatus.ActionEnum;\n /**\n * Time stamp when the action is performed.\n */\n actionDateTime?: string;\n /**\n * The user/person name who acts on it.\n */\n actionPerformedBy?: string;\n /**\n * Online - indicating the action performed by customer; offline - indicating manual changes performed on DJC.\n */\n actionType?: JobcardItemCustomerStatus.ActionTypeEnum;\n}\nexport namespace JobcardItemCustomerStatus {\n export type ActionEnum = 'approve' | 'decline' | 'autoApv' | 'autoDec';\n export const ActionEnum = {\n Approve: 'approve' as ActionEnum,\n Decline: 'decline' as ActionEnum,\n AutoApv: 'autoApv' as ActionEnum,\n AutoDec: 'autoDec' as ActionEnum\n };\n export type ActionTypeEnum = 'online' | 'offline' | 'recep' | 'wty';\n export const ActionTypeEnum = {\n Online: 'online' as ActionTypeEnum,\n Offline: 'offline' as ActionTypeEnum,\n Recep: 'recep' as ActionTypeEnum,\n Wty: 'wty' as ActionTypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item details.\n */\nexport interface JobcardItemDeleted { \n /**\n * Jobcard item deleted ID.\n */\n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * IU or SRT associated to an activity.\n */\nexport interface JobcardItemIuDocument { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n vin?: string;\n jobcardItemId?: number;\n selected?: boolean;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnician } from './jobcardItemTechnician';\n\n\n/**\n * Spell details for an activity.\n */\nexport interface JobcardItemSpell { \n id?: number;\n workshopBayId?: number;\n estimatedDuration?: number;\n startDate?: string;\n /**\n * Spell weight used to display in order.\n */\n weight?: number;\n /**\n * Spell selection for drag n drop.\n */\n selected?: boolean;\n technicians?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item Status.\n */\nexport interface JobcardItemStatus { \n /**\n * Jobcard item Status ID.\n */\n id?: number;\n time?: string;\n endTime?: string;\n /**\n * Jobcard item status name\n */\n status?: JobcardItemStatus.StatusEnum;\n /**\n * Status duration.\n */\n duration?: number;\n /**\n * Jobcard item clocking status (whan a technician is working on the activity on the mobile app)\n */\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n /**\n * Jobcard appointment priority\n */\n appointmentPriority?: JobcardItemStatus.AppointmentPriorityEnum;\n /**\n * Jobcard Item Id.\n */\n jobcardItemId?: number;\n /**\n * Workshop User Id.\n */\n workshopUserId?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardItemStatus.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n /**\n * Soft delete\n */\n deleted?: boolean;\n /**\n * activity update in fron end.\n */\n currentChangeActivity?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n /**\n * Jobcard item Status DMS ID.\n */\n dmsId?: string;\n}\nexport namespace JobcardItemStatus {\n export type StatusEnum = 'new' | 'todo' | 'inProgress' | 'pending' | 'invoiced' | 'done' | 'inProgressProductive' | 'doneProductive' | 'pendingProductive' | 'doneNotWithinPlannedTime';\n export const StatusEnum = {\n New: 'new' as StatusEnum,\n Todo: 'todo' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Pending: 'pending' as StatusEnum,\n Invoiced: 'invoiced' as StatusEnum,\n Done: 'done' as StatusEnum,\n InProgressProductive: 'inProgressProductive' as StatusEnum,\n DoneProductive: 'doneProductive' as StatusEnum,\n PendingProductive: 'pendingProductive' as StatusEnum,\n DoneNotWithinPlannedTime: 'doneNotWithinPlannedTime' as StatusEnum\n };\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum\n };\n export type AppointmentPriorityEnum = 'high' | 'medium' | 'low' | 'nopriority';\n export const AppointmentPriorityEnum = {\n High: 'high' as AppointmentPriorityEnum,\n Medium: 'medium' as AppointmentPriorityEnum,\n Low: 'low' as AppointmentPriorityEnum,\n Nopriority: 'nopriority' as AppointmentPriorityEnum\n };\n export type ReasonEnum = 'forgotClockOn' | 'forgotClockOff' | 'helpingAnotherTechnician' | 'forgotClockInOut' | 'technicalErrors' | 'discount' | 'other';\n export const ReasonEnum = {\n ForgotClockOn: 'forgotClockOn' as ReasonEnum,\n ForgotClockOff: 'forgotClockOff' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n ForgotClockInOut: 'forgotClockInOut' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item Technician.\n */\nexport interface JobcardItemTechnician { \n /**\n * Intern ID of the link between the jobcard item and the technician.\n */\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n endDate?: string;\n /**\n * Intern ID of the link between the spell and the technician.\n */\n spellLinkId?: number;\n /**\n * to check whether the technician is available or not.\n */\n available?: boolean;\n /**\n * first name of technician\n */\n firstName?: string;\n /**\n * last name of technician\n */\n lastName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\n\n\n/**\n * Missing Part For Jobcard.\n */\nexport interface JobcardPartsBacklog { \n /**\n * id of the part to order\n */\n id?: number;\n /**\n * AppointmentId.\n */\n appointmentId?: number;\n /**\n * Jobcard item.\n */\n jobcardItemId?: number;\n /**\n * Missing part quantity.\n */\n quantity?: number;\n /**\n * Part id.\n */\n partId?: number;\n /**\n * Customer CompanyId .\n */\n customerCompanyId?: number;\n part?: Part;\n /**\n * add or replace part\n */\n view?: string;\n /**\n * workshop where the part are ordered\n */\n workshopId?: number;\n /**\n * id of the csps simulation\n */\n cspsOrderId?: number;\n /**\n * id of the csps simulation\n */\n orderSimulationId?: number;\n /**\n * status of the part\n */\n partStatus?: string;\n /**\n * basic discount\n */\n basicDiscount?: number;\n /**\n * promo discount\n */\n promoDiscount?: number;\n grossPrice?: number;\n netPrice?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n operation?: string;\n /**\n * Order simulation date.\n */\n orderSimulationDate?: string;\n /**\n * Order simulation date.\n */\n expectedDeliveryDate?: string;\n /**\n * additionnal part details\n */\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserTravelPosition } from './workshopUserTravelPosition';\nimport { PaymentSubSubType } from './paymentSubSubType';\nimport { PaymentType } from './paymentType';\nimport { PaymentSubType } from './paymentSubType';\n\n\n/**\n * Jobcard Travel\n */\nexport interface JobcardTravel { \n id?: number;\n name?: string;\n workshopUserId?: string;\n duration?: number;\n distance?: number;\n date?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardTravel.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n deleted?: boolean;\n /**\n * Technician\\'s GPS positions for the travel\n */\n positions?: Array;\n /**\n * Travel origin address line 1.\n */\n travelFromAddressLine1?: string;\n /**\n * Travel origin address line 2.\n */\n travelFromAddressLine2?: string;\n /**\n * Travel origin address line 3.\n */\n travelFromAddressLine3?: string;\n /**\n * Travel origin address line 4.\n */\n travelFromAddressLine4?: string;\n /**\n * Travel origin address postal code.\n */\n travelFromPostalCode?: string;\n /**\n * Travel destination address line 1.\n */\n travelToAddressLine1?: string;\n /**\n * Travel destination address line 2.\n */\n travelToAddressLine2?: string;\n /**\n * Travel destination address line 3.\n */\n travelToAddressLine3?: string;\n /**\n * Travel destination address line 4.\n */\n travelToAddressLine4?: string;\n /**\n * Travel destination address postal code.\n */\n travelToPostalCode?: string;\n /**\n * Internal comments on travel.\n */\n internalNotes?: string;\n /**\n * Estimated distance (in miles or KMs).\n */\n estimatedDistance?: number;\n /**\n * Estimated duration (in seconds).\n */\n estimatedDuration?: number;\n paymentType?: PaymentType;\n paymentSubType?: PaymentSubType;\n paymentSubSubType2?: PaymentSubSubType;\n paymentSubSubType3?: PaymentSubSubType;\n /**\n * Travel type code from DMS.\n */\n itemCode?: string;\n /**\n * Source of the travel (like pip).\n */\n travelSource?: string;\n /**\n * Additional code to identify the travel.\n */\n travelExtraCode?: string;\n travelVisible?: boolean;\n price?: number;\n travelFromShowCoordinates?: JobcardTravel.TravelFromShowCoordinatesEnum;\n travelToShowCoordinates?: JobcardTravel.TravelToShowCoordinatesEnum;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToLatitude?: number;\n travelToLongitude?: number;\n /**\n * Travel type to differentiate from travel.\n */\n travelTypeFrom?: string;\n /**\n * Travel type to differentiate to travel.\n */\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelToManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToGpsImportedDate?: string;\n /**\n * Warranty Claim numbers concatenated, separated by \\\";\\\"\n */\n warrantyClaimNumbers?: string;\n /**\n * Response from SAP system\n */\n sapResponse?: string;\n}\nexport namespace JobcardTravel {\n export type ReasonEnum = 'forgotRecordTravel' | 'forgotStartStop' | 'helpingAnotherTechnician' | 'technicalErrors' | 'discount' | 'other';\n export const ReasonEnum = {\n ForgotRecordTravel: 'forgotRecordTravel' as ReasonEnum,\n ForgotStartStop: 'forgotStartStop' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n export type TravelFromShowCoordinatesEnum = 'travelFromAddress' | 'travelFromCoordinates';\n export const TravelFromShowCoordinatesEnum = {\n TravelFromAddress: 'travelFromAddress' as TravelFromShowCoordinatesEnum,\n TravelFromCoordinates: 'travelFromCoordinates' as TravelFromShowCoordinatesEnum\n };\n export type TravelToShowCoordinatesEnum = 'travelToAddress' | 'travelToCoordinates';\n export const TravelToShowCoordinatesEnum = {\n TravelToAddress: 'travelToAddress' as TravelToShowCoordinatesEnum,\n TravelToCoordinates: 'travelToCoordinates' as TravelToShowCoordinatesEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KaAttachment { \n type?: string;\n name?: string;\n fileName?: string;\n visible?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KaElement { \n publicationYear?: string;\n creationDate?: string;\n modificationDate?: string;\n expirationDate?: string;\n visibility?: string;\n status?: string;\n group?: string;\n subGroup?: string;\n defect?: string;\n locationDescr?: string;\n documentType?: string;\n srcLanguage?: string;\n failureMode?: string;\n engineType?: string;\n sponsored?: boolean;\n idAuthor?: string;\n region?: string;\n isLocalContainment?: boolean;\n isInterimKnowledge?: boolean;\n nextReviewDate?: string;\n thdLinkNumber?: string;\n uniqueKmLinkNumber?: string;\n isKmAuthoringUsers?: boolean;\n interactiveLogDate?: string;\n interactiveEvent?: string;\n interactiveStatus?: string;\n interactiveId?: string;\n order?: string;\n outcomeDate?: string;\n isVisible?: boolean;\n advancedDiagnostic?: string;\n docLabel?: string;\n engineTypeCylinder?: string;\n engineTypeEngCycle?: string;\n engineTypeEngFamily?: string;\n engineTypeEuro?: string;\n engineTypeFamEvol?: string;\n engineTypeGasEmLevel?: string;\n engineTypePower?: string;\n engineTypePowerSupply?: string;\n engineTypeUse?: string;\n originalDocId?: string;\n sapLanguage?: string;\n sapDescription?: string;\n pubExtraTitle?: string;\n pubLegacyPath?: string;\n eltid?: string;\n legacy?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KaLink { \n docPubDate?: string;\n pubNumberExactMatching?: string;\n version?: string;\n isLocalContainment?: boolean;\n isInterimKnowledge?: boolean;\n visible?: boolean;\n legacy?: boolean;\n myLang?: boolean;\n eltid?: string;\n extratitle?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KaLocations { \n familyIceCode?: string;\n familyName?: string;\n groupIceCode?: string;\n groupName?: string;\n subGroupIceCode?: string;\n subGroupName?: string;\n mandatory?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { KaLocations } from './kaLocations';\nimport { KaAttachment } from './kaAttachment';\nimport { KaLink } from './kaLink';\nimport { KaElement } from './kaElement';\n\n\nexport interface KaMetaData { \n kaDetails?: KaElement;\n title?: string;\n date?: string;\n pubNumberExactMatching?: string;\n kaLinks?: Array;\n attachments?: Array;\n kaLocations?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\n\n\n/**\n * Vehicle part assembly kit.\n */\nexport interface Kit { \n /**\n * Kit ID.\n */\n id: number;\n name?: string;\n workshopId?: number;\n jobcardItems?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Composition of a kit\n */\nexport interface KitPart { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Languages referential\n */\nexport interface Language { \n id?: number;\n /**\n * Language ID\n */\n languageId?: string;\n /**\n * Language name\n */\n languageName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LegacyFaultCodeDto { \n webEcId?: string;\n webDescription?: string;\n webErrorCode?: number;\n ecuName?: string;\n webEcCompFailure?: string;\n webEcErrorType?: string;\n webEcVisibleFault?: string;\n webEcpossibleCause?: string;\n webEcAction?: string;\n webEcControll?: string;\n webEcCondMesure?: string;\n webEcMeasure?: string;\n webEcNote?: string;\n webEcIdLanguage?: string;\n webEcCcm?: string;\n webEcSymptom?: string;\n webEcBlinkCode?: string;\n webEcInstrumentation?: string;\n webEcQuestion?: string;\n webEcIconColor?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LegacyTocDto { \n pubNumber?: string;\n pubLanguage?: string;\n level1?: string;\n level2?: string;\n level3?: string;\n level4?: string;\n level5?: string;\n level6?: string;\n level7?: string;\n page?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { TelemetryValue } from './telemetryValue';\nimport { TelemetryUOM } from './telemetryUOM';\n\n\nexport interface LightLatestAnalyticData { \n description?: string;\n selected?: boolean;\n id?: number;\n title?: string;\n _function?: string;\n unitMeasure?: TelemetryUOM;\n telemetryValue?: TelemetryValue;\n time?: string;\n defaultDisplay?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LocalNoteResponseDto { \n userId?: string;\n iuId?: string;\n content?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * context market.\n */\nexport interface Market { \n /**\n * market ID.\n */\n id?: number;\n /**\n * market code name.\n */\n name?: string;\n /**\n * market full label.\n */\n description?: string;\n /**\n * market abbreviation.\n */\n abbrev?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Market } from './market';\n\n\n/**\n * infotype information.\n */\nexport interface MarketContext { \n market?: Market;\n country?: string;\n brandIceCode?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MarketCountries { \n market?: number;\n countryList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { TechnicalType } from './technicalType';\nimport { Series } from './series';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' model.\n */\nexport interface Model { \n /**\n * Model ID.\n */\n id: number;\n /**\n * Model name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n brand?: Brand;\n series?: Series;\n ttList?: Array;\n}\n\n","export * from './activeWarranty';\nexport * from './addInfos';\nexport * from './alert';\nexport * from './alertForHistory';\nexport * from './alertForSmartView';\nexport * from './analyticData';\nexport * from './analyticsDataRefreshTime';\nexport * from './apiError';\nexport * from './appTeaserResponseDto';\nexport * from './appVersion';\nexport * from './applicabilityResult';\nexport * from './appointment';\nexport * from './appointmentIuDocument';\nexport * from './appointmentSignature';\nexport * from './appointmentStatus';\nexport * from './appointmentUnitStatus';\nexport * from './archiveReportFileResult';\nexport * from './archiveReportResult';\nexport * from './archiveReportResultData';\nexport * from './assetsDetails';\nexport * from './azureAccount';\nexport * from './bmkHistCommonDto';\nexport * from './bookmarkDto';\nexport * from './bookmarkElement';\nexport * from './bookmarkResponseDto';\nexport * from './brand';\nexport * from './brandMarketLanguages';\nexport * from './brandMarketUrlLanguage';\nexport * from './brandsMarketsLanguages';\nexport * from './cANCategoriesDescription';\nexport * from './categoryIwd';\nexport * from './checklistCheck';\nexport * from './checklistDamage';\nexport * from './checklistGroup';\nexport * from './checklistInstance';\nexport * from './checklistQuestion';\nexport * from './checklistResult';\nexport * from './checklistResultAttachment';\nexport * from './chosenTxtCtrl';\nexport * from './consumable';\nexport * from './consumables';\nexport * from './count';\nexport * from './countryTimeZone';\nexport * from './cpdContactDetails';\nexport * from './ctrlMeasurementDto';\nexport * from './currency';\nexport * from './customerAlertFeedback';\nexport * from './customerCompany';\nexport * from './customerCompanyUser';\nexport * from './dMCDto';\nexport * from './dashboardAlert';\nexport * from './dashboardMyAlerts';\nexport * from './dashboardTeaserPopIn';\nexport * from './decryptResult';\nexport * from './decryptTidb';\nexport * from './device';\nexport * from './deviceDocument';\nexport * from './docType';\nexport * from './documentHasSchematics';\nexport * from './documentInfo';\nexport * from './documentInfoPdf';\nexport * from './downloadableFileDto';\nexport * from './dqrElement';\nexport * from './dqrFailureCode';\nexport * from './dqrFaultStatus';\nexport * from './dqrFaultStatusExport';\nexport * from './dqrForm';\nexport * from './dqrGroup';\nexport * from './dqrHistoryDto';\nexport * from './dqrHistoryDtoMap';\nexport * from './dqrQuestion';\nexport * from './dqrReport';\nexport * from './dqrReportMobile';\nexport * from './dqrResponse';\nexport * from './dqrSeverityCode';\nexport * from './dqrSubmitResult';\nexport * from './dqrTasksByType';\nexport * from './elementSearchResult';\nexport * from './elementSearchResultFaultCodeDto';\nexport * from './elementSearchResultLegacyFaultCodeDto';\nexport * from './elementSearchResultPdf';\nexport * from './elementSearchResultSgTitleDto';\nexport * from './enumException';\nexport * from './epartsBrandResult';\nexport * from './epartsPart';\nexport * from './etimSettingDto';\nexport * from './executedPip';\nexport * from './extraOperation';\nexport * from './failureModeDetails';\nexport * from './fictitiousMaterial';\nexport * from './geoStoreDetails';\nexport * from './geoStorePosition';\nexport * from './guidedProcedure';\nexport * from './higherFaultCodePriorityDto';\nexport * from './higherFaultCodePriorityDtoList';\nexport * from './historyElement';\nexport * from './homePageLanguage';\nexport * from './homepageData';\nexport * from './hotspotDto';\nexport * from './hotspotIuIceCodeDto';\nexport * from './iQuestion';\nexport * from './iQuickCloseForm';\nexport * from './iResponse';\nexport * from './iUGenericTagDto';\nexport * from './iceLocationDto';\nexport * from './illustration';\nexport * from './imageInfoDto';\nexport * from './infotypeView';\nexport * from './inlineResponse200';\nexport * from './instructionElement';\nexport * from './instructionElementAttention';\nexport * from './instructions';\nexport * from './interactiveData';\nexport * from './interactiveIU';\nexport * from './interactiveViewDto';\nexport * from './iuDocDto';\nexport * from './iuDocumentBasketDto';\nexport * from './iuDocumentDto';\nexport * from './iuLinkBasket';\nexport * from './jobcard';\nexport * from './jobcardAttachment';\nexport * from './jobcardItem';\nexport * from './jobcardItemCustomerStatus';\nexport * from './jobcardItemDeleted';\nexport * from './jobcardItemIuDocument';\nexport * from './jobcardItemSpell';\nexport * from './jobcardItemStatus';\nexport * from './jobcardItemTechnician';\nexport * from './jobcardPartsBacklog';\nexport * from './jobcardTravel';\nexport * from './kaAttachment';\nexport * from './kaElement';\nexport * from './kaLink';\nexport * from './kaLocations';\nexport * from './kaMetaData';\nexport * from './kit';\nexport * from './kitPart';\nexport * from './language';\nexport * from './legacyFaultCodeDto';\nexport * from './legacyTocDto';\nexport * from './lightLatestAnalyticData';\nexport * from './localNoteResponseDto';\nexport * from './market';\nexport * from './marketContext';\nexport * from './marketCountries';\nexport * from './model';\nexport * from './modularDiagnosticInteractiveData';\nexport * from './monJumpFleetSmartviewDto';\nexport * from './mpInformation';\nexport * from './mpInformationDelta';\nexport * from './mpNotifs';\nexport * from './multiMediaVideo';\nexport * from './name';\nexport * from './onHoldReason';\nexport * from './openingDay';\nexport * from './openingDayPeriods';\nexport * from './operation';\nexport * from './operationConsumable';\nexport * from './operationPart';\nexport * from './operationPartLocation';\nexport * from './oprConsumable';\nexport * from './part';\nexport * from './partAvailability';\nexport * from './paymentSubSubType';\nexport * from './paymentSubType';\nexport * from './paymentType';\nexport * from './pdfDto';\nexport * from './petDto';\nexport * from './pinRangeDto';\nexport * from './pipSbIu';\nexport * from './priorityType';\nexport * from './product';\nexport * from './productConfig';\nexport * from './productConfiguration';\nexport * from './productConfigurationConfigsList';\nexport * from './productObj';\nexport * from './quickCloseAlertFormResults';\nexport * from './ratingResponseDto';\nexport * from './refImageLocationDto';\nexport * from './region';\nexport * from './remoteDisplayConnection';\nexport * from './reportsRequestDto';\nexport * from './requestInteractiveIU';\nexport * from './responseCheckTask';\nexport * from './result';\nexport * from './role';\nexport * from './routine';\nexport * from './saveMetaDatas';\nexport * from './sdpTransactionId';\nexport * from './searchByPartNumberParams';\nexport * from './searchByPartNumberResult';\nexport * from './searchByPartNumberResultAllOf';\nexport * from './searchByPlateParams';\nexport * from './searchByPlateResult';\nexport * from './searchByPlateResultAllOf';\nexport * from './searchByTTBMParams';\nexport * from './searchByTTBMResult';\nexport * from './searchByTTBMResultAllOf';\nexport * from './searchByVCBParams';\nexport * from './searchByVCBResult';\nexport * from './searchByVCBResultAllOf';\nexport * from './searchByVinParams';\nexport * from './searchByVinParamsMyBrand';\nexport * from './searchByVinResult';\nexport * from './series';\nexport * from './serviceNotification';\nexport * from './serviceNotificationAppli';\nexport * from './serviceNotificationContext';\nexport * from './serviceNotificationDetails';\nexport * from './serviceNotificationDocument';\nexport * from './serviceNotificationLabels';\nexport * from './serviceNotificationLanguage';\nexport * from './serviceNotificationMaintenance';\nexport * from './serviceNotificationResult';\nexport * from './serviceNotificationScreen';\nexport * from './serviceNotificationUser';\nexport * from './sgTitleDto';\nexport * from './sharedHistory';\nexport * from './shift';\nexport * from './shiftPeriods';\nexport * from './shortLocation';\nexport * from './shortLocationWithTidbId';\nexport * from './shortPdfLegacy';\nexport * from './skill';\nexport * from './smTreeIu';\nexport * from './smTreeSubGroup';\nexport * from './smTreeTopic';\nexport * from './smartWarrantyData';\nexport * from './smartWarrantyGroupData';\nexport * from './specialToolView';\nexport * from './split';\nexport * from './srtDocument';\nexport * from './srtWarrantyCodeDto';\nexport * from './status';\nexport * from './steps';\nexport * from './tdsChapter';\nexport * from './tdsIu';\nexport * from './technicalType';\nexport * from './telemetry';\nexport * from './telemetryStatus';\nexport * from './telemetryUOM';\nexport * from './telemetryValue';\nexport * from './tidbSbDto';\nexport * from './title';\nexport * from './tokenRequest';\nexport * from './tools';\nexport * from './tutorialDocDto';\nexport * from './txtCtrlResultDto';\nexport * from './types';\nexport * from './unitDto';\nexport * from './uptimeDossierInfo';\nexport * from './url';\nexport * from './urlLang';\nexport * from './user';\nexport * from './userPrefKeyValueDto';\nexport * from './userPrefs';\nexport * from './vehicle';\nexport * from './vehicleCourtesy';\nexport * from './vehicleCourtesyBooking';\nexport * from './vinInfoDto';\nexport * from './visibility';\nexport * from './wPAEngineFormDto';\nexport * from './wPAEnginePdfInfosDto';\nexport * from './warrantyClaimData';\nexport * from './warrantyCodes';\nexport * from './warrantyType';\nexport * from './webPipExtension';\nexport * from './webSBHeader';\nexport * from './workshop';\nexport * from './workshopBay';\nexport * from './workshopDiscount';\nexport * from './workshopSale';\nexport * from './workshopUser';\nexport * from './workshopUserTravelPosition';\nexport * from './workshopUserUnavailability';\nexport * from './wpaOcFormDto';\nexport * from './wpaOcFormForPdfDto';\nexport * from './wpaOcFormIncOpeDto';\nexport * from './wpaOcFormOcOweDto';\nexport * from './wpaOcFormOcPartDto';\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FailureModeDetails } from './failureModeDetails';\nimport { InteractiveData } from './interactiveData';\n\n\nexport interface ModularDiagnosticInteractiveData { \n iuDiagId?: string;\n iuDiagInteractiveId?: number;\n iuDiagInteractiveData?: InteractiveData;\n fmList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MonJumpFleetSmartviewDto { \n id?: number;\n userId?: string;\n dealerCode?: string;\n sn?: string;\n date?: string;\n status?: number;\n mfStatus?: string;\n mfNbTechAlertLow?: number;\n mfNbTechAlertMedium?: number;\n mfNbTechAlertHigh?: number;\n mfNbMpAlertLow?: number;\n mfNbMpAlertMedium?: number;\n mfNbMpAlertHigh?: number;\n mfNbDqr?: number;\n mfNbPipLow?: number;\n mfNbPipMedium?: number;\n mfNbPipHigh?: number;\n mfNbKa?: number;\n mfNbFc?: number;\n svStatus?: string;\n svNbTechAlertLow?: number;\n svNbTechAlertMedium?: number;\n svNbTechAlertHigh?: number;\n svNbMpAlertLow?: number;\n svNbMpAlertMedium?: number;\n svNbMpAlertHigh?: number;\n svNbDqr?: number;\n svNbPipLow?: number;\n svNbPipMedium?: number;\n svNbPipHigh?: number;\n svNbKa?: number;\n svNbFc?: number;\n brandName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpInformationDelta } from './mpInformationDelta';\n\n\n/**\n * MP Information linked to jobcard Item\n */\nexport interface MpInformation { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * MP Delta information for overdue or close activities\n */\nexport interface MpInformationDelta { \n unit?: string;\n value?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MpNotifs { \n mpNotifId?: number;\n brand?: string;\n region?: number;\n language?: string;\n mpNotifValueHours?: number;\n mpNotifValueDays?: number;\n modified?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MultiMediaVideo { \n id?: string;\n name?: string;\n path?: string;\n lang?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Traducted name object\n */\nexport interface Name { \n id?: number;\n idLanguage?: string;\n name?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReason { \n /**\n * onhold ID.\n */\n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OpeningDayPeriods } from './openingDayPeriods';\n\n\nexport interface OpeningDay { \n id?: number;\n weekday?: OpeningDay.WeekdayEnum;\n periods?: Array;\n}\nexport namespace OpeningDay {\n export type WeekdayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const WeekdayEnum = {\n Monday: 'monday' as WeekdayEnum,\n Tuesday: 'tuesday' as WeekdayEnum,\n Wednesday: 'wednesday' as WeekdayEnum,\n Thursday: 'thursday' as WeekdayEnum,\n Friday: 'friday' as WeekdayEnum,\n Saturday: 'saturday' as WeekdayEnum,\n Sunday: 'sunday' as WeekdayEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OpeningDayPeriods { \n id?: number;\n /**\n * Only the hours and minutes are used\n */\n start?: string;\n /**\n * Only the hours and minutes are used\n */\n end?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OperationPart } from './operationPart';\nimport { Kit } from './kit';\nimport { OperationConsumable } from './operationConsumable';\n\n\n/**\n * Technical operation details.\n */\nexport interface Operation { \n /**\n * Operation ID.\n */\n id?: number;\n /**\n * Operation code.\n */\n code?: string;\n /**\n * Operation label.\n */\n label: string;\n /**\n * Operation official time estimation.\n */\n officialTime?: number;\n /**\n * Operation custom time estimation.\n */\n durationTime?: number;\n /**\n * Operation weight used to order the operations.\n */\n weight?: number;\n /**\n * Part manufacturer.\n */\n manufacturer?: string;\n /**\n * Operation required parts.\n */\n parts?: Array;\n /**\n * Operation required consumables.\n */\n consumables?: Array;\n /**\n * Operation required part kits.\n */\n kits?: Array;\n price?: number;\n compulsory?: boolean;\n selected?: boolean;\n /**\n * Check if kit part usable instead of part\n */\n isKitComplete?: boolean;\n /**\n * Use kit instead of part\n */\n useKitPart?: boolean;\n isPartAvailable?: boolean;\n /**\n * Is SRT or not\n */\n srt?: boolean;\n /**\n * type.\n */\n type?: string;\n /**\n * Is default or not\n */\n isDefault?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OprConsumable } from './oprConsumable';\nimport { FictitiousMaterial } from './fictitiousMaterial';\n\n\n/**\n * Operation part need.\n */\nexport interface OperationConsumable { \n /**\n * Operation part association ID.\n */\n id?: number;\n consumable?: OprConsumable;\n /**\n * Parent operation ID.\n */\n operationId?: number;\n /**\n * Part needed quantity.\n */\n quantity?: number;\n selected?: boolean;\n /**\n * Consumable code.\n */\n code?: string;\n ewarrantyCode?: FictitiousMaterial;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FictitiousMaterial } from './fictitiousMaterial';\nimport { Part } from './part';\nimport { OperationPartLocation } from './operationPartLocation';\n\n\n/**\n * Operation part need.\n */\nexport interface OperationPart { \n /**\n * Operation part association ID.\n */\n id?: number;\n part?: Part;\n compulsory?: boolean;\n /**\n * Parent operation ID.\n */\n operationId?: number;\n /**\n * Part needed quantity.\n */\n quantity?: number;\n /**\n * Part needed quantity.\n */\n quantityInStock?: number;\n /**\n * Part needed quantity.\n */\n quantityOnOrder?: number;\n /**\n * Part needed quantity.\n */\n quantityInTransit?: number;\n /**\n * Check if part needs to be returned or not.\n */\n toBeReturned?: boolean;\n maxQuantity?: number;\n price?: number;\n cost?: number;\n selected?: boolean;\n isHomeLocation?: boolean;\n /**\n * Operation required part location.\n */\n jobcardItemOperationPartLocationList?: Array;\n isAvailableAtHomeLocation?: boolean;\n isAvailableAtOtherLocation?: boolean;\n isNotAvailable?: boolean;\n pickupDate?: string;\n ewarrantyCode?: FictitiousMaterial;\n scannedWithMobile?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Operation part location need.\n */\nexport interface OperationPartLocation { \n /**\n * Operation part association ID.\n */\n id?: number;\n /**\n * Operation part Location ID.\n */\n locationId?: string;\n /**\n * Parent operation ID.\n */\n partId?: number;\n /**\n * Part needed quantity.\n */\n quantityInStock?: number;\n /**\n * Part needed quantity.\n */\n quantityOnOrder?: number;\n /**\n * Part needed quantity.\n */\n quantityInTransit?: number;\n siteName?: string;\n locationName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Operation consumable.\n */\nexport interface OprConsumable { \n /**\n * Consumable ID.\n */\n id: number;\n /**\n * Consumable code.\n */\n code: string;\n /**\n * Consumable part Number.\n */\n partNumber?: string;\n /**\n * Consumable needed quantity.\n */\n quantity?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { KitPart } from './kitPart';\nimport { PartAvailability } from './partAvailability';\n\n\n/**\n * Vehicle part.\n */\nexport interface Part { \n /**\n * Part ID.\n */\n id: number;\n /**\n * Part serial number.\n */\n code?: string;\n /**\n * Part description.\n */\n description?: string;\n /**\n * Part manufacturer.\n */\n manufacturer?: string;\n /**\n * Proprietary workshop ID.\n */\n workshopId?: number;\n isKit?: boolean;\n kitPart?: Array;\n /**\n * quantityInStock.\n */\n quantityInStock?: number;\n /**\n * quantityOnOrder.\n */\n quantityOnOrder?: number;\n /**\n * quantityInTransit.\n */\n quantityInTransit?: number;\n quantity?: number;\n partSuperseedingId?: number;\n cspsPartDetails?: Array;\n /**\n * total Available CSPS quantity\n */\n totalAvailableCspsQty?: number;\n /**\n * Home location for parts\n */\n isHomeLocation?: boolean;\n isValidPart?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS part availability.\n */\nexport interface PartAvailability { \n partCode?: string;\n /**\n * Part code.\n */\n localCode?: string;\n /**\n * Part name.\n */\n localName?: string;\n /**\n * localAvailable_qty.\n */\n localAvailable_qty?: number;\n /**\n * localReserved_qty.\n */\n localReserved_qty?: number;\n /**\n * localAssigned_qty.\n */\n localAssigned_qty?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Payment Sub Types 2 & 3.\n */\nexport interface PaymentSubSubType { \n /**\n * Payment Sub Type ID.\n */\n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n isVisible?: boolean;\n weight?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubType } from './paymentSubSubType';\n\n\n/**\n * Payment Sub Types.\n */\nexport interface PaymentSubType { \n /**\n * Payment Sub Type ID.\n */\n id?: number;\n code?: string;\n type?: string;\n categoryType?: string;\n description?: string;\n isVisible?: boolean;\n weight?: number;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubType } from './paymentSubType';\n\n\n/**\n * Payment Types.\n */\nexport interface PaymentType { \n /**\n * Payment Type ID.\n */\n id?: number;\n code?: string;\n type?: PaymentType.TypeEnum;\n name?: string;\n isVisible?: boolean;\n paymentSubTypes?: Array;\n weight?: number;\n}\nexport namespace PaymentType {\n export type TypeEnum = 'retail' | 'warranty' | 'internal' | 'otherWarranty';\n export const TypeEnum = {\n Retail: 'retail' as TypeEnum,\n Warranty: 'warranty' as TypeEnum,\n Internal: 'internal' as TypeEnum,\n OtherWarranty: 'otherWarranty' as TypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PdfDto { \n pageNumber?: number;\n azurePath?: string;\n searchedPage?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PetDto { \n pipCode?: string;\n interactive?: boolean;\n solved?: boolean;\n executed?: boolean;\n iuId?: string;\n docId?: string;\n docType?: string;\n sentToEds?: boolean;\n sentToDms?: boolean;\n status?: string;\n diffDealer?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PinRangeDto { \n /**\n * pin min.\n */\n min?: string;\n /**\n * pin max.\n */\n max?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PipSbIu { \n iuId?: string;\n isInteractive?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * priority Types.\n */\nexport interface PriorityType { \n /**\n * Payment Type ID.\n */\n id?: number;\n description?: string;\n icon?: string;\n value?: string;\n status?: PriorityType.StatusEnum;\n type?: string;\n defaultPriority?: boolean;\n}\nexport namespace PriorityType {\n export type StatusEnum = 'High' | 'Medium' | 'Low' | 'NoPriority';\n export const StatusEnum = {\n High: 'High' as StatusEnum,\n Medium: 'Medium' as StatusEnum,\n Low: 'Low' as StatusEnum,\n NoPriority: 'NoPriority' as StatusEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { TechnicalType } from './technicalType';\nimport { Series } from './series';\nimport { Types } from './types';\nimport { ProductObj } from './productObj';\nimport { Model } from './model';\n\n\n/**\n * Product information\n */\nexport interface Product { \n modelName?: string;\n fullIceCode?: string;\n vin?: string;\n ttCode?: string;\n brandDto?: Brand;\n modelDto?: Model;\n technicalTypeDto?: TechnicalType;\n typeDto?: Types;\n seriesDto?: Series;\n productDto?: ProductObj;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ProductConfig { \n serialVersionUID?: number;\n idConfig?: number;\n idLanguage?: string;\n name?: string;\n description?: string;\n configItemId?: number;\n configItemName?: string;\n techTypeConfig?: boolean;\n primaryConfig?: boolean;\n customizedConfig?: boolean;\n configItemPRPCode?: string;\n configValuePRPCode?: string;\n statusVCB?: string;\n statusTT?: string;\n statusSAPBroker?: string;\n statusContrat?: string;\n statusHistory?: string;\n standard?: boolean;\n low?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ProductConfigurationConfigsList } from './productConfigurationConfigsList';\n\n\nexport interface ProductConfiguration { \n serialVersionUID?: number;\n configsList?: ProductConfigurationConfigsList;\n selectedConfiguration?: ProductConfigurationConfigsList;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ProductConfig } from './productConfig';\n\n\nexport interface ProductConfigurationConfigsList { \n key?: string;\n value?: ProductConfig;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Series } from './series';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' product.\n */\nexport interface ProductObj { \n /**\n * Type ID.\n */\n id: number;\n /**\n * type name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n seriesList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Result } from './result';\n\n\nexport interface QuickCloseAlertFormResults { \n alertID?: number;\n dateClosure?: number;\n results?: Array;\n closureType?: string;\n pinVin?: string;\n comments?: string;\n rootCause?: string;\n failureModeId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RatingResponseDto { \n rating?: string;\n average?: string;\n nbVote?: string;\n threshold?: string;\n max?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RefImageLocationDto { \n connectorIdRef?: string;\n locationId?: string;\n seq?: string;\n seqLocation?: string;\n width?: string;\n height?: string;\n filenamemin?: string;\n filenamemax?: string;\n annoid?: string;\n azureUrlParent?: string;\n azureUrlLocation?: string;\n text?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Region { \n id?: number;\n name?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RemoteDisplayConnection { \n appId: string;\n clientId: string;\n statusCode: string;\n status: string;\n timeStamp: string;\n transactionId: string;\n urlTeamviewer: string;\n vin: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VinInfoDto } from './vinInfoDto';\n\n\nexport interface ReportsRequestDto { \n creationDate: string;\n reportName: string;\n startDate: string;\n endDate: string;\n vinList: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RequestInteractiveIU { \n id?: string;\n docType?: string;\n iuDiagId?: string;\n iuDiagInteractiveId?: number;\n /**\n * Is it a Modular Diagnostic IU with Failure mode IUs?\n */\n isFailureMode?: boolean;\n /**\n * Is it an Id of the parent interactive IU\n */\n parentInteractiveId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ResponseCheckTask { \n darCreatable?: boolean;\n pdiCreatable?: boolean;\n mtnCreatable?: boolean;\n ppdCreatable?: boolean;\n nppCreatable?: boolean;\n lpaCreatable?: boolean;\n lagCreatable?: boolean;\n lpdCreatable?: boolean;\n wckCreatable?: boolean;\n taiCreatable?: boolean;\n tdrCreatable?: boolean;\n fptCreatable?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Result { \n questionId?: number;\n responseId?: number;\n labelQuestionId?: string;\n labelResponseId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Role { \n id: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Routine { \n id?: string;\n title?: string;\n docType?: string;\n order?: number;\n iceCode?: string;\n outcomeStatus?: number;\n outcomeDate?: string;\n dealerCode?: string;\n statusId?: number;\n status?: string;\n statusPdfFileName?: string;\n statusSourceLg?: string;\n troubleEvent?: string;\n troubleLogDate?: string;\n iuId?: string;\n link?: string;\n azurePdfLink?: string;\n isAdvancedDiagnostic?: boolean;\n iuDiagId?: string;\n iuDiagInteractiveId?: number;\n isFailureMode?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PipSbIu } from './pipSbIu';\n\n\nexport interface SaveMetaDatas { \n interactiveId?: number;\n isKa?: boolean;\n isSbPip?: boolean;\n onlyActiveStep?: boolean;\n pipSbIuList?: Array;\n docId?: string;\n pdfFileName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SdpTransactionId { \n interval: number;\n maxRetry: number;\n message?: string;\n transactionId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\n\n\nexport interface SearchByPartNumberParams { \n partNumber?: string;\n modelIceCode?: string;\n brand?: Brand;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Product } from './product';\nimport { SearchByVinResult } from './searchByVinResult';\nimport { SearchByPartNumberResultAllOf } from './searchByPartNumberResultAllOf';\n\n\nexport interface SearchByPartNumberResult { \n searchedSerialNumber?: string;\n nineDigitSerialNumber?: string;\n seventeenDigitSerialNumber?: string;\n withCompletion?: boolean;\n hasValidLength?: boolean;\n hasResult?: boolean;\n hasVehicleInformation?: boolean;\n searchType?: string;\n ttSelectionNeeded?: boolean;\n applicableToCurrentBrand?: boolean;\n applicableToCurrentMarket?: boolean;\n vinSelectionNecessary?: boolean;\n products?: Array;\n newMarket?: number;\n newCountry?: string;\n newLanguage?: string;\n partNumber?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SearchByPartNumberResultAllOf { \n partNumber?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\n\n\nexport interface SearchByPlateParams { \n plate?: string;\n brand?: Brand;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { SearchByPlateResultAllOf } from './searchByPlateResultAllOf';\nimport { Product } from './product';\nimport { SearchByVinResult } from './searchByVinResult';\n\n\nexport interface SearchByPlateResult { \n searchedSerialNumber?: string;\n nineDigitSerialNumber?: string;\n seventeenDigitSerialNumber?: string;\n withCompletion?: boolean;\n hasValidLength?: boolean;\n hasResult?: boolean;\n hasVehicleInformation?: boolean;\n searchType?: string;\n ttSelectionNeeded?: boolean;\n applicableToCurrentBrand?: boolean;\n applicableToCurrentMarket?: boolean;\n vinSelectionNecessary?: boolean;\n products?: Array;\n newMarket?: number;\n newCountry?: string;\n newLanguage?: string;\n plate?: string;\n isSearchByPlateAvailable?: boolean;\n isModelFoundByPlate?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SearchByPlateResultAllOf { \n plate?: string;\n isSearchByPlateAvailable?: boolean;\n isModelFoundByPlate?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\n\n\nexport interface SearchByTTBMParams { \n bm?: string;\n modelIceCode?: string;\n brand?: Brand;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Product } from './product';\nimport { SearchByTTBMResultAllOf } from './searchByTTBMResultAllOf';\nimport { SearchByVinResult } from './searchByVinResult';\n\n\nexport interface SearchByTTBMResult { \n searchedSerialNumber?: string;\n nineDigitSerialNumber?: string;\n seventeenDigitSerialNumber?: string;\n withCompletion?: boolean;\n hasValidLength?: boolean;\n hasResult?: boolean;\n hasVehicleInformation?: boolean;\n searchType?: string;\n ttSelectionNeeded?: boolean;\n applicableToCurrentBrand?: boolean;\n applicableToCurrentMarket?: boolean;\n vinSelectionNecessary?: boolean;\n products?: Array;\n newMarket?: number;\n newCountry?: string;\n newLanguage?: string;\n bm?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SearchByTTBMResultAllOf { \n bm?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\n\n\nexport interface SearchByVCBParams { \n vcb?: string;\n brand?: Brand;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Product } from './product';\nimport { SearchByVinResult } from './searchByVinResult';\nimport { SearchByVCBResultAllOf } from './searchByVCBResultAllOf';\n\n\nexport interface SearchByVCBResult { \n searchedSerialNumber?: string;\n nineDigitSerialNumber?: string;\n seventeenDigitSerialNumber?: string;\n withCompletion?: boolean;\n hasValidLength?: boolean;\n hasResult?: boolean;\n hasVehicleInformation?: boolean;\n searchType?: string;\n ttSelectionNeeded?: boolean;\n applicableToCurrentBrand?: boolean;\n applicableToCurrentMarket?: boolean;\n vinSelectionNecessary?: boolean;\n products?: Array;\n newMarket?: number;\n newCountry?: string;\n newLanguage?: string;\n vcb?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SearchByVCBResultAllOf { \n vcb?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\n\n\nexport interface SearchByVinParams { \n vin?: string;\n brand?: Brand;\n modelIceCode?: string;\n country?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\n\n\nexport interface SearchByVinParamsMyBrand { \n vin?: string;\n brand?: Brand;\n modelIceCode?: string;\n country?: string;\n language?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Product } from './product';\n\n\nexport interface SearchByVinResult { \n searchedSerialNumber?: string;\n nineDigitSerialNumber?: string;\n seventeenDigitSerialNumber?: string;\n withCompletion?: boolean;\n hasValidLength?: boolean;\n hasResult?: boolean;\n hasVehicleInformation?: boolean;\n searchType?: string;\n ttSelectionNeeded?: boolean;\n applicableToCurrentBrand?: boolean;\n applicableToCurrentMarket?: boolean;\n vinSelectionNecessary?: boolean;\n products?: Array;\n newMarket?: number;\n newCountry?: string;\n newLanguage?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { Model } from './model';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' series.\n */\nexport interface Series { \n /**\n * Series ID.\n */\n id: number;\n /**\n * Series name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n /**\n * Model list for the tree product\n */\n modelList?: Array;\n models?: Array;\n brand?: Brand;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { ServiceNotificationAppli } from './serviceNotificationAppli';\nimport { ServiceNotificationLanguage } from './serviceNotificationLanguage';\nimport { Region } from './region';\n\n\nexport interface ServiceNotification { \n brand?: Brand;\n region?: Region;\n language?: ServiceNotificationLanguage;\n applicability?: ServiceNotificationAppli;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ServiceNotificationAppli { \n document?: Array;\n type?: Array;\n product?: Array;\n series?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ServiceNotificationContext { \n contextbrand?: string;\n contextlanguage?: string;\n contextregion?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpNotifs } from './mpNotifs';\n\n\nexport interface ServiceNotificationDetails { \n preferences?: Array;\n mpDetails?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ServiceNotificationDocument { \n type?: number;\n name?: string;\n disabled?: string;\n checked?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ServiceNotificationLabels { \n brandLabel: string;\n typeLabel: string;\n marketLabel: string;\n languageLabel: string;\n documentLabel: string;\n sbLabel: string;\n wbLabel: string;\n pipLabel: string;\n kaLabel: string;\n ctaLabel: string;\n wtaLabel: string;\n ptaLabel: string;\n toolsLabel: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ServiceNotificationLanguage { \n id?: string;\n language?: string;\n mkId?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpNotifs } from './mpNotifs';\n\n\nexport interface ServiceNotificationMaintenance { \n daysList?: Array;\n engineHoursList?: Array;\n mpNotifs?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ServiceNotification } from './serviceNotification';\nimport { ServiceNotificationMaintenance } from './serviceNotificationMaintenance';\nimport { ServiceNotificationUser } from './serviceNotificationUser';\nimport { ServiceNotificationScreen } from './serviceNotificationScreen';\nimport { ServiceNotificationContext } from './serviceNotificationContext';\n\n\nexport interface ServiceNotificationResult { \n notif?: Array;\n screen?: ServiceNotificationScreen;\n user?: ServiceNotificationUser;\n context?: ServiceNotificationContext;\n maintenance?: ServiceNotificationMaintenance;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { ServiceNotificationDocument } from './serviceNotificationDocument';\nimport { ServiceNotificationLanguage } from './serviceNotificationLanguage';\nimport { Region } from './region';\n\n\nexport interface ServiceNotificationScreen { \n languages?: Array;\n regions?: Array;\n brands?: Array;\n documents?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ServiceNotificationUser { \n id?: string;\n name?: string;\n mail?: string;\n idDealer?: boolean;\n isInternal?: boolean;\n isIveco?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PdfDto } from './pdfDto';\n\n\nexport interface SgTitleDto { \n iuId?: string;\n sgVersion?: string;\n andAfter?: number;\n pdf?: PdfDto;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { HistoryElement } from './historyElement';\n\n\nexport interface SharedHistory { \n lastModel?: Array;\n lastSearch?: Array;\n lastDoc?: Array;\n lastPin?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriods } from './shiftPeriods';\n\n\n/**\n * Shift of the workspace\n */\nexport interface Shift { \n id?: number;\n userShiftId?: number;\n description?: string;\n dmsId?: string;\n type?: Shift.TypeEnum;\n startDate?: string;\n endDate?: string;\n periods?: Array;\n recurrence?: Array;\n}\nexport namespace Shift {\n export type TypeEnum = 'productive' | 'unproductive';\n export const TypeEnum = {\n Productive: 'productive' as TypeEnum,\n Unproductive: 'unproductive' as TypeEnum\n };\n export type RecurrenceEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const RecurrenceEnum = {\n Monday: 'monday' as RecurrenceEnum,\n Tuesday: 'tuesday' as RecurrenceEnum,\n Wednesday: 'wednesday' as RecurrenceEnum,\n Thursday: 'thursday' as RecurrenceEnum,\n Friday: 'friday' as RecurrenceEnum,\n Saturday: 'saturday' as RecurrenceEnum,\n Sunday: 'sunday' as RecurrenceEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriods { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: ShiftPeriods.DayEnum;\n}\nexport namespace ShiftPeriods {\n export type DayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const DayEnum = {\n Monday: 'monday' as DayEnum,\n Tuesday: 'tuesday' as DayEnum,\n Wednesday: 'wednesday' as DayEnum,\n Thursday: 'thursday' as DayEnum,\n Friday: 'friday' as DayEnum,\n Saturday: 'saturday' as DayEnum,\n Sunday: 'sunday' as DayEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShortLocation { \n iceCode?: string;\n language?: string;\n name?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShortLocationWithTidbId { \n iceCode?: string;\n language?: string;\n name?: string;\n tidbId?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * information code and legacy document name.\n */\nexport interface ShortPdfLegacy { \n /**\n * id to the PDF legacy document.\n */\n id?: string;\n /**\n * PDF legacy document name.\n */\n name?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Skill of a user\n */\nexport interface Skill { \n id?: number;\n description?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SmTreeIu { \n text?: string;\n /**\n * ifsid\n */\n id?: string;\n iceCode?: string;\n tidbId?: number;\n locationIceCode?: string;\n infoTypeIceCode?: string;\n /**\n * language id\n */\n lg?: string;\n /**\n * possible values : DEFINED_IUS, UNDEFINED_IUS, and NEW_IUS\n */\n status?: string;\n pubDate?: string;\n configurationLabel?: string;\n hasConsumable?: boolean;\n hasSpecialTool?: boolean;\n iuice?: string;\n fullIceCode?: string;\n advancedDiagnostic?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { SmTreeTopic } from './smTreeTopic';\n\n\nexport interface SmTreeSubGroup { \n text?: string;\n iceCode?: string;\n tidbId?: number;\n locationIceCode?: string;\n infoTypeIceCode?: string;\n topics?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { SmTreeIu } from './smTreeIu';\n\n\nexport interface SmTreeTopic { \n text?: string;\n icecode?: string;\n tidbId?: number;\n locationIceCode?: string;\n infoTypeIceCode?: string;\n ius?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SmartWarrantyData { \n warrantyId?: number;\n id?: number;\n interactiveIuId?: string;\n dealerId?: string;\n vin?: string;\n step?: number;\n operationCode?: string;\n repairTime?: number;\n operationDesc?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { SmartWarrantyData } from './smartWarrantyData';\n\n\nexport interface SmartWarrantyGroupData { \n step?: string;\n smartWarrantyCodes?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SpecialToolView { \n name?: string;\n reference?: number;\n description?: string;\n statusTxt?: string;\n toolType?: string;\n levelTxt?: string;\n weight?: string;\n volume?: string;\n quantity?: string;\n stLevel?: string;\n requirement?: string;\n sameAs?: Array;\n replacedBy?: Array;\n kit?: Array;\n oldReference?: Array;\n imageLink?: Array;\n iskitcontent?: boolean;\n isincludedinkit?: boolean;\n includedInKit?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Division of total price\n */\nexport interface Split { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SrtDocument { \n hasTSColumn?: boolean;\n isLegacy?: boolean;\n ifsId?: string;\n legacyPath?: string;\n docType?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SrtWarrantyCodeDto { \n levelId?: number;\n itemId?: number;\n iceCode?: string;\n itemDescription?: string;\n itemLanguage?: string;\n repairTime?: number;\n srtWarrantyCodeDto?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Status { \n code?: number;\n message?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { TxtCtrlResultDto } from './txtCtrlResultDto';\nimport { WarrantyCodes } from './warrantyCodes';\nimport { CtrlMeasurementDto } from './ctrlMeasurementDto';\nimport { UnitDto } from './unitDto';\n\n\nexport interface Steps { \n id?: number;\n interactiveId?: number;\n procedureId?: string;\n iuVersion?: string;\n logDateTime?: string;\n event?: string;\n status?: string;\n statusId?: number;\n dealerId?: string;\n dealerName?: string;\n vin?: string;\n step?: number;\n nextStep?: number;\n measurement?: string;\n ctrlMeasurementDto?: Array;\n comment?: string;\n unitDto?: Array;\n txtCtrlResultDto?: Array;\n attachments?: string;\n partNumber?: string;\n date?: string;\n iuEnabled?: number;\n ecDescription?: string;\n ecCode?: string;\n pdfUrl?: string;\n sourceLanguage?: string;\n claimCode?: string;\n pipCode?: string;\n bulletinNumber?: string;\n bulletinType?: string;\n title?: string;\n documentType?: number;\n warrantyCodes?: Array;\n checkCompleted?: boolean;\n warranty?: boolean;\n advancedDiagnostic?: boolean;\n warrantyPreAuthorization?: boolean;\n userId?: string;\n trackingSource?: string;\n alertId?: number;\n instanceId?: number;\n suggestedParts?: string;\n defectCode?: string;\n documentId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TdsChapter { \n action?: string;\n chapterid?: string;\n children?: Array;\n hasWorkbook?: boolean;\n id?: string;\n leaf?: boolean;\n singleClickExpand?: boolean;\n text?: string;\n topics?: Array;\n /**\n * Front side only\n */\n uiProvider?: string;\n /**\n * Front side only\n */\n selected?: boolean;\n /**\n * Front side only\n */\n showChild?: boolean;\n /**\n * Front side only\n */\n searchedText?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TdsIu { \n text?: string;\n id?: string;\n idiu?: string;\n locicecode?: string;\n inficecode?: string;\n lg?: string;\n chapterid?: string;\n leaf?: boolean;\n statusIuFilter?: string;\n status?: string;\n pubDate?: string;\n uiProvider?: string;\n singleClickExpand?: boolean;\n action?: string;\n expanded?: boolean;\n hasConsumable?: boolean;\n hasSpecialTool?: boolean;\n header?: string;\n img?: string;\n checked?: boolean;\n hasNote?: boolean;\n capacity?: boolean;\n configurationLabel?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Vehicles\\' Tech Type.\n */\nexport interface TechnicalType { \n /**\n * TT ID.\n */\n id: number;\n /**\n * TT name.\n */\n name?: string;\n /**\n * TT name id.\n */\n idName?: number;\n iceCode?: string;\n code?: string;\n label?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { TelemetryValue } from './telemetryValue';\n\n\nexport interface Telemetry { \n value?: TelemetryValue;\n metric?: string;\n _function?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CountryTimeZone } from './countryTimeZone';\nimport { Telemetry } from './telemetry';\n\n\nexport interface TelemetryStatus { \n records?: Array;\n time?: string;\n country?: CountryTimeZone;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TelemetryUOM { \n description?: string;\n title?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TelemetryValue { \n type?: string;\n uom?: string;\n value?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DocType } from './docType';\n\n\nexport interface TidbSbDto { \n ifsId?: string;\n brandIceCode?: string;\n /**\n * market id\n */\n market?: string;\n year?: string;\n bulletinNumber?: string;\n fileUnder?: string;\n webVisibility?: number;\n revision?: string;\n subject?: string;\n group?: string;\n sgroup?: string;\n defect?: string;\n binder?: string;\n month?: string;\n issueNumber?: string;\n issuedBy?: string;\n replaces?: string;\n series?: string;\n models?: string;\n /**\n * group subgroup cares.\n */\n groupsubgroupcares?: string;\n pipCode?: string;\n pipType?: string;\n /**\n * document publication date.\n */\n docPubDate?: string;\n terminationDate?: string;\n inThirtyDaysFromTerminationDate?: boolean;\n pipCodeSAP?: string;\n executed?: string;\n isVisible?: boolean;\n pipStatus?: string;\n sbType?: string;\n sbTypeAbbrev?: DocType;\n pipTypeAbbrev?: string;\n sbLang?: string;\n legacy?: boolean;\n /**\n * only if isLegacy\n */\n name?: string;\n /**\n * only if isLegacy\n */\n path?: string;\n /**\n * only if isLegacy\n */\n pathLanguageId?: string;\n tooltip?: string;\n languagesList?: Array;\n downloadProgress?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { IUGenericTagDto } from './iUGenericTagDto';\n\n\nexport interface Title { \n newtitle?: string;\n iuFrame?: string;\n sgversion?: string;\n andafter?: string;\n tagList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TokenRequest { \n isIveco?: boolean;\n source?: string;\n marketId?: number;\n country?: string;\n isFpt?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Tools { \n reference?: string;\n language?: string;\n name?: string;\n description?: string;\n status?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TutorialDocDto { \n brandIceCode?: string;\n marketName?: string;\n languageId?: string;\n customer?: string;\n nameOrPath?: string;\n chapter?: number;\n featureId?: number;\n featureType?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChosenTxtCtrl } from './chosenTxtCtrl';\n\n\nexport interface TxtCtrlResultDto { \n chosenTxtCtrl?: Array;\n ctrlNameId?: string;\n ctrlName?: string;\n txtControlIndex?: number;\n ctrlOrder?: number;\n ctrlType?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ProductObj } from './productObj';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' Type.\n */\nexport interface Types { \n /**\n * Type ID.\n */\n id: number;\n /**\n * type name.\n */\n name?: string;\n iceCode?: string;\n /**\n * type name id.\n */\n idName?: number;\n nameObj?: Name;\n productList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UnitDto { \n chosenUnit?: string;\n ctrlNameId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UptimeDossierInfo { \n dealerName?: string;\n itemCode?: string;\n itemCounter?: string;\n itemDate?: string;\n plate?: string;\n dossierType?: string;\n takeInCharge?: string;\n topCare?: boolean;\n notifDealerCode?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * URL to redirect to\n */\nexport interface Url { \n url?: string;\n pdfFileName?: string;\n historyId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UrlLang { \n url?: string;\n language?: string;\n languageOrder?: number;\n languageId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface User { \n dealerCode?: string;\n dealerName?: string;\n lastName?: string;\n firstName?: string;\n userId?: string;\n userName?: string;\n shareHistory?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UserPrefKeyValueDto { \n prefKey?: string;\n prefValue?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UserPrefs { \n userId?: string;\n isDealer?: boolean;\n seeTelematic?: boolean;\n unitOfMeasure?: string;\n vehicleProximity?: boolean;\n language?: string;\n brand?: string;\n market?: string;\n country?: string;\n importantupdates?: boolean;\n homePage?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Brand } from './brand';\nimport { Series } from './series';\nimport { Model } from './model';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface Vehicle { \n id: number;\n isDuplicate?: boolean;\n isActive?: boolean;\n customerCompanyId?: number;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vin?: string;\n serialNumber?: string;\n brand?: Brand;\n series?: Series;\n model?: Model;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n warrantyStartDate?: string;\n vehicleNote?: string;\n annualInspectionDate?: string;\n tachometerDate?: string;\n dmsId?: string;\n workshopId?: number;\n customerCompanyUser?: CustomerCompanyUser;\n invoiceDate?: string;\n appointments?: Array;\n stockNumber?: string;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Brand } from './brand';\nimport { Series } from './series';\nimport { Model } from './model';\nimport { Workshop } from './workshop';\n\n\nexport interface VehicleCourtesy { \n id: number;\n vin?: string;\n brand?: Brand;\n series?: Series;\n model?: Model;\n plate?: string;\n mileage?: number;\n status?: string;\n dmsId?: string;\n workshop?: Workshop;\n vehicleNote?: string;\n appointments?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Vehicle } from './vehicle';\n\n\n/**\n * Fields for Booking Courtesy Vehicle .\n */\nexport interface VehicleCourtesyBooking { \n /**\n * Id.\n */\n id: number;\n /**\n * Departure Date.\n */\n startDate?: string;\n /**\n * Reception Date\n */\n endDate?: string;\n /**\n * Reason for Booking.\n */\n reason?: string;\n vehicleCourtesy?: Vehicle;\n appointment?: Appointment;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VinInfoDto { \n pin?: string;\n pinAdditional?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Visibility { \n hasAccessCustomer?: boolean;\n hasAccessUnitDetails?: boolean;\n hasAccessSwitchUserHistory?: boolean;\n hasAccessPip?: boolean;\n hasAccessPipLegacy?: boolean;\n hasAccessPipPending?: boolean;\n hasAccessPipGlobalSearch?: boolean;\n hasAccessKa?: boolean;\n hasAccessKaLegacy?: boolean;\n hasAccessKaSearch?: boolean;\n hasAccessKaGlobalSearch?: boolean;\n hasAccessSb?: boolean;\n hasAccessSbLegacy?: boolean;\n hasAccessSbGlobalSearch?: boolean;\n hasAccessIi?: boolean;\n hasAccessTr?: boolean;\n hasAccessPower?: boolean;\n hasAccessBodyBuilders?: boolean;\n hasAccessBattery?: boolean;\n hasAccessWebacademy?: boolean;\n hasAccessAccessories?: boolean;\n hasAccessSpecialTool?: boolean;\n hasAccessSpecialToolSearch?: boolean;\n hasAccessSpecialToolGlobalSearch?: boolean;\n hasAccessKitGlobalSearch?: boolean;\n hasAccessKitSearch?: boolean;\n hasAccessKitRequest?: boolean;\n hasAccessActiveWarrantyService?: boolean;\n hasAccessGlobalSearch?: boolean;\n hasAccessPublicationManager?: boolean;\n hasSearchByChassis?: boolean;\n hasSearchByVIN?: boolean;\n hasSearchByBM?: boolean;\n hasSearchByVCB?: boolean;\n hasSearchByPlate?: boolean;\n hasSearchByPartNumber?: boolean;\n hasSearchByPIN?: boolean;\n hasSearchByTT?: boolean;\n hasAccessFeedback?: boolean;\n hasAccessThdRequest?: boolean;\n hasAccessTutorial?: boolean;\n hasAccessInteractiveFaultCodeTroubleShooting?: boolean;\n hasAccessInteractiveSymptom?: boolean;\n hasAccessInteractiveKA?: boolean;\n hasAccessProactiveAlerts?: boolean;\n hasAccessSmartView?: boolean;\n hasAccessTrainingJumpSM?: boolean;\n hasAccessWalkMeTutorial?: boolean;\n hasAccessInteractiveMaintenancePlan?: boolean;\n hasAccessSM?: boolean;\n hasAccessSRT?: boolean;\n hasAccessDMC?: boolean;\n hasAccessDiagnosisHistory?: boolean;\n hasAccessDiagnosisHistory2?: boolean;\n hasAccessServiceNotification?: boolean;\n hasAccessChatbot?: boolean;\n hasAccessChatbotSolrSearch?: boolean;\n hasLMSCertificationCheck?: boolean;\n hasAccessSearchCheckboxIncludeEstKaDoc?: boolean;\n hasAccessInteractiveSB?: boolean;\n hasAccessInteractivePIP?: boolean;\n hasUniqueSession?: boolean;\n hasAccessJumpToEvo?: boolean;\n hasAccessSmartWarranty?: boolean;\n hasAccessMPFlex?: boolean;\n hasAccessStandardTermsSearch?: boolean;\n hasAccessSearchCheckboxIncludeEstSbDoc?: boolean;\n hasAccessRequestVehicleHistoryReport?: boolean;\n hasAccessMachineCareReport?: boolean;\n hasAccessMachineOperatorReport?: boolean;\n hasAccessUcr?: boolean;\n hasAccessUptime?: boolean;\n hasAccessServiceNotificationTutorial?: boolean;\n hasAccessPanelPAA?: boolean;\n hasAccessPanelPIP?: boolean;\n hasAccessPanelKA?: boolean;\n hasAccessPanelFC?: boolean;\n hasAccessPanelFC2?: boolean;\n hasAccessPanelPM?: boolean;\n hasAccessPanelITS?: boolean;\n hasAccessDQR?: boolean;\n hasAccessDQRNPP?: boolean;\n hasAccessDQRLogistic?: boolean;\n hasAccessDQRSummaryOfFaultsButton?: boolean;\n hasAccessFcFeedback?: boolean;\n hasAccessAdvancedDiagnostic?: boolean;\n hasAccessMyFleet?: boolean;\n hasAccessDQRConnectAsDealer?: boolean;\n hasAccessCanParametersList?: boolean;\n hasAccessDealerLocationsInMyFleet?: boolean;\n hasAccessDisplayDocAppNative?: boolean;\n hasAccessLinkApp?: boolean;\n hasAccessWarrPAForm?: boolean;\n hasAccessPdfLegacy?: boolean;\n hasAccessInstallationInstruction?: boolean;\n hasAccessEtimAngularWiring?: boolean;\n hasAccessControlRoomMode?: boolean;\n hasAccessVehicleProximityView?: boolean;\n hasAccessEtimAngularSb?: boolean;\n hasAccessEtimAppPdfLegacy?: boolean;\n hasAccessEtimAppWiring?: boolean;\n hasAccessEtimAngularWpaNonengineform?: boolean;\n hasSearchByJobcard?: boolean;\n hasAccessEtimAngularDashboard?: boolean;\n hasAccessEtimDisplayIiAppNative?: boolean;\n hasAccessEtimAppMfa?: boolean;\n hasAccessSmartviewTab?: boolean;\n hasAccessSoftwareVersion?: boolean;\n hasAccessQuickCloseWithProcedure?: boolean;\n hasAccessSubscriptionDashboard?: boolean;\n hasAccessEtimDisplayFeedbackAppNative?: boolean;\n hasAccessEtimAppDqr?: boolean;\n hasAccessMyFleetGoogleMaps?: boolean;\n hasAccessMyFleetEnhancedExcelExport?: boolean;\n hasAccessEtimDisplayBulletinAppNative?: boolean;\n hasAccessEtimAppDesactivateJump?: boolean;\n hasAccessEtimAppChangeIuLang?: boolean;\n hasAccessEtimAppAvailable?: boolean;\n hasAccessEtimAppDisablePdfViewer?: boolean;\n hasAccessEtimAppDisableWpa?: boolean;\n hasAccessEtimAppDisableThd?: boolean;\n hasAccessEtimAppDisableDossier?: boolean;\n hasAccessEtimDisplayPipAppNative?: boolean;\n hasAccessEtimAppAndroidAsistAvailable?: boolean;\n hasAccessEtimAppIosAsistAvailable?: boolean;\n hasAccessRemoteDisplayView?: boolean;\n hasAccessFleetWarrantyServices?: boolean;\n hasAccessDisplayAlarms?: boolean;\n hasAccessEtimAngularProduct?: boolean;\n hasAccessPet?: boolean;\n hasAccessCustomerAlerts?: boolean;\n hasAccessEtimAngularModalHelp?: boolean;\n hasAccessFirmwareOverTheAir?: boolean;\n hasAccessCustomNotificationsTab?: boolean;\n hasAccessEtimAppOldThd?: boolean;\n hasAccessCanExportFleet?: boolean;\n hasAccessEtimAppDashboard?: boolean;\n hasAccessEtimAppVehiculeNavigation?: boolean;\n hasAccessEtimQrCode?: boolean;\n hasAccessEtimAngularAns?: boolean;\n hasAccessEtimAngularDossier?: boolean;\n hasAccessDqrTai?: boolean;\n hasAccessDqrTdr?: boolean;\n hasAccessEtimAngularCreateThd?: boolean;\n hasAccessDqrMobileUploadAttachment?: boolean;\n hasAccessAllSubnetworksFilter?: boolean;\n hasAccessSoftwareVersionStableConfiguration?: boolean;\n hasAccessWarrantyMaintenanceFiltersForCE?: boolean;\n hasAccessSessionNotExpire?: boolean;\n hasAccessEtimWiringSearchByFunctions?: boolean;\n hasAccessJumpProcToProc?: boolean;\n hasAccessDQRFaultStatus?: boolean;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WPAEngineFormDto { \n id?: number;\n date?: string;\n dealerCode?: string;\n vin?: string;\n ttCode?: string;\n userId?: string;\n primeSapNum?: string;\n fsrName?: string;\n failureEngineStatus?: number;\n remanEngineStatus?: number;\n nbrEngCylinder?: number;\n dtcCodeStatus?: number;\n engOilSamStatus?: number;\n engineHours?: number;\n nbrCylBlock?: number;\n nbrCrankshaft?: number;\n nbrPiston?: number;\n nbrConnectRod?: number;\n nbrCylLiner?: number;\n nbrCylHead?: number;\n nbrCamshaft?: number;\n decision?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WPAEngineFormDto } from './wPAEngineFormDto';\n\n\nexport interface WPAEnginePdfInfosDto { \n typeDocLabel?: string;\n titleLabel?: string;\n failureEngineLabel?: string;\n remanEngineLabel?: string;\n dtcCodeLabel?: string;\n engOilSamLabel?: string;\n nbrEngCylinderLabel?: string;\n engineHoursLabel?: string;\n nbrCylBlockLabel?: string;\n nbrCrankshaftLabel?: string;\n nbrPistonLabel?: string;\n nbrConnectRodLabel?: string;\n nbrCylLinerLabel?: string;\n nbrCylHeadLabel?: string;\n nbrCamshaftLabel?: string;\n yesLabel?: string;\n noLabel?: string;\n cylindersLabel?: string;\n replaceNewLabel?: string;\n replaceRemanLabel?: string;\n repairLabel?: string;\n replaceNoteLabel?: string;\n repairNoteLabel?: string;\n decisionLabel?: string;\n detailsWPAEngineForm?: WPAEngineFormDto;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Claim details for an activity.\n */\nexport interface WarrantyClaimData { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WarrantyCodes { \n serialVersionUID?: number;\n officialSrtCode?: string;\n time?: string;\n microoperationCode?: string;\n value?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Warranty Type Object\n */\nexport interface WarrantyType { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WebPipExtension { \n webPubNumber?: string;\n webMarket?: number;\n webExtRevision?: number;\n webOldTermdate?: string;\n webNewTermdate?: string;\n webUpdateDate?: string;\n webUpdateUserId?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WebPipExtension } from './webPipExtension';\n\n\nexport interface WebSBHeader { \n pip?: boolean;\n webPipExtensionModel?: Array;\n id?: string;\n webSbId?: string;\n webPubNumber?: string;\n webMarket?: number;\n webBrandIceCode?: string;\n webSbType?: string;\n webLang?: string;\n webBinder?: string;\n webFileUnder?: string;\n webMonth?: string;\n webYear?: string;\n webIssueNumber?: string;\n webIssuedBy?: string;\n webReplaces?: string;\n webSeriesAffected?: string;\n webModelsAffected?: string;\n webSapGroup?: string;\n webSapSubgroup?: string;\n webSapSubgroupCares?: string;\n webSubject?: string;\n webProgramType?: string;\n webProgramCode?: string;\n webTerminationDate?: string;\n webSbVisible?: number;\n webSbBrandApplicability?: number;\n webSbTypeApplicability?: number;\n webCountry?: string;\n webSapDefect?: string;\n webSbTypeAbbrev?: string;\n webPubDate?: string;\n webMarketVisible?: number;\n webPdfPubNumber?: string;\n webBulletinNumber?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopSale } from './workshopSale';\nimport { OpeningDay } from './openingDay';\n\n\n/**\n * Data for workshop.\n */\nexport interface Workshop { \n id: number;\n name: string;\n address?: string;\n city?: string;\n country?: string;\n phone?: string;\n email?: string;\n sapCode?: string;\n workshopSalesOrganizations?: Array;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n isImportStaffFromDms?: boolean;\n isTrWorkflow?: boolean;\n dmsAuthenticationPassword?: string;\n openingDays?: Array;\n /**\n * Currency code following ISO 4217\n */\n currencyCode?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n enableSafetyChecklist?: boolean;\n cspsUserId?: string;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n allowedTimePreferred?: string;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n labourCost?: number;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n dmsClockingBehavior?: Workshop.DmsClockingBehaviorEnum;\n dmsProvider?: string;\n addressDMSLimit?: number;\n eWarrantyFieldsMandatory?: boolean;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n selected?: boolean;\n}\nexport namespace Workshop {\n export type DmsClockingBehaviorEnum = 'REPLACE' | 'UPDATE' | 'IGNORE';\n export const DmsClockingBehaviorEnum = {\n REPLACE: 'REPLACE' as DmsClockingBehaviorEnum,\n UPDATE: 'UPDATE' as DmsClockingBehaviorEnum,\n IGNORE: 'IGNORE' as DmsClockingBehaviorEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface WorkshopBay { \n id?: number;\n name?: string;\n type?: string;\n workshopId?: number;\n weight?: number;\n isActive?: boolean;\n leadTechnician?: string;\n bayCode?: string;\n maximumUtilisation?: number;\n technicians?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Workshop } from './workshop';\n\n\n/**\n * Workshop discount\n */\nexport interface WorkshopDiscount { \n id?: number;\n dmsCode?: string;\n name?: string;\n percentage?: number;\n additionalInformation?: string;\n discountType?: string;\n workshop?: Workshop;\n workshopUsers?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Workshop with Sales organizations\n */\nexport interface WorkshopSale { \n id?: number;\n brand?: string;\n division?: string;\n salesCode?: string;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Role } from './role';\nimport { Shift } from './shift';\nimport { Skill } from './skill';\nimport { Workshop } from './workshop';\nimport { WorkshopUserUnavailability } from './workshopUserUnavailability';\nimport { WorkshopBay } from './workshopBay';\n\n\nexport interface WorkshopUser { \n id: string;\n views?: WorkshopUser.ViewsEnum;\n isActivityApproval?: WorkshopUser.IsActivityApprovalEnum;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n isActive?: boolean;\n isAdmin?: boolean;\n isManualJobStatusOverride?: boolean;\n role?: Role;\n workshopBay?: WorkshopBay;\n workshopBays?: Array;\n unavailabilities?: Array;\n isTechnicianView?: boolean;\n isAssociateUser?: boolean;\n deviceToken?: string;\n appVersion?: string;\n canEditJobcard?: boolean;\n displayedName?: string;\n skills?: Array;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n shifts?: Array;\n canSeePrice?: boolean;\n isAutomaticApproval?: WorkshopUser.IsAutomaticApprovalEnum;\n leadWorkshopBayId?: number;\n url?: string;\n costRate?: number;\n email?: string;\n canSelfAssign?: boolean;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n workshopList?: Array;\n}\nexport namespace WorkshopUser {\n export type ViewsEnum = 'workshopAgendaView' | 'technicianAgendaView' | 'courtesyVehicleAgendaView' | 'workshopPlanningView' | 'workshopUtilisationView' | 'technicianPlanningView' | 'courtesyVehiclePlanningView';\n export const ViewsEnum = {\n WorkshopAgendaView: 'workshopAgendaView' as ViewsEnum,\n TechnicianAgendaView: 'technicianAgendaView' as ViewsEnum,\n CourtesyVehicleAgendaView: 'courtesyVehicleAgendaView' as ViewsEnum,\n WorkshopPlanningView: 'workshopPlanningView' as ViewsEnum,\n WorkshopUtilisationView: 'workshopUtilisationView' as ViewsEnum,\n TechnicianPlanningView: 'technicianPlanningView' as ViewsEnum,\n CourtesyVehiclePlanningView: 'courtesyVehiclePlanningView' as ViewsEnum\n };\n export type IsActivityApprovalEnum = 'yesToDoStatus' | 'yesNewStatusOnly' | 'outOfHoursNewStatus' | 'outOfHoursNo' | 'nope';\n export const IsActivityApprovalEnum = {\n YesToDoStatus: 'yesToDoStatus' as IsActivityApprovalEnum,\n YesNewStatusOnly: 'yesNewStatusOnly' as IsActivityApprovalEnum,\n OutOfHoursNewStatus: 'outOfHoursNewStatus' as IsActivityApprovalEnum,\n OutOfHoursNo: 'outOfHoursNo' as IsActivityApprovalEnum,\n Nope: 'nope' as IsActivityApprovalEnum\n };\n export type IsAutomaticApprovalEnum = 'yesImmediateAccess' | 'yesDraftOnly' | 'outOfHoursDraftOnly' | 'outOfHoursNo' | 'yesAnytime' | 'yesOffline' | 'nope';\n export const IsAutomaticApprovalEnum = {\n YesImmediateAccess: 'yesImmediateAccess' as IsAutomaticApprovalEnum,\n YesDraftOnly: 'yesDraftOnly' as IsAutomaticApprovalEnum,\n OutOfHoursDraftOnly: 'outOfHoursDraftOnly' as IsAutomaticApprovalEnum,\n OutOfHoursNo: 'outOfHoursNo' as IsAutomaticApprovalEnum,\n YesAnytime: 'yesAnytime' as IsAutomaticApprovalEnum,\n YesOffline: 'yesOffline' as IsAutomaticApprovalEnum,\n Nope: 'nope' as IsAutomaticApprovalEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A technician\\'s GPS position for a specific travel.\n */\nexport interface WorkshopUserTravelPosition { \n id?: number;\n /**\n * Technician\\'s ID.\n */\n workshopUserId?: string;\n /**\n * Travel ID (if attached to a jobcard).\n */\n jobcardTravelId?: number;\n /**\n * Travel ID (if attached to a jobcard item).\n */\n jobcardItemTravelId?: number;\n latitude?: number;\n longitude?: number;\n /**\n * Position date-time\n */\n positionDate?: string;\n /**\n * Position type (start/ongoing/stop)\n */\n positionType?: WorkshopUserTravelPosition.PositionTypeEnum;\n /**\n * Device features\\' status when the position has been sent.\n */\n deviceStatus?: string;\n}\nexport namespace WorkshopUserTravelPosition {\n export type PositionTypeEnum = 'START' | 'ONGOING' | 'STOP';\n export const PositionTypeEnum = {\n START: 'START' as PositionTypeEnum,\n ONGOING: 'ONGOING' as PositionTypeEnum,\n STOP: 'STOP' as PositionTypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailability { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: WorkshopUserUnavailability.TypeEnum;\n}\nexport namespace WorkshopUserUnavailability {\n export type TypeEnum = 'holiday' | 'sickness' | 'training' | 'admin';\n export const TypeEnum = {\n Holiday: 'holiday' as TypeEnum,\n Sickness: 'sickness' as TypeEnum,\n Training: 'training' as TypeEnum,\n Admin: 'admin' as TypeEnum\n };\n}\n\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WpaOcFormOcOweDto } from './wpaOcFormOcOweDto';\nimport { WpaOcFormIncOpeDto } from './wpaOcFormIncOpeDto';\nimport { WpaOcFormOcPartDto } from './wpaOcFormOcPartDto';\n\n\nexport interface WpaOcFormDto { \n id?: number;\n date?: string;\n dealerCode?: string;\n vin?: string;\n userId?: string;\n primeSapNum?: string;\n laborRate?: number;\n engineHours?: number;\n srtGroupCode?: string;\n srtSubGroupCode?: string;\n defectCode?: string;\n srtOpCode?: string;\n srtOpDesc?: string;\n srtWu?: number;\n workUnits?: number;\n repairLaborTotal?: number;\n totalRepair?: number;\n totalNew?: number;\n totalReman?: number;\n formStatus?: number;\n formDecision?: number;\n formTtRepartPart?: number;\n formPartsUnavailableField?: string;\n wpaOcFormIncOpeList?: Array;\n wpaOcFormOcOweList?: Array;\n wpaOcFormOcPartList?: Array;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WpaOcFormDto } from './wpaOcFormDto';\n\n\nexport interface WpaOcFormForPdfDto { \n titleLabel?: string;\n typeDocLabel?: string;\n yesLabel?: string;\n noLabel?: string;\n menuRepairLabel?: string;\n menuPartsLabel?: string;\n menuDecisionLabel?: string;\n tsAvailable?: boolean;\n isTsAvailable?: boolean;\n tsNotAvailableLabel?: string;\n laborRateLabel?: string;\n engineHoursLabel?: string;\n overhaulCodeLabel?: string;\n codeDescriptionLabel?: string;\n removeInstallWuLabel?: string;\n workUnitLabel?: string;\n laborTotalLabel?: string;\n partsNumberHeaderLabel?: string;\n descriptionHeaderLabel?: string;\n quantityHeaderLabel?: string;\n costPerDnetHeaderLabel?: string;\n extendedPriceHeaderLabel?: string;\n remanReplaceHeaderLabel?: string;\n remanTotalOutside?: string;\n replacementHeaderLabel?: string;\n replacementTotalOutside?: string;\n repairReplaceHeaderLabel?: string;\n repairTotalOutside?: string;\n repairTotalLabel?: string;\n remanTotalLabel?: string;\n newTotalLabel?: string;\n remanPercentageLabel?: string;\n newPercentageLabel?: string;\n calcultationLabel?: string;\n decisionInitLabel?: string;\n decisionFinalLabel?: string;\n partAvailableLabel?: string;\n partUnavailableLabel?: string;\n freeFormFieldLabel?: string;\n freeFromFieldAnswerLabel?: string;\n getPdf?: boolean;\n detailsWpaOcFormDto?: WpaOcFormDto;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WpaOcFormIncOpeDto { \n formId?: number;\n incGroupCode?: string;\n incSubGroupCode?: string;\n incDefectCode?: string;\n incOpCode?: string;\n incOpeSrtWu?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WpaOcFormOcOweDto { \n formId?: number;\n oweType?: string;\n oweTotalOwe?: number;\n}\n\n","/**\n * Document API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WpaOcFormOcPartDto { \n formId?: number;\n partOrder?: number;\n partType?: string;\n partNumber?: string;\n partDesc?: string;\n partQty?: number;\n partUnitCost?: number;\n partExtendedPrice?: number;\n}\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { ActivityService } from './api/activity.service';\nimport { ActivityMaintenanceService } from './api/activityMaintenance.service';\nimport { ActivityReportService } from './api/activityReport.service';\nimport { ApiAppointmentService } from './api/apiAppointment.service';\nimport { ApiAppointmentWarrantyService } from './api/apiAppointmentWarranty.service';\nimport { ApiBacklogAppointmentService } from './api/apiBacklogAppointment.service';\nimport { ApiLogService } from './api/apiLog.service';\nimport { AppointmentService } from './api/appointment.service';\nimport { AuditService } from './api/audit.service';\nimport { AzureService } from './api/azure.service';\nimport { BrandService } from './api/brand.service';\nimport { BrandStyleService } from './api/brandStyle.service';\nimport { ChecklistService } from './api/checklist.service';\nimport { ClockingLogsService } from './api/clockingLogs.service';\nimport { ConsumableAssociationService } from './api/consumableAssociation.service';\nimport { CountryService } from './api/country.service';\nimport { CspsService } from './api/csps.service';\nimport { CurrencyService } from './api/currency.service';\nimport { CustomerCompanyService } from './api/customerCompany.service';\nimport { CustomerCompanyUserService } from './api/customerCompanyUser.service';\nimport { DMSService } from './api/dMS.service';\nimport { DealerBrandService } from './api/dealerBrand.service';\nimport { DeleteDefferedActivityService } from './api/deleteDefferedActivity.service';\nimport { DiscountService } from './api/discount.service';\nimport { DmsCommunicationService } from './api/dmsCommunication.service';\nimport { EDSService } from './api/eDS.service';\nimport { EmailService } from './api/email.service';\nimport { EpartsService } from './api/eparts.service';\nimport { ExtraOperationService } from './api/extraOperation.service';\nimport { FeedbackService } from './api/feedback.service';\nimport { FiterAppointmentsService } from './api/fiterAppointments.service';\nimport { GeolocationService } from './api/geolocation.service';\nimport { HealthService } from './api/health.service';\nimport { JobcardService } from './api/jobcard.service';\nimport { JobcardItemService } from './api/jobcardItem.service';\nimport { JobcardItemStatusService } from './api/jobcardItemStatus.service';\nimport { KitService } from './api/kit.service';\nimport { KpisService } from './api/kpis.service';\nimport { LanguageService } from './api/language.service';\nimport { LegalnoticeService } from './api/legalnotice.service';\nimport { MaintenanceService } from './api/maintenance.service';\nimport { MergeLogService } from './api/mergeLog.service';\nimport { ModelService } from './api/model.service';\nimport { MyBestService } from './api/myBest.service';\nimport { NonProductiveActivityService } from './api/nonProductiveActivity.service';\nimport { NotificationService } from './api/notification.service';\nimport { OnholdstatusService } from './api/onholdstatus.service';\nimport { OperationService } from './api/operation.service';\nimport { OrderService } from './api/order.service';\nimport { OrderTypeHeaderCodeService } from './api/orderTypeHeaderCode.service';\nimport { PartService } from './api/part.service';\nimport { PartConsumablesService } from './api/partConsumables.service';\nimport { PartTrackerService } from './api/partTracker.service';\nimport { PartsOrderService } from './api/partsOrder.service';\nimport { PaymentService } from './api/payment.service';\nimport { PermissionsService } from './api/permissions.service';\nimport { PriorityTypeService } from './api/priorityType.service';\nimport { ReleaseVersionService } from './api/releaseVersion.service';\nimport { ReleaseVersionAllService } from './api/releaseVersionAll.service';\nimport { RoleService } from './api/role.service';\nimport { SafetyChecklistService } from './api/safetyChecklist.service';\nimport { SapClaimService } from './api/sapClaim.service';\nimport { SeriesService } from './api/series.service';\nimport { ShiftsService } from './api/shifts.service';\nimport { SignatureService } from './api/signature.service';\nimport { SkillsService } from './api/skills.service';\nimport { SmsService } from './api/sms.service';\nimport { StandaloneService } from './api/standalone.service';\nimport { StatsService } from './api/stats.service';\nimport { SummaryService } from './api/summary.service';\nimport { TechService } from './api/tech.service';\nimport { UnavailabilitiesService } from './api/unavailabilities.service';\nimport { UserGuidesService } from './api/userGuides.service';\nimport { VehicleService } from './api/vehicle.service';\nimport { VehicleCourtesyService } from './api/vehicleCourtesy.service';\nimport { VehicleCourtesyBookingService } from './api/vehicleCourtesyBooking.service';\nimport { WarrantyTypesService } from './api/warrantyTypes.service';\nimport { WorkshopService } from './api/workshop.service';\nimport { WorkshopBayService } from './api/workshopBay.service';\nimport { WorkshopUserService } from './api/workshopUser.service';\nimport { WorkshopUserChecklistTypesService } from './api/workshopUserChecklistTypes.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { NonProductiveActivityStatus } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface EditNonProductiveActivityStatusRequestParams {\n /** Non Productive Activity Status. */\n id: number;\n nonProductiveActivityStatus?: NonProductiveActivityStatus;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveNonProductiveTechnicianRequestParams {\n startTime?: string;\n endTime?: string;\n workshopUserId?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveNonProductiveStatusRequestParams {\n nonProductiveActivityStatus?: NonProductiveActivityStatus;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Edit a Non Productive Activity.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editNonProductiveActivityStatus(requestParameters: EditNonProductiveActivityStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editNonProductiveActivityStatus(requestParameters: EditNonProductiveActivityStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editNonProductiveActivityStatus(requestParameters: EditNonProductiveActivityStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editNonProductiveActivityStatus(requestParameters: EditNonProductiveActivityStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editNonProductiveActivityStatus.');\n }\n const nonProductiveActivityStatus = requestParameters.nonProductiveActivityStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/non-productive-status/${encodeURIComponent(String(id))}`,\n nonProductiveActivityStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Retrieve the technician clocking on non productive activity\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveNonProductiveTechnician(requestParameters: RetrieveNonProductiveTechnicianRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveNonProductiveTechnician(requestParameters: RetrieveNonProductiveTechnicianRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveNonProductiveTechnician(requestParameters: RetrieveNonProductiveTechnicianRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveNonProductiveTechnician(requestParameters: RetrieveNonProductiveTechnicianRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startTime = requestParameters.startTime;\n const endTime = requestParameters.endTime;\n const workshopUserId = requestParameters.workshopUserId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startTime !== undefined && startTime !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startTime, 'startTime');\n }\n if (endTime !== undefined && endTime !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endTime, 'endTime');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/non-productive-status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * POST a non-productive status.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveNonProductiveStatus(requestParameters: SaveNonProductiveStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveNonProductiveStatus(requestParameters: SaveNonProductiveStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveNonProductiveStatus(requestParameters: SaveNonProductiveStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveNonProductiveStatus(requestParameters: SaveNonProductiveStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const nonProductiveActivityStatus = requestParameters.nonProductiveActivityStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/non-productive-status`,\n nonProductiveActivityStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ActivityValidated } from '../model/models';\nimport { ApiError } from '../model/models';\nimport { JobcardItem } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface UpdateMaintenanceCouponRequestParams {\n activityValidated?: ActivityValidated;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityMaintenanceService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Updating the maintenance coupon to validate\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateMaintenanceCoupon(requestParameters: UpdateMaintenanceCouponRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateMaintenanceCoupon(requestParameters: UpdateMaintenanceCouponRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateMaintenanceCoupon(requestParameters: UpdateMaintenanceCouponRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateMaintenanceCoupon(requestParameters: UpdateMaintenanceCouponRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const activityValidated = requestParameters.activityValidated;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/activity-validated`,\n activityValidated,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ActivityReport } from '../model/models';\nimport { ActivityReportDay } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetActivityReportRequestParams {\n fromDate: string;\n toDate: string;\n workshopBayId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetActivityReportByDayRequestParams {\n fromDate: string;\n toDate: string;\n workshopBayId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityReportService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all activity report\n * Get the activity report\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getActivityReport(requestParameters: GetActivityReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getActivityReport(requestParameters: GetActivityReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActivityReport(requestParameters: GetActivityReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActivityReport(requestParameters: GetActivityReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getActivityReport.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getActivityReport.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/activity-report`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all activity report by day\n * Get the activity report by day\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getActivityReportByDay(requestParameters: GetActivityReportByDayRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getActivityReportByDay(requestParameters: GetActivityReportByDayRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActivityReportByDay(requestParameters: GetActivityReportByDayRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActivityReportByDay(requestParameters: GetActivityReportByDayRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getActivityReportByDay.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getActivityReportByDay.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/activity-report/days`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './activity.service';\nimport { ActivityService } from './activity.service';\nexport * from './activityMaintenance.service';\nimport { ActivityMaintenanceService } from './activityMaintenance.service';\nexport * from './activityReport.service';\nimport { ActivityReportService } from './activityReport.service';\nexport * from './apiAppointment.service';\nimport { ApiAppointmentService } from './apiAppointment.service';\nexport * from './apiAppointmentWarranty.service';\nimport { ApiAppointmentWarrantyService } from './apiAppointmentWarranty.service';\nexport * from './apiBacklogAppointment.service';\nimport { ApiBacklogAppointmentService } from './apiBacklogAppointment.service';\nexport * from './apiLog.service';\nimport { ApiLogService } from './apiLog.service';\nexport * from './appointment.service';\nimport { AppointmentService } from './appointment.service';\nexport * from './audit.service';\nimport { AuditService } from './audit.service';\nexport * from './azure.service';\nimport { AzureService } from './azure.service';\nexport * from './brand.service';\nimport { BrandService } from './brand.service';\nexport * from './brandStyle.service';\nimport { BrandStyleService } from './brandStyle.service';\nexport * from './checklist.service';\nimport { ChecklistService } from './checklist.service';\nexport * from './clockingLogs.service';\nimport { ClockingLogsService } from './clockingLogs.service';\nexport * from './consumableAssociation.service';\nimport { ConsumableAssociationService } from './consumableAssociation.service';\nexport * from './country.service';\nimport { CountryService } from './country.service';\nexport * from './csps.service';\nimport { CspsService } from './csps.service';\nexport * from './currency.service';\nimport { CurrencyService } from './currency.service';\nexport * from './customerCompany.service';\nimport { CustomerCompanyService } from './customerCompany.service';\nexport * from './customerCompanyUser.service';\nimport { CustomerCompanyUserService } from './customerCompanyUser.service';\nexport * from './dMS.service';\nimport { DMSService } from './dMS.service';\nexport * from './dealerBrand.service';\nimport { DealerBrandService } from './dealerBrand.service';\nexport * from './deleteDefferedActivity.service';\nimport { DeleteDefferedActivityService } from './deleteDefferedActivity.service';\nexport * from './discount.service';\nimport { DiscountService } from './discount.service';\nexport * from './dmsCommunication.service';\nimport { DmsCommunicationService } from './dmsCommunication.service';\nexport * from './eDS.service';\nimport { EDSService } from './eDS.service';\nexport * from './email.service';\nimport { EmailService } from './email.service';\nexport * from './eparts.service';\nimport { EpartsService } from './eparts.service';\nexport * from './extraOperation.service';\nimport { ExtraOperationService } from './extraOperation.service';\nexport * from './feedback.service';\nimport { FeedbackService } from './feedback.service';\nexport * from './fiterAppointments.service';\nimport { FiterAppointmentsService } from './fiterAppointments.service';\nexport * from './geolocation.service';\nimport { GeolocationService } from './geolocation.service';\nexport * from './health.service';\nimport { HealthService } from './health.service';\nexport * from './jobcard.service';\nimport { JobcardService } from './jobcard.service';\nexport * from './jobcardItem.service';\nimport { JobcardItemService } from './jobcardItem.service';\nexport * from './jobcardItemStatus.service';\nimport { JobcardItemStatusService } from './jobcardItemStatus.service';\nexport * from './kit.service';\nimport { KitService } from './kit.service';\nexport * from './kpis.service';\nimport { KpisService } from './kpis.service';\nexport * from './language.service';\nimport { LanguageService } from './language.service';\nexport * from './legalnotice.service';\nimport { LegalnoticeService } from './legalnotice.service';\nexport * from './maintenance.service';\nimport { MaintenanceService } from './maintenance.service';\nexport * from './mergeLog.service';\nimport { MergeLogService } from './mergeLog.service';\nexport * from './model.service';\nimport { ModelService } from './model.service';\nexport * from './myBest.service';\nimport { MyBestService } from './myBest.service';\nexport * from './nonProductiveActivity.service';\nimport { NonProductiveActivityService } from './nonProductiveActivity.service';\nexport * from './notification.service';\nimport { NotificationService } from './notification.service';\nexport * from './onholdstatus.service';\nimport { OnholdstatusService } from './onholdstatus.service';\nexport * from './operation.service';\nimport { OperationService } from './operation.service';\nexport * from './order.service';\nimport { OrderService } from './order.service';\nexport * from './orderTypeHeaderCode.service';\nimport { OrderTypeHeaderCodeService } from './orderTypeHeaderCode.service';\nexport * from './part.service';\nimport { PartService } from './part.service';\nexport * from './partConsumables.service';\nimport { PartConsumablesService } from './partConsumables.service';\nexport * from './partTracker.service';\nimport { PartTrackerService } from './partTracker.service';\nexport * from './partsOrder.service';\nimport { PartsOrderService } from './partsOrder.service';\nexport * from './payment.service';\nimport { PaymentService } from './payment.service';\nexport * from './permissions.service';\nimport { PermissionsService } from './permissions.service';\nexport * from './priorityType.service';\nimport { PriorityTypeService } from './priorityType.service';\nexport * from './releaseVersion.service';\nimport { ReleaseVersionService } from './releaseVersion.service';\nexport * from './releaseVersionAll.service';\nimport { ReleaseVersionAllService } from './releaseVersionAll.service';\nexport * from './role.service';\nimport { RoleService } from './role.service';\nexport * from './safetyChecklist.service';\nimport { SafetyChecklistService } from './safetyChecklist.service';\nexport * from './sapClaim.service';\nimport { SapClaimService } from './sapClaim.service';\nexport * from './series.service';\nimport { SeriesService } from './series.service';\nexport * from './shifts.service';\nimport { ShiftsService } from './shifts.service';\nexport * from './signature.service';\nimport { SignatureService } from './signature.service';\nexport * from './skills.service';\nimport { SkillsService } from './skills.service';\nexport * from './sms.service';\nimport { SmsService } from './sms.service';\nexport * from './standalone.service';\nimport { StandaloneService } from './standalone.service';\nexport * from './stats.service';\nimport { StatsService } from './stats.service';\nexport * from './summary.service';\nimport { SummaryService } from './summary.service';\nexport * from './tech.service';\nimport { TechService } from './tech.service';\nexport * from './unavailabilities.service';\nimport { UnavailabilitiesService } from './unavailabilities.service';\nexport * from './userGuides.service';\nimport { UserGuidesService } from './userGuides.service';\nexport * from './vehicle.service';\nimport { VehicleService } from './vehicle.service';\nexport * from './vehicleCourtesy.service';\nimport { VehicleCourtesyService } from './vehicleCourtesy.service';\nexport * from './vehicleCourtesyBooking.service';\nimport { VehicleCourtesyBookingService } from './vehicleCourtesyBooking.service';\nexport * from './warrantyTypes.service';\nimport { WarrantyTypesService } from './warrantyTypes.service';\nexport * from './workshop.service';\nimport { WorkshopService } from './workshop.service';\nexport * from './workshopBay.service';\nimport { WorkshopBayService } from './workshopBay.service';\nexport * from './workshopUser.service';\nimport { WorkshopUserService } from './workshopUser.service';\nexport * from './workshopUserChecklistTypes.service';\nimport { WorkshopUserChecklistTypesService } from './workshopUserChecklistTypes.service';\nexport const APIS = [ActivityService, ActivityMaintenanceService, ActivityReportService, ApiAppointmentService, ApiAppointmentWarrantyService, ApiBacklogAppointmentService, ApiLogService, AppointmentService, AuditService, AzureService, BrandService, BrandStyleService, ChecklistService, ClockingLogsService, ConsumableAssociationService, CountryService, CspsService, CurrencyService, CustomerCompanyService, CustomerCompanyUserService, DMSService, DealerBrandService, DeleteDefferedActivityService, DiscountService, DmsCommunicationService, EDSService, EmailService, EpartsService, ExtraOperationService, FeedbackService, FiterAppointmentsService, GeolocationService, HealthService, JobcardService, JobcardItemService, JobcardItemStatusService, KitService, KpisService, LanguageService, LegalnoticeService, MaintenanceService, MergeLogService, ModelService, MyBestService, NonProductiveActivityService, NotificationService, OnholdstatusService, OperationService, OrderService, OrderTypeHeaderCodeService, PartService, PartConsumablesService, PartTrackerService, PartsOrderService, PaymentService, PermissionsService, PriorityTypeService, ReleaseVersionService, ReleaseVersionAllService, RoleService, SafetyChecklistService, SapClaimService, SeriesService, ShiftsService, SignatureService, SkillsService, SmsService, StandaloneService, StatsService, SummaryService, TechService, UnavailabilitiesService, UserGuidesService, VehicleService, VehicleCourtesyService, VehicleCourtesyBookingService, WarrantyTypesService, WorkshopService, WorkshopBayService, WorkshopUserService, WorkshopUserChecklistTypesService];\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ApiResponseDto } from '../model/models';\nimport { Appointment } from '../model/models';\nimport { AppointmentSignature } from '../model/models';\nimport { AppointmentSignatureFile } from '../model/models';\nimport { AppointmentStatus } from '../model/models';\nimport { AppointmentUnitStatus } from '../model/models';\nimport { JobcardItemIuDocument } from '../model/models';\nimport { TechnicianPlanningCount } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CheckVehicleIsinUseRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Vehicle ID */\n vehicleId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateAppointmentRequestParams {\n /** Creation source application */\n src?: 'web' | 'mobile';\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateAppointmentSignatureRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n appointmentSignature?: AppointmentSignature;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateAppointmentSignatureV2RequestParams {\n appointmentSignatureFile?: AppointmentSignatureFile;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateAppointmentStatusRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n appointmentStatus?: AppointmentStatus;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateAppointmentUnitStatusRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n appointmentUnitStatus?: AppointmentUnitStatus;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditAppointmentsRequestParams {\n appointment?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ExportPdfRequestParams {\n /** Appointment ID. */\n appointmentId: number;\n /** Pdf Type. */\n pdfType?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentRequestParams {\n /** Appointment ID */\n id: number;\n /** Retrieve all activities deferred and not, or not deferred activities if null */\n withDeferred?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentForFeedbackModalRequestParams {\n /** Appointment ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentReportRequestParams {\n /** Workshop User ID */\n workshopUserId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentSignatureRequestParams {\n /** Appointment ID */\n appointmentSignatureId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentSignaturesRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentStatusRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsAssociatedWithDeferredActivityRequestParams {\n /** Workshop ID */\n workshopId: number;\n /** deferred activity name */\n activityName: string;\n /** appoitment vin */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsByUserIdFromDayRequestParams {\n /** Technician Id */\n userId?: string;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsForAgendaViewRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsWithDiscountsRequestParams {\n /** Workshop ID */\n workshopId: number;\n /** Discount ID */\n discountId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAppointmentsWithSafetyChecklistRequestParams {\n /** Workshop ID */\n workshopId: number;\n /** Start date/time to retrieve the appointments */\n startDate: string;\n /** End Date to retrieve the appointments */\n endDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetBayActivitiesByWorkshopIdRequestParams {\n /** Workshop user\\'s ID */\n workshopUserId: string;\n /** Workshop bay ID */\n workshopBayId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCancelledAppointmentsRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** status to be displayed */\n currentStatus?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFutureAppointmentsCreatedFromChecklistRequestParams {\n /** Workshop ID */\n workshopId: number;\n /** Customer Company ID */\n customerCompanyId: number;\n /** Vehicle ID */\n vehicleId: number;\n /** Start date/time to retrieve the appointments */\n startDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetInWorkshopAppointmentsRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Retrieve all activities deferred and not, or not deferred activities if null */\n withDeferred?: boolean;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetLastAppointmentRequestParams {\n /** Vehicle / Machine ID */\n vehicleId: number;\n /** Customer company ID */\n customerCompanyId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSentBackErrorAppointmentsRequestParams {\n /** Workshop user\\'s ID */\n workshopUserId: string;\n /** Workshop ID */\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTechnicianPlanningCountRequestParams {\n /** Workshop ID for counting the appointments */\n workshopId?: number;\n /** Start Date for counting the appointments */\n startDate?: string;\n /** End Date for counting the appointments */\n endDate?: string;\n /** Bay ID if a specific bay was selected */\n bayId?: number;\n /** Role ID if a role was selected */\n roleId?: number;\n priorityFilter?: string;\n searchValue?: string;\n searchType?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUnscheduledActivitiesRequestParams {\n /** Workshop user\\'s ID */\n workshopUserId: string;\n /** Workshop ID */\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface IsAppointmentInUseInDmsRequestParams {\n /** Appointment ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** DMS Number */\n dmsJobOrder?: string;\n /** Workshop Bay ID */\n workshopBayId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Workshop User ID */\n workshopUserId?: string;\n /** Customer Company ID */\n customerCompanyId?: number;\n /** Vehicle ID */\n vehicleId?: number;\n /** Vehicle VIN */\n vin?: string;\n /** Full object for appointment or only planning (lite) view */\n view?: 'lite' | 'full' | 'planning' | 'agenda' | 'workfile' | 'kanban-day' | 'kanban-week' | 'bay' | 'mobile';\n /** status to be displayed */\n currentStatus?: string;\n /** type of report to be displayed */\n report?: string;\n /** Retrieve all activities deferred and not, or not deferred activities if null */\n withDeferred?: boolean;\n /** Retrieve all appointments on hold */\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n /** Unit status */\n unitStatus?: boolean;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsByVehicleRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Vehicle ID */\n vehicleId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsForAGWorkFileRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** DMS Number */\n dmsJobOrder?: string;\n /** Workshop Bay ID */\n workshopBayId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Workshop User ID */\n workshopUserId?: string;\n /** Customer Company ID */\n customerCompanyId?: number;\n /** Vehicle ID */\n vehicleId?: number;\n /** Vehicle VIN */\n vin?: string;\n /** Full object for appointment or only planning (lite) view */\n view?: 'lite' | 'full' | 'planning' | 'agenda' | 'workfile' | 'kanban-day' | 'kanban-week' | 'bay' | 'mobile';\n /** status to be displayed */\n currentStatus?: string;\n /** type of report to be displayed */\n report?: string;\n /** Retrieve all activities deferred and not, or not deferred activities if null */\n withDeferred?: boolean;\n /** Retrieve all appointments on hold */\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n appointmentPriority?: string;\n dmsOrderType?: string;\n /** Unit status */\n unitStatus?: boolean;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsForCVMobileAppRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Workshop User ID */\n workshopUserId?: string;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Retrieve all appointments or only the ones linked to the workshop user */\n isSearchAll?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsForMobileAppRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Workshop User ID */\n workshopUserId?: string;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Retrieve all appointments or only the ones linked to the workshop user */\n isSearchAll?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsForVehicleHistoryRequestParams {\n /** Vehicle VIN */\n vin?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsPlanningTechnicianAgRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListBookingPageAppointmentsRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListOfAppointmentsFoKanbanViewRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n view?: 'kanban-day' | 'kanban-week';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListOfAppointmentsForWiPViewRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListOfAppointmentsForWorkshopRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Workshop Bay ID */\n workshopBayId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListOfAppointmentsForWorkshopForCVRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Workshop Bay ID */\n workshopBayId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListTechAgendaAppointmentsRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListTechPlanningAppointmentsRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListTechPlanningAppointmentsForWeekRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** List of workshop users */\n workshopUsers?: string;\n /** List of status to filter */\n status?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PostAppointmentStatusRequestParams {\n /** AppointmentID. */\n id: number;\n appointmentStatus?: AppointmentStatus;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveAppointmentsByWorkshopBayIdRequestParams {\n workshopId?: number;\n /** Workshop Bay ID */\n workshopBayId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveAppointmentsForWorkspaceClockingRequestParams {\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveAppointmentsForWorkspaceTimeRequestParams {\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveAppointmentsForWorkspaceUserRequestParams {\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveCustomersCountByCustomerIdRequestParams {\n customerCompanyId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentRequestParams {\n /** Appointment ID */\n id: number;\n /** Appointment ID */\n view?: 'planning' | 'workspace' | 'full' | 'kanban-day' | 'kanban-week' | 'app' | 'lock' | 'unlock' | 'bay';\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentForWsuserRequestParams {\n /** Appointment ID */\n id: number;\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentInWorkshopRequestParams {\n /** Appointment ID */\n id: number;\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentInWorkshopForCVRequestParams {\n /** Appointment ID */\n id: number;\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentPlanningTechnicianAgRequestParams {\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentPriorityRequestParams {\n /** Appointment ID */\n id: number;\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentTechPlanningCVRequestParams {\n /** Appointment ID */\n id: number;\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateAppointmentWorkspaceRequestParams {\n /** Appointment ID */\n id: number;\n appointment?: Appointment;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateIuDocumentsForAppointmentRequestParams {\n jobcardItemIuDocument?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpsertAppointmentOrderRequestParams {\n /** appointment ID. */\n id: number;\n /** Type of the order (Quote, Invoice or Reservation). */\n type: string;\n /** Date of the Order. */\n date?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiAppointmentService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Check Vehicle is in use or not .\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkVehicleIsinUse(requestParameters: CheckVehicleIsinUseRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public checkVehicleIsinUse(requestParameters: CheckVehicleIsinUseRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkVehicleIsinUse(requestParameters: CheckVehicleIsinUseRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkVehicleIsinUse(requestParameters: CheckVehicleIsinUseRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const vehicleId = requestParameters.vehicleId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/vehicle-in-use`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointment(requestParameters: CreateAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createAppointment(requestParameters: CreateAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointment(requestParameters: CreateAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointment(requestParameters: CreateAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const src = requestParameters.src;\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (src !== undefined && src !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n src, 'src');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointments`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create an appointment Signature\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointmentSignature(requestParameters: CreateAppointmentSignatureRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createAppointmentSignature(requestParameters: CreateAppointmentSignatureRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentSignature(requestParameters: CreateAppointmentSignatureRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentSignature(requestParameters: CreateAppointmentSignatureRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const appointmentSignature = requestParameters.appointmentSignature;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointment-signatures`,\n appointmentSignature,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create an appointment Signature with backend handling file upload\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointmentSignatureV2(requestParameters: CreateAppointmentSignatureV2RequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createAppointmentSignatureV2(requestParameters: CreateAppointmentSignatureV2RequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentSignatureV2(requestParameters: CreateAppointmentSignatureV2RequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentSignatureV2(requestParameters: CreateAppointmentSignatureV2RequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentSignatureFile = requestParameters.appointmentSignatureFile;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointment-signatures/v2`,\n appointmentSignatureFile,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create an appointment Status\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointmentStatus(requestParameters: CreateAppointmentStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createAppointmentStatus(requestParameters: CreateAppointmentStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentStatus(requestParameters: CreateAppointmentStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentStatus(requestParameters: CreateAppointmentStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const appointmentStatus = requestParameters.appointmentStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointment-status`,\n appointmentStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create an appointment unit status\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createAppointmentUnitStatus(requestParameters: CreateAppointmentUnitStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createAppointmentUnitStatus(requestParameters: CreateAppointmentUnitStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentUnitStatus(requestParameters: CreateAppointmentUnitStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createAppointmentUnitStatus(requestParameters: CreateAppointmentUnitStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const appointmentUnitStatus = requestParameters.appointmentUnitStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointment-unit-status`,\n appointmentUnitStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit multiple appointments\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editAppointments(requestParameters: EditAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editAppointments(requestParameters: EditAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public editAppointments(requestParameters: EditAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public editAppointments(requestParameters: EditAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/appointments`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Export the PDF\n * Export the PDF for the appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public exportPdf(requestParameters: ExportPdfRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf' | 'application/json'}): Observable;\n public exportPdf(requestParameters: ExportPdfRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf' | 'application/json'}): Observable>;\n public exportPdf(requestParameters: ExportPdfRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf' | 'application/json'}): Observable>;\n public exportPdf(requestParameters: ExportPdfRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/pdf' | 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling exportPdf.');\n }\n const pdfType = requestParameters.pdfType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (pdfType !== undefined && pdfType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pdfType, 'pdfType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/pdf',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/pdf-export`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the appointment by its ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointment(requestParameters: GetAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAppointment(requestParameters: GetAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointment(requestParameters: GetAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointment(requestParameters: GetAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getAppointment.');\n }\n const withDeferred = requestParameters.withDeferred;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the appointment by its ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentForFeedbackModal(requestParameters: GetAppointmentForFeedbackModalRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAppointmentForFeedbackModal(requestParameters: GetAppointmentForFeedbackModalRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentForFeedbackModal(requestParameters: GetAppointmentForFeedbackModalRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentForFeedbackModal(requestParameters: GetAppointmentForFeedbackModalRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getAppointmentForFeedbackModal.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/feedback/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the appointmentReport by workshop user id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentReport(requestParameters: GetAppointmentReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable;\n public getAppointmentReport(requestParameters: GetAppointmentReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getAppointmentReport(requestParameters: GetAppointmentReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getAppointmentReport(requestParameters: GetAppointmentReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable {\n const workshopUserId = requestParameters.workshopUserId;\n if (workshopUserId === null || workshopUserId === undefined) {\n throw new Error('Required parameter workshopUserId was null or undefined when calling getAppointmentReport.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/appointmentsReport`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the details of a specific appointment signature\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentSignature(requestParameters: GetAppointmentSignatureRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAppointmentSignature(requestParameters: GetAppointmentSignatureRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentSignature(requestParameters: GetAppointmentSignatureRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentSignature(requestParameters: GetAppointmentSignatureRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentSignatureId = requestParameters.appointmentSignatureId;\n if (appointmentSignatureId === null || appointmentSignatureId === undefined) {\n throw new Error('Required parameter appointmentSignatureId was null or undefined when calling getAppointmentSignature.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointment-signatures/${encodeURIComponent(String(appointmentSignatureId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the signatures for a specific appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentSignatures(requestParameters: GetAppointmentSignaturesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentSignatures(requestParameters: GetAppointmentSignaturesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentSignatures(requestParameters: GetAppointmentSignaturesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentSignatures(requestParameters: GetAppointmentSignaturesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointment-signatures`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointment Status for an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentStatus(requestParameters: GetAppointmentStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentStatus(requestParameters: GetAppointmentStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentStatus(requestParameters: GetAppointmentStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentStatus(requestParameters: GetAppointmentStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointment-status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Fetch appointments those associated with deferred activity\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsAssociatedWithDeferredActivity(requestParameters: GetAppointmentsAssociatedWithDeferredActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentsAssociatedWithDeferredActivity(requestParameters: GetAppointmentsAssociatedWithDeferredActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsAssociatedWithDeferredActivity(requestParameters: GetAppointmentsAssociatedWithDeferredActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsAssociatedWithDeferredActivity(requestParameters: GetAppointmentsAssociatedWithDeferredActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getAppointmentsAssociatedWithDeferredActivity.');\n }\n const activityName = requestParameters.activityName;\n if (activityName === null || activityName === undefined) {\n throw new Error('Required parameter activityName was null or undefined when calling getAppointmentsAssociatedWithDeferredActivity.');\n }\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getAppointmentsAssociatedWithDeferredActivity.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (activityName !== undefined && activityName !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n activityName, 'activityName');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/appointments-associated-with-deferred-activity`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for a technician and a start date\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsByUserIdFromDay(requestParameters: GetAppointmentsByUserIdFromDayRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentsByUserIdFromDay(requestParameters: GetAppointmentsByUserIdFromDayRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsByUserIdFromDay(requestParameters: GetAppointmentsByUserIdFromDayRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsByUserIdFromDay(requestParameters: GetAppointmentsByUserIdFromDayRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n const startDate = requestParameters.startDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/getByUser`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for workshop agenda view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsForAgendaView(requestParameters: GetAppointmentsForAgendaViewRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentsForAgendaView(requestParameters: GetAppointmentsForAgendaViewRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsForAgendaView(requestParameters: GetAppointmentsForAgendaViewRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsForAgendaView(requestParameters: GetAppointmentsForAgendaViewRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/cv/workshop-agenda-view`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Fetch appointments those include a specific discount\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsWithDiscounts(requestParameters: GetAppointmentsWithDiscountsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentsWithDiscounts(requestParameters: GetAppointmentsWithDiscountsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsWithDiscounts(requestParameters: GetAppointmentsWithDiscountsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsWithDiscounts(requestParameters: GetAppointmentsWithDiscountsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getAppointmentsWithDiscounts.');\n }\n const discountId = requestParameters.discountId;\n if (discountId === null || discountId === undefined) {\n throw new Error('Required parameter discountId was null or undefined when calling getAppointmentsWithDiscounts.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (discountId !== undefined && discountId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n discountId, 'discountId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/discounts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get appointments with a submitted safety checklist (complete or partially).\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentsWithSafetyChecklist(requestParameters: GetAppointmentsWithSafetyChecklistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentsWithSafetyChecklist(requestParameters: GetAppointmentsWithSafetyChecklistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsWithSafetyChecklist(requestParameters: GetAppointmentsWithSafetyChecklistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAppointmentsWithSafetyChecklist(requestParameters: GetAppointmentsWithSafetyChecklistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getAppointmentsWithSafetyChecklist.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getAppointmentsWithSafetyChecklist.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getAppointmentsWithSafetyChecklist.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/safety-checklist`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Workshopuser activity process based on bay\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBayActivitiesByWorkshopId(requestParameters: GetBayActivitiesByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getBayActivitiesByWorkshopId(requestParameters: GetBayActivitiesByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBayActivitiesByWorkshopId(requestParameters: GetBayActivitiesByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBayActivitiesByWorkshopId(requestParameters: GetBayActivitiesByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopUserId = requestParameters.workshopUserId;\n if (workshopUserId === null || workshopUserId === undefined) {\n throw new Error('Required parameter workshopUserId was null or undefined when calling getBayActivitiesByWorkshopId.');\n }\n const workshopBayId = requestParameters.workshopBayId;\n if (workshopBayId === null || workshopBayId === undefined) {\n throw new Error('Required parameter workshopBayId was null or undefined when calling getBayActivitiesByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(workshopUserId))}/bay-activities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all cancelled appointments.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCancelledAppointments(requestParameters: GetCancelledAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCancelledAppointments(requestParameters: GetCancelledAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCancelledAppointments(requestParameters: GetCancelledAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCancelledAppointments(requestParameters: GetCancelledAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const currentStatus = requestParameters.currentStatus;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/reporting-cancelled`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get appointments in the future, for a customer and vehicle from a start date/time, and created from a previous checklist.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFutureAppointmentsCreatedFromChecklist(requestParameters: GetFutureAppointmentsCreatedFromChecklistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFutureAppointmentsCreatedFromChecklist(requestParameters: GetFutureAppointmentsCreatedFromChecklistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFutureAppointmentsCreatedFromChecklist(requestParameters: GetFutureAppointmentsCreatedFromChecklistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFutureAppointmentsCreatedFromChecklist(requestParameters: GetFutureAppointmentsCreatedFromChecklistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const customerCompanyId = requestParameters.customerCompanyId;\n if (customerCompanyId === null || customerCompanyId === undefined) {\n throw new Error('Required parameter customerCompanyId was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const vehicleId = requestParameters.vehicleId;\n if (vehicleId === null || vehicleId === undefined) {\n throw new Error('Required parameter vehicleId was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getFutureAppointmentsCreatedFromChecklist.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/from-checklist`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get In Workshop appointments\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInWorkshopAppointments(requestParameters: GetInWorkshopAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getInWorkshopAppointments(requestParameters: GetInWorkshopAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getInWorkshopAppointments(requestParameters: GetInWorkshopAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getInWorkshopAppointments(requestParameters: GetInWorkshopAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const withDeferred = requestParameters.withDeferred;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/cv/inworkshopappointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the last appointment for a specific vehicle\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLastAppointment(requestParameters: GetLastAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getLastAppointment(requestParameters: GetLastAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLastAppointment(requestParameters: GetLastAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLastAppointment(requestParameters: GetLastAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vehicleId = requestParameters.vehicleId;\n if (vehicleId === null || vehicleId === undefined) {\n throw new Error('Required parameter vehicleId was null or undefined when calling getLastAppointment.');\n }\n const customerCompanyId = requestParameters.customerCompanyId;\n if (customerCompanyId === null || customerCompanyId === undefined) {\n throw new Error('Required parameter customerCompanyId was null or undefined when calling getLastAppointment.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/last-appointment`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments in status \\'Sent-back Error/Technicien re-validation\\' for a specific technician\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSentBackErrorAppointments(requestParameters: GetSentBackErrorAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSentBackErrorAppointments(requestParameters: GetSentBackErrorAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSentBackErrorAppointments(requestParameters: GetSentBackErrorAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSentBackErrorAppointments(requestParameters: GetSentBackErrorAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopUserId = requestParameters.workshopUserId;\n if (workshopUserId === null || workshopUserId === undefined) {\n throw new Error('Required parameter workshopUserId was null or undefined when calling getSentBackErrorAppointments.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getSentBackErrorAppointments.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(workshopUserId))}/sent-back-for-error`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get count per activity status for technician planning screen.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTechnicianPlanningCount(requestParameters: GetTechnicianPlanningCountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getTechnicianPlanningCount(requestParameters: GetTechnicianPlanningCountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTechnicianPlanningCount(requestParameters: GetTechnicianPlanningCountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTechnicianPlanningCount(requestParameters: GetTechnicianPlanningCountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const bayId = requestParameters.bayId;\n const roleId = requestParameters.roleId;\n const priorityFilter = requestParameters.priorityFilter;\n const searchValue = requestParameters.searchValue;\n const searchType = requestParameters.searchType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (bayId !== undefined && bayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n bayId, 'bayId');\n }\n if (roleId !== undefined && roleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n roleId, 'roleId');\n }\n if (priorityFilter !== undefined && priorityFilter !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n priorityFilter, 'priorityFilter');\n }\n if (searchValue !== undefined && searchValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchValue, 'searchValue');\n }\n if (searchType !== undefined && searchType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n searchType, 'searchType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/technician-planning-count`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments with unscheduled activities for a specific technician\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUnscheduledActivities(requestParameters: GetUnscheduledActivitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUnscheduledActivities(requestParameters: GetUnscheduledActivitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUnscheduledActivities(requestParameters: GetUnscheduledActivitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUnscheduledActivities(requestParameters: GetUnscheduledActivitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopUserId = requestParameters.workshopUserId;\n if (workshopUserId === null || workshopUserId === undefined) {\n throw new Error('Required parameter workshopUserId was null or undefined when calling getUnscheduledActivities.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getUnscheduledActivities.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(workshopUserId))}/unscheduled-activities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get status of appointment on DMS\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public isAppointmentInUseInDms(requestParameters: IsAppointmentInUseInDmsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public isAppointmentInUseInDms(requestParameters: IsAppointmentInUseInDmsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isAppointmentInUseInDms(requestParameters: IsAppointmentInUseInDmsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isAppointmentInUseInDms(requestParameters: IsAppointmentInUseInDmsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling isAppointmentInUseInDms.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}/used`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointments(requestParameters: ListAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointments(requestParameters: ListAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointments(requestParameters: ListAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointments(requestParameters: ListAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const workshopBayId = requestParameters.workshopBayId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const view = requestParameters.view;\n const currentStatus = requestParameters.currentStatus;\n const report = requestParameters.report;\n const withDeferred = requestParameters.withDeferred;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const unitStatus = requestParameters.unitStatus;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (report !== undefined && report !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n report, 'report');\n }\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (unitStatus !== undefined && unitStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n unitStatus, 'unitStatus');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments with same vehicle\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsByVehicle(requestParameters: ListAppointmentsByVehicleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsByVehicle(requestParameters: ListAppointmentsByVehicleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsByVehicle(requestParameters: ListAppointmentsByVehicleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsByVehicle(requestParameters: ListAppointmentsByVehicleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const vehicleId = requestParameters.vehicleId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/vehicle-appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for AG WorkFile\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsForAGWorkFile(requestParameters: ListAppointmentsForAGWorkFileRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsForAGWorkFile(requestParameters: ListAppointmentsForAGWorkFileRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsForAGWorkFile(requestParameters: ListAppointmentsForAGWorkFileRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsForAGWorkFile(requestParameters: ListAppointmentsForAGWorkFileRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const workshopBayId = requestParameters.workshopBayId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const view = requestParameters.view;\n const currentStatus = requestParameters.currentStatus;\n const report = requestParameters.report;\n const withDeferred = requestParameters.withDeferred;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const appointmentPriority = requestParameters.appointmentPriority;\n const dmsOrderType = requestParameters.dmsOrderType;\n const unitStatus = requestParameters.unitStatus;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (report !== undefined && report !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n report, 'report');\n }\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (appointmentPriority !== undefined && appointmentPriority !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentPriority, 'appointmentPriority');\n }\n if (dmsOrderType !== undefined && dmsOrderType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsOrderType, 'dmsOrderType');\n }\n if (unitStatus !== undefined && unitStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n unitStatus, 'unitStatus');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/wokfile-list`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for cv mobile app dashboard\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsForCVMobileApp(requestParameters: ListAppointmentsForCVMobileAppRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsForCVMobileApp(requestParameters: ListAppointmentsForCVMobileAppRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsForCVMobileApp(requestParameters: ListAppointmentsForCVMobileAppRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsForCVMobileApp(requestParameters: ListAppointmentsForCVMobileAppRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const workshopUserId = requestParameters.workshopUserId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const isSearchAll = requestParameters.isSearchAll;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (isSearchAll !== undefined && isSearchAll !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isSearchAll, 'isSearchAll');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/cv-mobile-dashboard`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for mobile app dashboard\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsForMobileApp(requestParameters: ListAppointmentsForMobileAppRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsForMobileApp(requestParameters: ListAppointmentsForMobileAppRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsForMobileApp(requestParameters: ListAppointmentsForMobileAppRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsForMobileApp(requestParameters: ListAppointmentsForMobileAppRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const workshopUserId = requestParameters.workshopUserId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const isSearchAll = requestParameters.isSearchAll;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (isSearchAll !== undefined && isSearchAll !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isSearchAll, 'isSearchAll');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/ag-mobile-dashboard`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for vehicle history\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsForVehicleHistory(requestParameters: ListAppointmentsForVehicleHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsForVehicleHistory(requestParameters: ListAppointmentsForVehicleHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsForVehicleHistory(requestParameters: ListAppointmentsForVehicleHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsForVehicleHistory(requestParameters: ListAppointmentsForVehicleHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/vehicle-jobcard-history`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsPlanningTechnicianAg(requestParameters: ListAppointmentsPlanningTechnicianAgRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsPlanningTechnicianAg(requestParameters: ListAppointmentsPlanningTechnicianAgRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsPlanningTechnicianAg(requestParameters: ListAppointmentsPlanningTechnicianAgRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsPlanningTechnicianAg(requestParameters: ListAppointmentsPlanningTechnicianAgRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/ag/planning-technician`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List appointments on booking page\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listBookingPageAppointments(requestParameters: ListBookingPageAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listBookingPageAppointments(requestParameters: ListBookingPageAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listBookingPageAppointments(requestParameters: ListBookingPageAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listBookingPageAppointments(requestParameters: ListBookingPageAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/booking/appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for kanban view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listOfAppointmentsFoKanbanView(requestParameters: ListOfAppointmentsFoKanbanViewRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listOfAppointmentsFoKanbanView(requestParameters: ListOfAppointmentsFoKanbanViewRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listOfAppointmentsFoKanbanView(requestParameters: ListOfAppointmentsFoKanbanViewRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listOfAppointmentsFoKanbanView(requestParameters: ListOfAppointmentsFoKanbanViewRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/kanban`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for wip view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listOfAppointmentsForWiPView(requestParameters: ListOfAppointmentsForWiPViewRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listOfAppointmentsForWiPView(requestParameters: ListOfAppointmentsForWiPViewRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listOfAppointmentsForWiPView(requestParameters: ListOfAppointmentsForWiPViewRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listOfAppointmentsForWiPView(requestParameters: ListOfAppointmentsForWiPViewRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/reporting-wip`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listOfAppointmentsForWorkshop(requestParameters: ListOfAppointmentsForWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listOfAppointmentsForWorkshop(requestParameters: ListOfAppointmentsForWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listOfAppointmentsForWorkshop(requestParameters: ListOfAppointmentsForWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listOfAppointmentsForWorkshop(requestParameters: ListOfAppointmentsForWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const workshopBayId = requestParameters.workshopBayId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/ag-planning-workshop`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listOfAppointmentsForWorkshopForCV(requestParameters: ListOfAppointmentsForWorkshopForCVRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listOfAppointmentsForWorkshopForCV(requestParameters: ListOfAppointmentsForWorkshopForCVRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listOfAppointmentsForWorkshopForCV(requestParameters: ListOfAppointmentsForWorkshopForCVRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listOfAppointmentsForWorkshopForCV(requestParameters: ListOfAppointmentsForWorkshopForCVRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const workshopBayId = requestParameters.workshopBayId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/cv-planning-workshop`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for technician agenda view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listTechAgendaAppointments(requestParameters: ListTechAgendaAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listTechAgendaAppointments(requestParameters: ListTechAgendaAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listTechAgendaAppointments(requestParameters: ListTechAgendaAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listTechAgendaAppointments(requestParameters: ListTechAgendaAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/cv/technician-agenda`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for technician planning/day view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listTechPlanningAppointments(requestParameters: ListTechPlanningAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listTechPlanningAppointments(requestParameters: ListTechPlanningAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listTechPlanningAppointments(requestParameters: ListTechPlanningAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listTechPlanningAppointments(requestParameters: ListTechPlanningAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/cv/technician-planning`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for technician planning week view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listTechPlanningAppointmentsForWeek(requestParameters: ListTechPlanningAppointmentsForWeekRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listTechPlanningAppointmentsForWeek(requestParameters: ListTechPlanningAppointmentsForWeekRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listTechPlanningAppointmentsForWeek(requestParameters: ListTechPlanningAppointmentsForWeekRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listTechPlanningAppointmentsForWeek(requestParameters: ListTechPlanningAppointmentsForWeekRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopUsers = requestParameters.workshopUsers;\n const status = requestParameters.status;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopUsers !== undefined && workshopUsers !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUsers, 'workshopUsers');\n }\n if (status !== undefined && status !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n status, 'status');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/cv/technician-planning-new`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create an appointment Status\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public postAppointmentStatus(requestParameters: PostAppointmentStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public postAppointmentStatus(requestParameters: PostAppointmentStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public postAppointmentStatus(requestParameters: PostAppointmentStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public postAppointmentStatus(requestParameters: PostAppointmentStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling postAppointmentStatus.');\n }\n const appointmentStatus = requestParameters.appointmentStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}/appointment-status`,\n appointmentStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get appointments with workshop bays\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveAppointmentsByWorkshopBayId(requestParameters: RetrieveAppointmentsByWorkshopBayIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable;\n public retrieveAppointmentsByWorkshopBayId(requestParameters: RetrieveAppointmentsByWorkshopBayIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable>;\n public retrieveAppointmentsByWorkshopBayId(requestParameters: RetrieveAppointmentsByWorkshopBayIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable>;\n public retrieveAppointmentsByWorkshopBayId(requestParameters: RetrieveAppointmentsByWorkshopBayIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const workshopBayId = requestParameters.workshopBayId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'text/plain',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/workshop-bay-appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for workspace clockings\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveAppointmentsForWorkspaceClocking(requestParameters: RetrieveAppointmentsForWorkspaceClockingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveAppointmentsForWorkspaceClocking(requestParameters: RetrieveAppointmentsForWorkspaceClockingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveAppointmentsForWorkspaceClocking(requestParameters: RetrieveAppointmentsForWorkspaceClockingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveAppointmentsForWorkspaceClocking(requestParameters: RetrieveAppointmentsForWorkspaceClockingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/workspace-clocking`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for workspace time\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveAppointmentsForWorkspaceTime(requestParameters: RetrieveAppointmentsForWorkspaceTimeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveAppointmentsForWorkspaceTime(requestParameters: RetrieveAppointmentsForWorkspaceTimeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveAppointmentsForWorkspaceTime(requestParameters: RetrieveAppointmentsForWorkspaceTimeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveAppointmentsForWorkspaceTime(requestParameters: RetrieveAppointmentsForWorkspaceTimeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/workspace-time`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments for workspace user view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveAppointmentsForWorkspaceUser(requestParameters: RetrieveAppointmentsForWorkspaceUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveAppointmentsForWorkspaceUser(requestParameters: RetrieveAppointmentsForWorkspaceUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveAppointmentsForWorkspaceUser(requestParameters: RetrieveAppointmentsForWorkspaceUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveAppointmentsForWorkspaceUser(requestParameters: RetrieveAppointmentsForWorkspaceUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/workspace-users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get appointments with customers assigned\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveCustomersCountByCustomerId(requestParameters: RetrieveCustomersCountByCustomerIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable;\n public retrieveCustomersCountByCustomerId(requestParameters: RetrieveCustomersCountByCustomerIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable>;\n public retrieveCustomersCountByCustomerId(requestParameters: RetrieveCustomersCountByCustomerIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable>;\n public retrieveCustomersCountByCustomerId(requestParameters: RetrieveCustomersCountByCustomerIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable {\n const customerCompanyId = requestParameters.customerCompanyId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'text/plain',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/appointments/customer-company-appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointment(requestParameters: UpdateAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointment(requestParameters: UpdateAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointment(requestParameters: UpdateAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointment(requestParameters: UpdateAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointment.');\n }\n const view = requestParameters.view;\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Modify an appointment by its ID in workspace user view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentForWsuser(requestParameters: UpdateAppointmentForWsuserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentForWsuser(requestParameters: UpdateAppointmentForWsuserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentForWsuser(requestParameters: UpdateAppointmentForWsuserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentForWsuser(requestParameters: UpdateAppointmentForWsuserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentForWsuser.');\n }\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/workspace-users/${encodeURIComponent(String(id))}`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an appointment in workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentInWorkshop(requestParameters: UpdateAppointmentInWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentInWorkshop(requestParameters: UpdateAppointmentInWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentInWorkshop(requestParameters: UpdateAppointmentInWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentInWorkshop(requestParameters: UpdateAppointmentInWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentInWorkshop.');\n }\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/ag-planning-workshop/${encodeURIComponent(String(id))}`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an appointment in workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentInWorkshopForCV(requestParameters: UpdateAppointmentInWorkshopForCVRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentInWorkshopForCV(requestParameters: UpdateAppointmentInWorkshopForCVRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentInWorkshopForCV(requestParameters: UpdateAppointmentInWorkshopForCVRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentInWorkshopForCV(requestParameters: UpdateAppointmentInWorkshopForCVRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentInWorkshopForCV.');\n }\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/cv-planning-workshop/${encodeURIComponent(String(id))}`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentPlanningTechnicianAg(requestParameters: UpdateAppointmentPlanningTechnicianAgRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentPlanningTechnicianAg(requestParameters: UpdateAppointmentPlanningTechnicianAgRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentPlanningTechnicianAg(requestParameters: UpdateAppointmentPlanningTechnicianAgRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentPlanningTechnicianAg(requestParameters: UpdateAppointmentPlanningTechnicianAgRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/ag/planning-technician`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Modify priority for an appointment by its ID in kanban view\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentPriority(requestParameters: UpdateAppointmentPriorityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentPriority(requestParameters: UpdateAppointmentPriorityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentPriority(requestParameters: UpdateAppointmentPriorityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentPriority(requestParameters: UpdateAppointmentPriorityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentPriority.');\n }\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/cv-Workfile-priority/${encodeURIComponent(String(id))}`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentTechPlanningCV(requestParameters: UpdateAppointmentTechPlanningCVRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentTechPlanningCV(requestParameters: UpdateAppointmentTechPlanningCVRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentTechPlanningCV(requestParameters: UpdateAppointmentTechPlanningCVRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentTechPlanningCV(requestParameters: UpdateAppointmentTechPlanningCVRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentTechPlanningCV.');\n }\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/cv/technician-planning/${encodeURIComponent(String(id))}`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update appointment from workspace\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateAppointmentWorkspace(requestParameters: UpdateAppointmentWorkspaceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateAppointmentWorkspace(requestParameters: UpdateAppointmentWorkspaceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentWorkspace(requestParameters: UpdateAppointmentWorkspaceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateAppointmentWorkspace(requestParameters: UpdateAppointmentWorkspaceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateAppointmentWorkspace.');\n }\n const appointment = requestParameters.appointment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/appointments/workspace-time-update/${encodeURIComponent(String(id))}`,\n appointment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Modify the IU/SRT Documents associated to the activities of an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateIuDocumentsForAppointment(requestParameters: UpdateIuDocumentsForAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateIuDocumentsForAppointment(requestParameters: UpdateIuDocumentsForAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateIuDocumentsForAppointment(requestParameters: UpdateIuDocumentsForAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateIuDocumentsForAppointment(requestParameters: UpdateIuDocumentsForAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardItemIuDocument = requestParameters.jobcardItemIuDocument;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/appointments/iu-documents`,\n jobcardItemIuDocument,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * POST the order to DMS\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public upsertAppointmentOrder(requestParameters: UpsertAppointmentOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public upsertAppointmentOrder(requestParameters: UpsertAppointmentOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertAppointmentOrder(requestParameters: UpsertAppointmentOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertAppointmentOrder(requestParameters: UpsertAppointmentOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling upsertAppointmentOrder.');\n }\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling upsertAppointmentOrder.');\n }\n const date = requestParameters.date;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n if (date !== undefined && date !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n date, 'date');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}/order`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Appointment } from '../model/models';\nimport { FilterBy } from '../model/models';\nimport { JobcardItem } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetClaimStatusRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n /** Market ID */\n marketId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsBacklogRequestParams {\n /** Workshop ID */\n workshopId: number;\n /** Workshop User ID */\n workshopUserId?: string;\n filterBy?: FilterBy;\n filterValue?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsPendingRequestParams {\n /** Workshop ID */\n workshopId?: number;\n filterBy?: string;\n filterValue?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsWarrantyRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Environment segment (AG, CV...) */\n environment?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListAppointmentsWarrantyFromNotifRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** list of ids of appointmnets to get */\n listId?: Array;\n /** Environment segment (AG, CV...) */\n environment?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiAppointmentWarrantyService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Update the status of all claims from an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getClaimStatus(requestParameters: GetClaimStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getClaimStatus(requestParameters: GetClaimStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getClaimStatus(requestParameters: GetClaimStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getClaimStatus(requestParameters: GetClaimStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const marketId = requestParameters.marketId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sap/claim-status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments with no reception and delivery date for a given workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsBacklog(requestParameters: ListAppointmentsBacklogRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsBacklog(requestParameters: ListAppointmentsBacklogRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsBacklog(requestParameters: ListAppointmentsBacklogRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsBacklog(requestParameters: ListAppointmentsBacklogRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling listAppointmentsBacklog.');\n }\n const workshopUserId = requestParameters.workshopUserId;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/backlog`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all unassigned appointments for a given workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsPending(requestParameters: ListAppointmentsPendingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsPending(requestParameters: ListAppointmentsPendingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsPending(requestParameters: ListAppointmentsPendingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsPending(requestParameters: ListAppointmentsPendingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/pending`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all appointments with warranty\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsWarranty(requestParameters: ListAppointmentsWarrantyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsWarranty(requestParameters: ListAppointmentsWarrantyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsWarranty(requestParameters: ListAppointmentsWarrantyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsWarranty(requestParameters: ListAppointmentsWarrantyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const environment = requestParameters.environment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (environment !== undefined && environment !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n environment, 'environment');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/warranty`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get a list of appointments with warranty from a notification\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listAppointmentsWarrantyFromNotif(requestParameters: ListAppointmentsWarrantyFromNotifRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listAppointmentsWarrantyFromNotif(requestParameters: ListAppointmentsWarrantyFromNotifRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsWarrantyFromNotif(requestParameters: ListAppointmentsWarrantyFromNotifRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listAppointmentsWarrantyFromNotif(requestParameters: ListAppointmentsWarrantyFromNotifRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const listId = requestParameters.listId;\n const environment = requestParameters.environment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (listId) {\n listId.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'listId');\n })\n }\n if (environment !== undefined && environment !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n environment, 'environment');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/appointments/warranty/jump-from-notif`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Appointment } from '../model/models';\nimport { FilterBy } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface BackloglistRequestParams {\n /** Workshop ID */\n workshopId: number;\n /** Workshop User ID */\n workshopUserId?: string;\n filterBy?: FilterBy;\n filterValue?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Sort search */\n sortBy?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiBacklogAppointmentService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all appointments with no reception and delivery date for a given workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public backloglist(requestParameters: BackloglistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public backloglist(requestParameters: BackloglistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public backloglist(requestParameters: BackloglistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public backloglist(requestParameters: BackloglistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling backloglist.');\n }\n const workshopUserId = requestParameters.workshopUserId;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const sortOrder = requestParameters.sortOrder;\n const sortBy = requestParameters.sortBy;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/ag/appointments/backlog`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { IuDocumentBasketDto } from '../model/models';\nimport { MobileLog } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateIusDocumentBasketRequestParams {\n iuDocumentBasketDto?: IuDocumentBasketDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateMobileLogRequestParams {\n mobileLog?: MobileLog;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLogService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create IU Document Basket.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createIusDocumentBasket(requestParameters: CreateIusDocumentBasketRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createIusDocumentBasket(requestParameters: CreateIusDocumentBasketRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createIusDocumentBasket(requestParameters: CreateIusDocumentBasketRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createIusDocumentBasket(requestParameters: CreateIusDocumentBasketRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const iuDocumentBasketDto = requestParameters.iuDocumentBasketDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/ius-basket`,\n iuDocumentBasketDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create mobile log.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createMobileLog(requestParameters: CreateMobileLogRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createMobileLog(requestParameters: CreateMobileLogRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createMobileLog(requestParameters: CreateMobileLogRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createMobileLog(requestParameters: CreateMobileLogRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const mobileLog = requestParameters.mobileLog;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/mobile-logs`,\n mobileLog,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface RemoveAppointmentByIdRequestParams {\n /** appointment ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppointmentService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * delete an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeAppointmentById(requestParameters: RemoveAppointmentByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public removeAppointmentById(requestParameters: RemoveAppointmentByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeAppointmentById(requestParameters: RemoveAppointmentByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeAppointmentById(requestParameters: RemoveAppointmentByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeAppointmentById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/appointments/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAuditRequestParams {\n /** Appointment ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAuditsRequestParams {\n /** Appointments ID. */\n id?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuditService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get an audit\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAudit(requestParameters: GetAuditRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable;\n public getAudit(requestParameters: GetAuditRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable>;\n public getAudit(requestParameters: GetAuditRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable>;\n public getAudit(requestParameters: GetAuditRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getAudit.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/audits/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get multiple audits\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAudits(requestParameters: GetAuditsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable;\n public getAudits(requestParameters: GetAuditsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable>;\n public getAudits(requestParameters: GetAuditsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable>;\n public getAudits(requestParameters: GetAuditsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable {\n const id = requestParameters.id;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (id) {\n id.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'id');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/audits`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AzureToken } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAzureTokenRequestParams {\n container: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFeedbackAzureTokenRequestParams {\n container: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AzureService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the token to POST the image\n * Get an Azure Token\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAzureToken(requestParameters: GetAzureTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAzureToken(requestParameters: GetAzureTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAzureToken(requestParameters: GetAzureTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAzureToken(requestParameters: GetAzureTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const container = requestParameters.container;\n if (container === null || container === undefined) {\n throw new Error('Required parameter container was null or undefined when calling getAzureToken.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (container !== undefined && container !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n container, 'container');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/azure-token`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the token to POST the image\n * Get an Azure Token\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFeedbackAzureToken(requestParameters: GetFeedbackAzureTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getFeedbackAzureToken(requestParameters: GetFeedbackAzureTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFeedbackAzureToken(requestParameters: GetFeedbackAzureTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFeedbackAzureToken(requestParameters: GetFeedbackAzureTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const container = requestParameters.container;\n if (container === null || container === undefined) {\n throw new Error('Required parameter container was null or undefined when calling getFeedbackAzureToken.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (container !== undefined && container !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n container, 'container');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/feedback-azure-token`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Brand } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetBrandRequestParams {\n /** Brand ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetBrandsRequestParams {\n /** Customer ID */\n customerId?: number;\n /** Vehicle ID */\n vehicleId?: number;\n /** Name of the Brand to get */\n name?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrandService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the brand by its ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBrand(requestParameters: GetBrandRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getBrand(requestParameters: GetBrandRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrand(requestParameters: GetBrandRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrand(requestParameters: GetBrandRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getBrand.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/brands/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get brands\\' list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBrands(requestParameters: GetBrandsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrands(requestParameters: GetBrandsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBrands(requestParameters: GetBrandsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBrands(requestParameters: GetBrandsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const customerId = requestParameters.customerId;\n const vehicleId = requestParameters.vehicleId;\n const name = requestParameters.name;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/brands`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Brand } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetBrandCodeOnBrandStyleRequestParams {\n /** Get brand code based on brand style */\n brandStyle?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrandStyleService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get brand code on brand style\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBrandCodeOnBrandStyle(requestParameters: GetBrandCodeOnBrandStyleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getBrandCodeOnBrandStyle(requestParameters: GetBrandCodeOnBrandStyleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrandCodeOnBrandStyle(requestParameters: GetBrandCodeOnBrandStyleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBrandCodeOnBrandStyle(requestParameters: GetBrandCodeOnBrandStyleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandStyle = requestParameters.brandStyle;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandStyle !== undefined && brandStyle !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandStyle, 'brandStyle');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/brand/brand-code`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ChecklistDamage } from '../model/models';\nimport { ChecklistInstance } from '../model/models';\nimport { ChecklistResult } from '../model/models';\nimport { ChecklistTemplate } from '../model/models';\nimport { InspectionChecklistReportLine } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateChecklistDamageRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n checklistDamage?: ChecklistDamage;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateChecklistInstanceRequestParams {\n checklistInstance?: ChecklistInstance;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateChecklistResultRequestParams {\n /** Checklist Instance ID. */\n checklistInstanceId: number;\n checklistResult?: ChecklistResult;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateChecklistTemplateRequestParams {\n checklistTemplate?: ChecklistTemplate;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteChecklistDamageRequestParams {\n /** Checklist Damage ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteChecklistInstanceRequestParams {\n /** Checklist Instance ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteChecklistTemplateRequestParams {\n /** Checklist template ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DownloadInpectionChecklistReportExcelRequestParams {\n inspectionChecklistReportLine?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetChecklistInstanceRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n /** JobcardItem ID */\n jobcardItemId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetChecklistTemplateRequestParams {\n /** Checklist template ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetChecklistTemplatesRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Type of the template */\n type?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ListChecklistDamagesRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchInspectionChecklistReportsRequestParams {\n /** Period start date (yyyy-mm-dd). */\n startDate: string;\n /** Period end date (yyyy-mm-dd). */\n endDate: string;\n /** Customer company name. */\n customerName?: string;\n /** Machine/Vehicle VIN/PIN/SN. */\n serialNumber?: string;\n /** Booking ID. */\n appointmentId?: number;\n /** DMS job order number. */\n dmsJobOrder?: number;\n /** Vehicle plate number. */\n plateNumber?: string;\n /** Desired checklist types. */\n checklistTypes?: Array;\n /** Desired vehicle models. */\n modelIds?: Array;\n /** Desired assigned technician IDs. */\n technicianIds?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateChecklistDamageRequestParams {\n /** Checklist Damage ID. */\n id: number;\n checklistDamage?: ChecklistDamage;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateChecklistInstanceRequestParams {\n /** Checklist Instance ID. */\n id: number;\n /** If activity level. */\n activityLevel: boolean;\n checklistInstance?: ChecklistInstance;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateChecklistResultRequestParams {\n /** Checklist Result ID. */\n id: number;\n /** Checklist Instance ID. */\n checklistInstanceId: number;\n checklistResult?: ChecklistResult;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateChecklistTemplateRequestParams {\n /** Checklist template ID. */\n id: number;\n checklistTemplate?: ChecklistTemplate;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChecklistService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a checklist damage\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistDamage(requestParameters: CreateChecklistDamageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createChecklistDamage(requestParameters: CreateChecklistDamageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistDamage(requestParameters: CreateChecklistDamageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistDamage(requestParameters: CreateChecklistDamageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const checklistDamage = requestParameters.checklistDamage;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/checklist-damage`,\n checklistDamage,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a checklist instance\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistInstance(requestParameters: CreateChecklistInstanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createChecklistInstance(requestParameters: CreateChecklistInstanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistInstance(requestParameters: CreateChecklistInstanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistInstance(requestParameters: CreateChecklistInstanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const checklistInstance = requestParameters.checklistInstance;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/checklist-instances`,\n checklistInstance,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a checklist result\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistResult(requestParameters: CreateChecklistResultRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createChecklistResult(requestParameters: CreateChecklistResultRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistResult(requestParameters: CreateChecklistResultRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistResult(requestParameters: CreateChecklistResultRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const checklistInstanceId = requestParameters.checklistInstanceId;\n if (checklistInstanceId === null || checklistInstanceId === undefined) {\n throw new Error('Required parameter checklistInstanceId was null or undefined when calling createChecklistResult.');\n }\n const checklistResult = requestParameters.checklistResult;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (checklistInstanceId !== undefined && checklistInstanceId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n checklistInstanceId, 'checklistInstanceId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/checklist-results`,\n checklistResult,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a checklist template\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createChecklistTemplate(requestParameters: CreateChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createChecklistTemplate(requestParameters: CreateChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistTemplate(requestParameters: CreateChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createChecklistTemplate(requestParameters: CreateChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const checklistTemplate = requestParameters.checklistTemplate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/checklist-templates`,\n checklistTemplate,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a checklist Damage\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteChecklistDamage(requestParameters: DeleteChecklistDamageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deleteChecklistDamage(requestParameters: DeleteChecklistDamageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteChecklistDamage(requestParameters: DeleteChecklistDamageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteChecklistDamage(requestParameters: DeleteChecklistDamageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteChecklistDamage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/checklist-damage/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a checklist result\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteChecklistInstance(requestParameters: DeleteChecklistInstanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteChecklistInstance(requestParameters: DeleteChecklistInstanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteChecklistInstance(requestParameters: DeleteChecklistInstanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteChecklistInstance(requestParameters: DeleteChecklistInstanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteChecklistInstance.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/checklist-instances/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a checklist template\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteChecklistTemplate(requestParameters: DeleteChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deleteChecklistTemplate(requestParameters: DeleteChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteChecklistTemplate(requestParameters: DeleteChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteChecklistTemplate(requestParameters: DeleteChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteChecklistTemplate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/checklist-templates/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Download inspection checklist Excel file for a specific list of report lines\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public downloadInpectionChecklistReportExcel(requestParameters: DownloadInpectionChecklistReportExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel'}): Observable;\n public downloadInpectionChecklistReportExcel(requestParameters: DownloadInpectionChecklistReportExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel'}): Observable>;\n public downloadInpectionChecklistReportExcel(requestParameters: DownloadInpectionChecklistReportExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel'}): Observable>;\n public downloadInpectionChecklistReportExcel(requestParameters: DownloadInpectionChecklistReportExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel'}): Observable {\n const inspectionChecklistReportLine = requestParameters.inspectionChecklistReportLine;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/inspection-checklists/report`,\n inspectionChecklistReportLine,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the checklist Instance\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistInstance(requestParameters: GetChecklistInstanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getChecklistInstance(requestParameters: GetChecklistInstanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistInstance(requestParameters: GetChecklistInstanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistInstance(requestParameters: GetChecklistInstanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const jobcardItemId = requestParameters.jobcardItemId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (jobcardItemId !== undefined && jobcardItemId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardItemId, 'jobcardItemId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/checklist-instances`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the checklist template by its ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplate(requestParameters: GetChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getChecklistTemplate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/checklist-templates/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the checklist templates\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getChecklistTemplates(requestParameters: GetChecklistTemplatesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const type = requestParameters.type;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/checklist-templates`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the checklist Damages\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public listChecklistDamages(requestParameters: ListChecklistDamagesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public listChecklistDamages(requestParameters: ListChecklistDamagesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listChecklistDamages(requestParameters: ListChecklistDamagesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public listChecklistDamages(requestParameters: ListChecklistDamagesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/checklist-damage`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search inspection checklist reports for a certain period and search criterias\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchInspectionChecklistReports(requestParameters: SearchInspectionChecklistReportsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchInspectionChecklistReports(requestParameters: SearchInspectionChecklistReportsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchInspectionChecklistReports(requestParameters: SearchInspectionChecklistReportsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchInspectionChecklistReports(requestParameters: SearchInspectionChecklistReportsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling searchInspectionChecklistReports.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling searchInspectionChecklistReports.');\n }\n const customerName = requestParameters.customerName;\n const serialNumber = requestParameters.serialNumber;\n const appointmentId = requestParameters.appointmentId;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const plateNumber = requestParameters.plateNumber;\n const checklistTypes = requestParameters.checklistTypes;\n const modelIds = requestParameters.modelIds;\n const technicianIds = requestParameters.technicianIds;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (customerName !== undefined && customerName !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerName, 'customerName');\n }\n if (serialNumber !== undefined && serialNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n serialNumber, 'serialNumber');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (plateNumber !== undefined && plateNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n plateNumber, 'plateNumber');\n }\n if (checklistTypes) {\n checklistTypes.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'checklistTypes');\n })\n }\n if (modelIds) {\n modelIds.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'modelIds');\n })\n }\n if (technicianIds) {\n technicianIds.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'technicianIds');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/inspection-checklists/report`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a checklist Damage\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateChecklistDamage(requestParameters: UpdateChecklistDamageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateChecklistDamage(requestParameters: UpdateChecklistDamageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistDamage(requestParameters: UpdateChecklistDamageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistDamage(requestParameters: UpdateChecklistDamageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateChecklistDamage.');\n }\n const checklistDamage = requestParameters.checklistDamage;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/checklist-damage/${encodeURIComponent(String(id))}`,\n checklistDamage,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a checklist Instance\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateChecklistInstance(requestParameters: UpdateChecklistInstanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateChecklistInstance(requestParameters: UpdateChecklistInstanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistInstance(requestParameters: UpdateChecklistInstanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistInstance(requestParameters: UpdateChecklistInstanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateChecklistInstance.');\n }\n const activityLevel = requestParameters.activityLevel;\n if (activityLevel === null || activityLevel === undefined) {\n throw new Error('Required parameter activityLevel was null or undefined when calling updateChecklistInstance.');\n }\n const checklistInstance = requestParameters.checklistInstance;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (activityLevel !== undefined && activityLevel !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n activityLevel, 'activityLevel');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/checklist-instances/${encodeURIComponent(String(id))}`,\n checklistInstance,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a checklist Result\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateChecklistResult(requestParameters: UpdateChecklistResultRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateChecklistResult(requestParameters: UpdateChecklistResultRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistResult(requestParameters: UpdateChecklistResultRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistResult(requestParameters: UpdateChecklistResultRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateChecklistResult.');\n }\n const checklistInstanceId = requestParameters.checklistInstanceId;\n if (checklistInstanceId === null || checklistInstanceId === undefined) {\n throw new Error('Required parameter checklistInstanceId was null or undefined when calling updateChecklistResult.');\n }\n const checklistResult = requestParameters.checklistResult;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (checklistInstanceId !== undefined && checklistInstanceId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n checklistInstanceId, 'checklistInstanceId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/checklist-results/${encodeURIComponent(String(id))}`,\n checklistResult,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a checklist template\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateChecklistTemplate(requestParameters: UpdateChecklistTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateChecklistTemplate(requestParameters: UpdateChecklistTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistTemplate(requestParameters: UpdateChecklistTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateChecklistTemplate(requestParameters: UpdateChecklistTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateChecklistTemplate.');\n }\n const checklistTemplate = requestParameters.checklistTemplate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/checklist-templates/${encodeURIComponent(String(id))}`,\n checklistTemplate,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ClockingLogDto } from '../model/models';\nimport { WorkshopUser } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetClockingErrorCountRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetClockingLogsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUserClockingLogDateRequestParams {\n /** Update clocking log view date. */\n userId: string;\n /** Date to be updated for the last time user viewed the clocking log modal on login */\n clockingLogDate: string;\n workshopUser?: WorkshopUser;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClockingLogsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the count of clocking errors.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getClockingErrorCount(requestParameters?: GetClockingErrorCountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getClockingErrorCount(requestParameters?: GetClockingErrorCountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getClockingErrorCount(requestParameters?: GetClockingErrorCountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getClockingErrorCount(requestParameters?: GetClockingErrorCountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/jobcard-item-status/errorcount`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List clocking logs for a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getClockingLogs(requestParameters?: GetClockingLogsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getClockingLogs(requestParameters?: GetClockingLogsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getClockingLogs(requestParameters?: GetClockingLogsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getClockingLogs(requestParameters?: GetClockingLogsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/jobcard-item-status/clockingErrors`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update clocking log view date\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUserClockingLogDate(requestParameters: UpdateWorkshopUserClockingLogDateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopUserClockingLogDate(requestParameters: UpdateWorkshopUserClockingLogDateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUserClockingLogDate(requestParameters: UpdateWorkshopUserClockingLogDateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUserClockingLogDate(requestParameters: UpdateWorkshopUserClockingLogDateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling updateWorkshopUserClockingLogDate.');\n }\n const clockingLogDate = requestParameters.clockingLogDate;\n if (clockingLogDate === null || clockingLogDate === undefined) {\n throw new Error('Required parameter clockingLogDate was null or undefined when calling updateWorkshopUserClockingLogDate.');\n }\n const workshopUser = requestParameters.workshopUser;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (clockingLogDate !== undefined && clockingLogDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n clockingLogDate, 'clockingLogDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshop-users/clocking-log/${encodeURIComponent(String(userId))}`,\n workshopUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ConsumableAssociation } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddConsumableAssociationRequestParams {\n consumableAssociation?: ConsumableAssociation;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteConsumableAssociationRequestParams {\n /** Consumable association ID */\n associationId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetConsumableAssociationsRequestParams {\n /** Workshop ID */\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateConsumableAssociationRequestParams {\n /** Consumable association ID */\n associationId: number;\n consumableAssociation?: ConsumableAssociation;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConsumableAssociationService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a new consumable association for a specific workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addConsumableAssociation(requestParameters: AddConsumableAssociationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addConsumableAssociation(requestParameters: AddConsumableAssociationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addConsumableAssociation(requestParameters: AddConsumableAssociationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addConsumableAssociation(requestParameters: AddConsumableAssociationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const consumableAssociation = requestParameters.consumableAssociation;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/consumable-associations`,\n consumableAssociation,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete an existing consumable association from a specific workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteConsumableAssociation(requestParameters: DeleteConsumableAssociationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteConsumableAssociation(requestParameters: DeleteConsumableAssociationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteConsumableAssociation(requestParameters: DeleteConsumableAssociationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteConsumableAssociation(requestParameters: DeleteConsumableAssociationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const associationId = requestParameters.associationId;\n if (associationId === null || associationId === undefined) {\n throw new Error('Required parameter associationId was null or undefined when calling deleteConsumableAssociation.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/consumable-associations/${encodeURIComponent(String(associationId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get consumable associations for a specific workshop.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getConsumableAssociations(requestParameters: GetConsumableAssociationsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getConsumableAssociations(requestParameters: GetConsumableAssociationsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConsumableAssociations(requestParameters: GetConsumableAssociationsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getConsumableAssociations(requestParameters: GetConsumableAssociationsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getConsumableAssociations.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/consumable-associations`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an existing consumable association for a specific workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateConsumableAssociation(requestParameters: UpdateConsumableAssociationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateConsumableAssociation(requestParameters: UpdateConsumableAssociationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateConsumableAssociation(requestParameters: UpdateConsumableAssociationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateConsumableAssociation(requestParameters: UpdateConsumableAssociationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const associationId = requestParameters.associationId;\n if (associationId === null || associationId === undefined) {\n throw new Error('Required parameter associationId was null or undefined when calling updateConsumableAssociation.');\n }\n const consumableAssociation = requestParameters.consumableAssociation;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/consumable-associations/${encodeURIComponent(String(associationId))}`,\n consumableAssociation,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { Country } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetCountriesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CountryService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all Countries\n * Get all Countries\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCountries(requestParameters?: GetCountriesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCountries(requestParameters?: GetCountriesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCountries(requestParameters?: GetCountriesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCountries(requestParameters?: GetCountriesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/countries`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ContractResponseDto } from '../model/models';\nimport { CspsOrderStatus } from '../model/models';\nimport { CustomerViewDto } from '../model/models';\nimport { DeliveryAddressResponseDto } from '../model/models';\nimport { OpenOrderRequest } from '../model/models';\nimport { PartAvailability } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface DeleteOpenOrderRequestParams {\n /** csps ID */\n userId: string;\n /** order number to delete */\n orderNumber: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetContractDetailsRequestParams {\n /** csps ID */\n userId: string;\n /** delivery address code */\n shipTo: string;\n /** order type */\n orderType: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDeliveryAddressesRequestParams {\n /** csps ID */\n userId: string;\n /** delivery address */\n deliveryAddress?: string;\n /** order type */\n orderType?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsAvailabilityInCspsRequestParams {\n /** local codes */\n partsCode: Array;\n /** csps ID */\n userId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrieveUpToDateOrdersRequestParams {\n /** csps user ID */\n userId: string;\n /** list of marketing units (sales organization codes) */\n marketingUnits: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SimulateOpenOrderRequestParams {\n openOrderRequest?: OpenOrderRequest;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SubmitOpenOrderRequestParams {\n /** csps ID */\n userId: string;\n /** order number of the order to submit */\n orderNumber: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CspsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * delete the open order\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteOpenOrder(requestParameters: DeleteOpenOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteOpenOrder(requestParameters: DeleteOpenOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteOpenOrder(requestParameters: DeleteOpenOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteOpenOrder(requestParameters: DeleteOpenOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling deleteOpenOrder.');\n }\n const orderNumber = requestParameters.orderNumber;\n if (orderNumber === null || orderNumber === undefined) {\n throw new Error('Required parameter orderNumber was null or undefined when calling deleteOpenOrder.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/djc-csps/open-orders/${encodeURIComponent(String(orderNumber))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the csps contract detail list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getContractDetails(requestParameters: GetContractDetailsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getContractDetails(requestParameters: GetContractDetailsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getContractDetails(requestParameters: GetContractDetailsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getContractDetails(requestParameters: GetContractDetailsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getContractDetails.');\n }\n const shipTo = requestParameters.shipTo;\n if (shipTo === null || shipTo === undefined) {\n throw new Error('Required parameter shipTo was null or undefined when calling getContractDetails.');\n }\n const orderType = requestParameters.orderType;\n if (orderType === null || orderType === undefined) {\n throw new Error('Required parameter orderType was null or undefined when calling getContractDetails.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n if (shipTo !== undefined && shipTo !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n shipTo, 'shipTo');\n }\n if (orderType !== undefined && orderType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n orderType, 'orderType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/djc-csps/open-orders/contracts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the csps delivery address list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDeliveryAddresses(requestParameters: GetDeliveryAddressesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDeliveryAddresses(requestParameters: GetDeliveryAddressesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDeliveryAddresses(requestParameters: GetDeliveryAddressesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDeliveryAddresses(requestParameters: GetDeliveryAddressesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getDeliveryAddresses.');\n }\n const deliveryAddress = requestParameters.deliveryAddress;\n const orderType = requestParameters.orderType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n if (deliveryAddress !== undefined && deliveryAddress !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n deliveryAddress, 'deliveryAddress');\n }\n if (orderType !== undefined && orderType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n orderType, 'orderType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/djc-csps/open-orders/delivery-addresses`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the csps parts list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsAvailabilityInCsps(requestParameters: GetPartsAvailabilityInCspsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsAvailabilityInCsps(requestParameters: GetPartsAvailabilityInCspsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsAvailabilityInCsps(requestParameters: GetPartsAvailabilityInCspsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsAvailabilityInCsps(requestParameters: GetPartsAvailabilityInCspsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const partsCode = requestParameters.partsCode;\n if (partsCode === null || partsCode === undefined) {\n throw new Error('Required parameter partsCode was null or undefined when calling getPartsAvailabilityInCsps.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getPartsAvailabilityInCsps.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (partsCode) {\n partsCode.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'partsCode');\n })\n }\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/djc-csps/parts/availability`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the up do date csps orders of the workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrieveUpToDateOrders(requestParameters: RetrieveUpToDateOrdersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public retrieveUpToDateOrders(requestParameters: RetrieveUpToDateOrdersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveUpToDateOrders(requestParameters: RetrieveUpToDateOrdersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public retrieveUpToDateOrders(requestParameters: RetrieveUpToDateOrdersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling retrieveUpToDateOrders.');\n }\n const marketingUnits = requestParameters.marketingUnits;\n if (marketingUnits === null || marketingUnits === undefined) {\n throw new Error('Required parameter marketingUnits was null or undefined when calling retrieveUpToDateOrders.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n if (marketingUnits) {\n marketingUnits.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'marketingUnits');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/djc-csps/orders`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * create a simulation (open order) for the parts selected\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public simulateOpenOrder(requestParameters: SimulateOpenOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public simulateOpenOrder(requestParameters: SimulateOpenOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public simulateOpenOrder(requestParameters: SimulateOpenOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public simulateOpenOrder(requestParameters: SimulateOpenOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const openOrderRequest = requestParameters.openOrderRequest;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/djc-csps/open-orders`,\n openOrderRequest,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * submit open order (simulation)\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public submitOpenOrder(requestParameters: SubmitOpenOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public submitOpenOrder(requestParameters: SubmitOpenOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public submitOpenOrder(requestParameters: SubmitOpenOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public submitOpenOrder(requestParameters: SubmitOpenOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling submitOpenOrder.');\n }\n const orderNumber = requestParameters.orderNumber;\n if (orderNumber === null || orderNumber === undefined) {\n throw new Error('Required parameter orderNumber was null or undefined when calling submitOpenOrder.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/djc-csps/open-orders/${encodeURIComponent(String(orderNumber))}`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Currency } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetCurrenciesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CurrencyService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all currencies known in the system\n * Get all handled currencies\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCurrencies(requestParameters?: GetCurrenciesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCurrencies(requestParameters?: GetCurrenciesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCurrencies(requestParameters?: GetCurrenciesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCurrencies(requestParameters?: GetCurrenciesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/currencies`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { CustomerCompany } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddCustomerCompanyRequestParams {\n customerCompany?: CustomerCompany;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomerCompanyByIdRequestParams {\n /** User id */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomerCompanyReportRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomersRequestParams {\n /** workshop ID of the customer to get */\n workshopId?: number;\n /** Retrieve the active Customer Company, or hidden Customer Company, or all if null */\n isActive?: boolean;\n /** Retrieve the Customer Company matching with the name */\n name?: string;\n /** Retrieve the Customer Company matching with the DMS Id */\n dmsId?: string;\n /** Retrieve the Customer Company matching with the city */\n city?: string;\n /** Retrieve the Customer Company matching with the zipcode */\n zipcode?: string;\n /** Retrieve the Customer Company matching with the country */\n country?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n filterBy?: string;\n filterValue?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveAllCustomerCompaniesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveCustomerCompanyByIdRequestParams {\n /** customer company ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ResetCustomerConsentRequestParams {\n /** type of flag changed. */\n type: string;\n /** Workshop ID */\n workshopIds?: Array;\n customerCompany?: CustomerCompany;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateCustomerCompanyRequestParams {\n /** User company ID. */\n id: number;\n customerCompany?: CustomerCompany;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateCustomerCompanyByIdRequestParams {\n /** User company ID. */\n id: number;\n customerCompany?: CustomerCompany;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerCompanyService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a customer company\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addCustomerCompany(requestParameters: AddCustomerCompanyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addCustomerCompany(requestParameters: AddCustomerCompanyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addCustomerCompany(requestParameters: AddCustomerCompanyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addCustomerCompany(requestParameters: AddCustomerCompanyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const customerCompany = requestParameters.customerCompany;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/customer-companies`,\n customerCompany,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the customer by his id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyById(requestParameters: GetCustomerCompanyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getCustomerCompanyById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/customer-companies/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the customer company report\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanyReport(requestParameters?: GetCustomerCompanyReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable;\n public getCustomerCompanyReport(requestParameters?: GetCustomerCompanyReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getCustomerCompanyReport(requestParameters?: GetCustomerCompanyReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getCustomerCompanyReport(requestParameters?: GetCustomerCompanyReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/customer-companies-report`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all customers\n * Get All the customers, by workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomers(requestParameters: GetCustomersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomers(requestParameters: GetCustomersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomers(requestParameters: GetCustomersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomers(requestParameters: GetCustomersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const isActive = requestParameters.isActive;\n const name = requestParameters.name;\n const dmsId = requestParameters.dmsId;\n const city = requestParameters.city;\n const zipcode = requestParameters.zipcode;\n const country = requestParameters.country;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (isActive !== undefined && isActive !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isActive, 'isActive');\n }\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (dmsId !== undefined && dmsId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsId, 'dmsId');\n }\n if (city !== undefined && city !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n city, 'city');\n }\n if (zipcode !== undefined && zipcode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n zipcode, 'zipcode');\n }\n if (country !== undefined && country !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n country, 'country');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/customer-companies`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Remove all customer companies\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeAllCustomerCompanies(requestParameters?: RemoveAllCustomerCompaniesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public removeAllCustomerCompanies(requestParameters?: RemoveAllCustomerCompaniesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeAllCustomerCompanies(requestParameters?: RemoveAllCustomerCompaniesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeAllCustomerCompanies(requestParameters?: RemoveAllCustomerCompaniesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/customer-companies`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Remove a customer company\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeCustomerCompanyById(requestParameters: RemoveCustomerCompanyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public removeCustomerCompanyById(requestParameters: RemoveCustomerCompanyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeCustomerCompanyById(requestParameters: RemoveCustomerCompanyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeCustomerCompanyById(requestParameters: RemoveCustomerCompanyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeCustomerCompanyById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/customer-companies/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Reset Customer Consent data\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public resetCustomerConsent(requestParameters: ResetCustomerConsentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public resetCustomerConsent(requestParameters: ResetCustomerConsentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public resetCustomerConsent(requestParameters: ResetCustomerConsentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public resetCustomerConsent(requestParameters: ResetCustomerConsentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling resetCustomerConsent.');\n }\n const workshopIds = requestParameters.workshopIds;\n const customerCompany = requestParameters.customerCompany;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopIds) {\n workshopIds.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'workshopIds');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/reset-customer-consent/${encodeURIComponent(String(type))}`,\n customerCompany,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a customer company\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCustomerCompany(requestParameters: UpdateCustomerCompanyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateCustomerCompany(requestParameters: UpdateCustomerCompanyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompany(requestParameters: UpdateCustomerCompanyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompany(requestParameters: UpdateCustomerCompanyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateCustomerCompany.');\n }\n const customerCompany = requestParameters.customerCompany;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/customer-company/${encodeURIComponent(String(id))}`,\n customerCompany,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a customer company\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCustomerCompanyById(requestParameters: UpdateCustomerCompanyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateCustomerCompanyById(requestParameters: UpdateCustomerCompanyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompanyById(requestParameters: UpdateCustomerCompanyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompanyById(requestParameters: UpdateCustomerCompanyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateCustomerCompanyById.');\n }\n const customerCompany = requestParameters.customerCompany;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/customer-companies/${encodeURIComponent(String(id))}`,\n customerCompany,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { CustomerCompanyUser } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddCustomerCompanyUserRequestParams {\n customerCompanyUser?: CustomerCompanyUser;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetCustomerCompanyUserByIdRequestParams {\n /** User id */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUsersByCustomerIdRequestParams {\n /** customer ID of the customer to get */\n customerId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveCustomerCompanyUserByIdRequestParams {\n /** customer company User ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateCustomerCompanyUserByIdRequestParams {\n /** User company User ID. */\n id: number;\n customerCompanyUser?: CustomerCompanyUser;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerCompanyUserService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a customer company User\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addCustomerCompanyUser(requestParameters: AddCustomerCompanyUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addCustomerCompanyUser(requestParameters: AddCustomerCompanyUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addCustomerCompanyUser(requestParameters: AddCustomerCompanyUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addCustomerCompanyUser(requestParameters: AddCustomerCompanyUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const customerCompanyUser = requestParameters.customerCompanyUser;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/customer-company-users`,\n customerCompanyUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the customer company User by his id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerCompanyUserById(requestParameters: GetCustomerCompanyUserByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getCustomerCompanyUserById(requestParameters: GetCustomerCompanyUserByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyUserById(requestParameters: GetCustomerCompanyUserByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerCompanyUserById(requestParameters: GetCustomerCompanyUserByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getCustomerCompanyUserById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/customer-company-users/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all user of a workshop and customer\n * Get All the users of the customer company\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUsersByCustomerId(requestParameters: GetUsersByCustomerIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUsersByCustomerId(requestParameters: GetUsersByCustomerIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUsersByCustomerId(requestParameters: GetUsersByCustomerIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUsersByCustomerId(requestParameters: GetUsersByCustomerIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const customerId = requestParameters.customerId;\n if (customerId === null || customerId === undefined) {\n throw new Error('Required parameter customerId was null or undefined when calling getUsersByCustomerId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/customer-company-users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Remove a customer company User\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeCustomerCompanyUserById(requestParameters: RemoveCustomerCompanyUserByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public removeCustomerCompanyUserById(requestParameters: RemoveCustomerCompanyUserByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeCustomerCompanyUserById(requestParameters: RemoveCustomerCompanyUserByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeCustomerCompanyUserById(requestParameters: RemoveCustomerCompanyUserByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeCustomerCompanyUserById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/customer-company-users/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a customer company User\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCustomerCompanyUserById(requestParameters: UpdateCustomerCompanyUserByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateCustomerCompanyUserById(requestParameters: UpdateCustomerCompanyUserByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompanyUserById(requestParameters: UpdateCustomerCompanyUserByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCustomerCompanyUserById(requestParameters: UpdateCustomerCompanyUserByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateCustomerCompanyUserById.');\n }\n const customerCompanyUser = requestParameters.customerCompanyUser;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/customer-company-users/${encodeURIComponent(String(id))}`,\n customerCompanyUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ApiResponseDto } from '../model/models';\nimport { DmsLog } from '../model/models';\nimport { DmsStatus } from '../model/models';\nimport { OperationPart } from '../model/models';\nimport { PageNumber } from '../model/models';\nimport { Vehicle } from '../model/models';\nimport { VehicleLegalInspection } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDmsErrorLogsRequestParams {\n workshopId: number;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDmsLogsRequestParams {\n workshopId: number;\n filterBy?: string;\n filterValue?: string;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDmsVehicleRequestParams {\n vin: string;\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDmsVehicleInspectionDatesRequestParams {\n vehicleId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPageNumberRequestParams {\n type: string;\n fromDate: string;\n toDate: string;\n workshopId: number;\n uuid?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsAvailableRequestParams {\n operationPart?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SyncCustomersFromDmsRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SyncEmployeeDataFromDmsRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SyncFromDmsRequestParams {\n type: string;\n fromDate: string;\n toDate: string;\n workshopId: number;\n frequency: number;\n pageNumber: number;\n uuid?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SyncOperationsFromDmsRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SyncPartsFromDmsRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SyncShiftsFromDmsRequestParams {\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SyncVehiclesFromDmsRequestParams {\n fromDate: string;\n toDate: string;\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ValidateRequestParams {\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DMSService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get DMS error logs\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsErrorLogs(requestParameters: GetDmsErrorLogsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsErrorLogs(requestParameters: GetDmsErrorLogsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsErrorLogs(requestParameters: GetDmsErrorLogsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsErrorLogs(requestParameters: GetDmsErrorLogsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsErrorLogs.');\n }\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dms/error-logs`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get DMS Logs\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsLogs(requestParameters: GetDmsLogsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsLogs(requestParameters: GetDmsLogsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsLogs(requestParameters: GetDmsLogsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsLogs(requestParameters: GetDmsLogsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsLogs.');\n }\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/dms-logs`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the vehicle Information provided by the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsVehicle(requestParameters: GetDmsVehicleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDmsVehicle(requestParameters: GetDmsVehicleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsVehicle(requestParameters: GetDmsVehicleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsVehicle(requestParameters: GetDmsVehicleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getDmsVehicle.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDmsVehicle.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/vehicle/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the vehicle Information provided by the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsVehicleInspectionDates(requestParameters: GetDmsVehicleInspectionDatesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsVehicleInspectionDates(requestParameters: GetDmsVehicleInspectionDatesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsVehicleInspectionDates(requestParameters: GetDmsVehicleInspectionDatesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsVehicleInspectionDates(requestParameters: GetDmsVehicleInspectionDatesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vehicleId = requestParameters.vehicleId;\n if (vehicleId === null || vehicleId === undefined) {\n throw new Error('Required parameter vehicleId was null or undefined when calling getDmsVehicleInspectionDates.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dms/vehicle-inspection-dates`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the number of Pages to call for the synchronisation\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPageNumber(requestParameters: GetPageNumberRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getPageNumber(requestParameters: GetPageNumberRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPageNumber(requestParameters: GetPageNumberRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPageNumber(requestParameters: GetPageNumberRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling getPageNumber.');\n }\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getPageNumber.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getPageNumber.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPageNumber.');\n }\n const uuid = requestParameters.uuid;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (uuid !== undefined && uuid !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n uuid, 'uuid');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/page-number`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the parts availability the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsAvailable(requestParameters: GetPartsAvailableRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsAvailable(requestParameters: GetPartsAvailableRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsAvailable(requestParameters: GetPartsAvailableRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsAvailable(requestParameters: GetPartsAvailableRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const operationPart = requestParameters.operationPart;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/dms/parts-availableList`,\n operationPart,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the back-end connection with the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public syncCustomersFromDms(requestParameters: SyncCustomersFromDmsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public syncCustomersFromDms(requestParameters: SyncCustomersFromDmsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncCustomersFromDms(requestParameters: SyncCustomersFromDmsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncCustomersFromDms(requestParameters: SyncCustomersFromDmsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling syncCustomersFromDms.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling syncCustomersFromDms.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling syncCustomersFromDms.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/sync-customers`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the back-end connection with the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public syncEmployeeDataFromDms(requestParameters: SyncEmployeeDataFromDmsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public syncEmployeeDataFromDms(requestParameters: SyncEmployeeDataFromDmsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncEmployeeDataFromDms(requestParameters: SyncEmployeeDataFromDmsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncEmployeeDataFromDms(requestParameters: SyncEmployeeDataFromDmsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling syncEmployeeDataFromDms.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling syncEmployeeDataFromDms.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling syncEmployeeDataFromDms.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/employee-data`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the back-end connection with the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public syncFromDms(requestParameters: SyncFromDmsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public syncFromDms(requestParameters: SyncFromDmsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncFromDms(requestParameters: SyncFromDmsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncFromDms(requestParameters: SyncFromDmsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling syncFromDms.');\n }\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling syncFromDms.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling syncFromDms.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling syncFromDms.');\n }\n const frequency = requestParameters.frequency;\n if (frequency === null || frequency === undefined) {\n throw new Error('Required parameter frequency was null or undefined when calling syncFromDms.');\n }\n const pageNumber = requestParameters.pageNumber;\n if (pageNumber === null || pageNumber === undefined) {\n throw new Error('Required parameter pageNumber was null or undefined when calling syncFromDms.');\n }\n const uuid = requestParameters.uuid;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (frequency !== undefined && frequency !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n frequency, 'frequency');\n }\n if (pageNumber !== undefined && pageNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pageNumber, 'pageNumber');\n }\n if (uuid !== undefined && uuid !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n uuid, 'uuid');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/sync/${encodeURIComponent(String(type))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the back-end connection with the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public syncOperationsFromDms(requestParameters: SyncOperationsFromDmsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public syncOperationsFromDms(requestParameters: SyncOperationsFromDmsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncOperationsFromDms(requestParameters: SyncOperationsFromDmsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncOperationsFromDms(requestParameters: SyncOperationsFromDmsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling syncOperationsFromDms.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling syncOperationsFromDms.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling syncOperationsFromDms.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/operations-master`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the back-end connection with the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public syncPartsFromDms(requestParameters: SyncPartsFromDmsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public syncPartsFromDms(requestParameters: SyncPartsFromDmsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncPartsFromDms(requestParameters: SyncPartsFromDmsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncPartsFromDms(requestParameters: SyncPartsFromDmsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling syncPartsFromDms.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling syncPartsFromDms.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling syncPartsFromDms.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/parts-master`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the back-end connection with the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public syncShiftsFromDms(requestParameters: SyncShiftsFromDmsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public syncShiftsFromDms(requestParameters: SyncShiftsFromDmsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncShiftsFromDms(requestParameters: SyncShiftsFromDmsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncShiftsFromDms(requestParameters: SyncShiftsFromDmsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling syncShiftsFromDms.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/shifts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the back-end connection with the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public syncVehiclesFromDms(requestParameters: SyncVehiclesFromDmsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public syncVehiclesFromDms(requestParameters: SyncVehiclesFromDmsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncVehiclesFromDms(requestParameters: SyncVehiclesFromDmsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public syncVehiclesFromDms(requestParameters: SyncVehiclesFromDmsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling syncVehiclesFromDms.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling syncVehiclesFromDms.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling syncVehiclesFromDms.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/sync-vehicles`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check the back-end connection with the DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public validate(requestParameters: ValidateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public validate(requestParameters: ValidateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public validate(requestParameters: ValidateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public validate(requestParameters: ValidateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling validate.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms/status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { DealerBrandStyle } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDealerBrandStyleRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DealerBrandService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the style to apply to the dealer brand\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDealerBrandStyle(requestParameters?: GetDealerBrandStyleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDealerBrandStyle(requestParameters?: GetDealerBrandStyleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDealerBrandStyle(requestParameters?: GetDealerBrandStyleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDealerBrandStyle(requestParameters?: GetDealerBrandStyleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dealer-brand/style`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { InlineObject3 } from '../model/models';\nimport { JobcardItem } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface DeleteDefferedActivityRequestParams {\n inlineObject3?: InlineObject3;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeleteDefferedActivityService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Delete Deffered Activity\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteDefferedActivity(requestParameters: DeleteDefferedActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteDefferedActivity(requestParameters: DeleteDefferedActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteDefferedActivity(requestParameters: DeleteDefferedActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteDefferedActivity(requestParameters: DeleteDefferedActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const inlineObject3 = requestParameters.inlineObject3;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/delete-deffer-activity`,\n inlineObject3,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { WorkshopDiscount } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddDiscountRequestParams {\n workshopDiscount?: WorkshopDiscount;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteDiscountRequestParams {\n /** Discount ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditDiscountRequestParams {\n /** Discount ID. */\n id: number;\n workshopDiscount?: WorkshopDiscount;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDiscountRequestParams {\n /** Discount ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDiscountsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DiscountService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a new discount.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addDiscount(requestParameters: AddDiscountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addDiscount(requestParameters: AddDiscountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addDiscount(requestParameters: AddDiscountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addDiscount(requestParameters: AddDiscountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopDiscount = requestParameters.workshopDiscount;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/discounts`,\n workshopDiscount,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a discount.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteDiscount(requestParameters: DeleteDiscountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteDiscount(requestParameters: DeleteDiscountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteDiscount(requestParameters: DeleteDiscountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteDiscount(requestParameters: DeleteDiscountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteDiscount.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/discounts/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit a discount.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editDiscount(requestParameters: EditDiscountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editDiscount(requestParameters: EditDiscountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editDiscount(requestParameters: EditDiscountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editDiscount(requestParameters: EditDiscountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editDiscount.');\n }\n const workshopDiscount = requestParameters.workshopDiscount;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/discounts/${encodeURIComponent(String(id))}`,\n workshopDiscount,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get a discount by id.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDiscount(requestParameters: GetDiscountRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDiscount(requestParameters: GetDiscountRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDiscount(requestParameters: GetDiscountRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDiscount(requestParameters: GetDiscountRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getDiscount.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/discounts/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all discounts.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDiscounts(requestParameters?: GetDiscountsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDiscounts(requestParameters?: GetDiscountsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDiscounts(requestParameters?: GetDiscountsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDiscounts(requestParameters?: GetDiscountsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/discounts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { DmsCommunicationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDmsCommunicationRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetorderStatusByIdRequestParams {\n /** Order ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateorderStatusRequestParams {\n dmsCommunicationDto?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DmsCommunicationService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all order-status of the workshop\n * Get all order-status of the dms\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDmsCommunication(requestParameters?: GetDmsCommunicationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDmsCommunication(requestParameters?: GetDmsCommunicationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsCommunication(requestParameters?: GetDmsCommunicationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDmsCommunication(requestParameters?: GetDmsCommunicationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/dms-communications`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get workshop User By his ID\n * Get workshop User By his ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getorderStatusById(requestParameters: GetorderStatusByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getorderStatusById(requestParameters: GetorderStatusByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getorderStatusById(requestParameters: GetorderStatusByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getorderStatusById(requestParameters: GetorderStatusByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getorderStatusById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/dms-communications/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update orderStatus\n * Update order status\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateorderStatus(requestParameters: UpdateorderStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateorderStatus(requestParameters: UpdateorderStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateorderStatus(requestParameters: UpdateorderStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateorderStatus(requestParameters: UpdateorderStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const dmsCommunicationDto = requestParameters.dmsCommunicationDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/dms-communications`,\n dmsCommunicationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface EdsExportRequestParams {\n /** status */\n status?: string;\n /** appt id */\n appointmentId?: number;\n /** Workshop Id */\n workshopId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EDSService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the parts between dates and workshop id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public edsExport(requestParameters: EdsExportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable;\n public edsExport(requestParameters: EdsExportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public edsExport(requestParameters: EdsExportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public edsExport(requestParameters: EdsExportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable {\n const status = requestParameters.status;\n const appointmentId = requestParameters.appointmentId;\n const workshopId = requestParameters.workshopId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (status !== undefined && status !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n status, 'status');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/eds-export`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ResultMessage } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SendAppointmentMailByAppointmentIdRequestParams {\n /** Appointment ID */\n appointmentId: number;\n /** Type of email */\n emailType: 'negotiate' | 'final' | 'default';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SendMailForWorkfileValidatedByAppointmentIdRequestParams {\n /** Appointment ID */\n appointmentId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EmailService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Send an email for the given appointment by its appointmentId to the customer\n * Send an email for the given appointment by its appointmentId to the customer\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendAppointmentMailByAppointmentId(requestParameters: SendAppointmentMailByAppointmentIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public sendAppointmentMailByAppointmentId(requestParameters: SendAppointmentMailByAppointmentIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendAppointmentMailByAppointmentId(requestParameters: SendAppointmentMailByAppointmentIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendAppointmentMailByAppointmentId(requestParameters: SendAppointmentMailByAppointmentIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling sendAppointmentMailByAppointmentId.');\n }\n const emailType = requestParameters.emailType;\n if (emailType === null || emailType === undefined) {\n throw new Error('Required parameter emailType was null or undefined when calling sendAppointmentMailByAppointmentId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (emailType !== undefined && emailType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n emailType, 'emailType');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/sendAppointmentMail/${encodeURIComponent(String(appointmentId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Send an email for the given appointment by its appointmentId to the customer\n * Send an email for the given appointment by its appointmentId to the customer\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendMailForWorkfileValidatedByAppointmentId(requestParameters: SendMailForWorkfileValidatedByAppointmentIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public sendMailForWorkfileValidatedByAppointmentId(requestParameters: SendMailForWorkfileValidatedByAppointmentIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendMailForWorkfileValidatedByAppointmentId(requestParameters: SendMailForWorkfileValidatedByAppointmentIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendMailForWorkfileValidatedByAppointmentId(requestParameters: SendMailForWorkfileValidatedByAppointmentIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling sendMailForWorkfileValidatedByAppointmentId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/sendWorkfileValidatedMail/${encodeURIComponent(String(appointmentId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { EpartsMarketMapping } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetEpartsMarketMappingsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EpartsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get market mappings between TIDB and eParts\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getEpartsMarketMappings(requestParameters?: GetEpartsMarketMappingsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEpartsMarketMappings(requestParameters?: GetEpartsMarketMappingsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getEpartsMarketMappings(requestParameters?: GetEpartsMarketMappingsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getEpartsMarketMappings(requestParameters?: GetEpartsMarketMappingsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/eparts/mapping/markets`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ExtraOperation } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateOtherItemRequestParams {\n extraOperation?: ExtraOperation;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteOtherItemsRequestParams {\n /** other item code */\n code: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditOtherItemRequestParams {\n /** Other Item ID. */\n id: number;\n extraOperation?: ExtraOperation;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOtherItemsRequestParams {\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n filterBy?: string;\n filterValue?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtraOperationService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create Other Items\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOtherItem(requestParameters: CreateOtherItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createOtherItem(requestParameters: CreateOtherItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOtherItem(requestParameters: CreateOtherItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOtherItem(requestParameters: CreateOtherItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const extraOperation = requestParameters.extraOperation;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/createOtherItem`,\n extraOperation,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get other items with code\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteOtherItems(requestParameters: DeleteOtherItemsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable;\n public deleteOtherItems(requestParameters: DeleteOtherItemsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable>;\n public deleteOtherItems(requestParameters: DeleteOtherItemsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable>;\n public deleteOtherItems(requestParameters: DeleteOtherItemsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json'}): Observable {\n const code = requestParameters.code;\n if (code === null || code === undefined) {\n throw new Error('Required parameter code was null or undefined when calling deleteOtherItems.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'text/plain',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/other-item-in-use/${encodeURIComponent(String(code))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit a other item.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editOtherItem(requestParameters: EditOtherItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editOtherItem(requestParameters: EditOtherItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editOtherItem(requestParameters: EditOtherItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editOtherItem(requestParameters: EditOtherItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editOtherItem.');\n }\n const extraOperation = requestParameters.extraOperation;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/other-item/${encodeURIComponent(String(id))}`,\n extraOperation,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all ExtraOperation from DMS\n * Get all ExtraOperationperations from DMS\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOtherItems(requestParameters: GetOtherItemsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOtherItems(requestParameters: GetOtherItemsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOtherItems(requestParameters: GetOtherItemsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOtherItems(requestParameters: GetOtherItemsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/other-item`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { FeedbackAttachmentDto } from '../model/models';\nimport { FeedbackCreationDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SendFeedBackMailToHelpDeskRequestParams {\n files?: Array;\n feedbackResultDto?: FeedbackCreationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SendFeedbackRequestParams {\n feedbackCreationDto?: FeedbackCreationDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SendFeedbackAttachmentRequestParams {\n feedbackAttachmentDto?: FeedbackAttachmentDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeedbackService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a new feedback to Send Mail to Help Desk.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendFeedBackMailToHelpDesk(requestParameters: SendFeedBackMailToHelpDeskRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public sendFeedBackMailToHelpDesk(requestParameters: SendFeedBackMailToHelpDeskRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendFeedBackMailToHelpDesk(requestParameters: SendFeedBackMailToHelpDeskRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendFeedBackMailToHelpDesk(requestParameters: SendFeedBackMailToHelpDeskRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const files = requestParameters.files;\n const feedbackResultDto = requestParameters.feedbackResultDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: this.encoder});\n }\n\n if (files) {\n if (useForm) {\n files.forEach((element) => {\n formParams = formParams.append('files', element) as any || formParams;\n })\n } else {\n formParams = formParams.append('files', files.join(COLLECTION_FORMATS['csv'])) as any || formParams;\n }\n }\n if (feedbackResultDto !== undefined) {\n formParams = formParams.append('feedbackResultDto', useForm ? new Blob([JSON.stringify(feedbackResultDto)], {type: 'application/json'}) : feedbackResultDto) as any || formParams;\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/sendFeedBackMailToHelpDesk`,\n convertFormParamsToString ? formParams.toString() : formParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a new feedback.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendFeedback(requestParameters: SendFeedbackRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public sendFeedback(requestParameters: SendFeedbackRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendFeedback(requestParameters: SendFeedbackRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendFeedback(requestParameters: SendFeedbackRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const feedbackCreationDto = requestParameters.feedbackCreationDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/sendFeedback`,\n feedbackCreationDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * attachment in feedback.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendFeedbackAttachment(requestParameters: SendFeedbackAttachmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public sendFeedbackAttachment(requestParameters: SendFeedbackAttachmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendFeedbackAttachment(requestParameters: SendFeedbackAttachmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendFeedbackAttachment(requestParameters: SendFeedbackAttachmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const feedbackAttachmentDto = requestParameters.feedbackAttachmentDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/sendFeedbackAttachment`,\n feedbackAttachmentDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Appointment } from '../model/models';\nimport { TechnicianPlanningFilterDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface FiterAppointmentsRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** List of workshop users */\n workshopUsers?: string;\n /** List of status to filter */\n status?: string;\n technicianPlanningFilterDto?: TechnicianPlanningFilterDto;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FiterAppointmentsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Edit multiple filters\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public fiterAppointments(requestParameters: FiterAppointmentsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public fiterAppointments(requestParameters: FiterAppointmentsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public fiterAppointments(requestParameters: FiterAppointmentsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public fiterAppointments(requestParameters: FiterAppointmentsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopUsers = requestParameters.workshopUsers;\n const status = requestParameters.status;\n const technicianPlanningFilterDto = requestParameters.technicianPlanningFilterDto;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopUsers !== undefined && workshopUsers !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUsers, 'workshopUsers');\n }\n if (status !== undefined && status !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n status, 'status');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/appointments/technician-planning-filter`,\n technicianPlanningFilterDto,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { WorkshopUserTravelPosition } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SavePositionRequestParams {\n workshopUserTravelPosition?: WorkshopUserTravelPosition;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GeolocationService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Save a technician\\'s position for a travel\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public savePosition(requestParameters: SavePositionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public savePosition(requestParameters: SavePositionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savePosition(requestParameters: SavePositionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savePosition(requestParameters: SavePositionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopUserTravelPosition = requestParameters.workshopUserTravelPosition;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/positions`,\n workshopUserTravelPosition,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { HealthCheckJobcard } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetHealthRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HealthService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get jobcard-api health check result\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getHealth(requestParameters?: GetHealthRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getHealth(requestParameters?: GetHealthRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getHealth(requestParameters?: GetHealthRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getHealth(requestParameters?: GetHealthRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/health`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Jobcard } from '../model/models';\nimport { JobcardAttachment } from '../model/models';\nimport { JobcardTravel } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddJobcardAttachmentByTypeRequestParams {\n /** Jobcard ID. */\n id: number;\n /** Type of attachment. */\n type: 'mileage' | 'attachments' | 'engineHours' | 'serialNumber';\n jobcardAttachment?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface AddJobcardTravelsRequestParams {\n /** Jobcard ID. */\n id: number;\n jobcardTravel?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveJobcardTravelRequestParams {\n /** Jobcard ID. */\n id: number;\n jobcardTravel?: JobcardTravel;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateJobcardRequestParams {\n /** Jobcard ID. */\n id: number;\n jobcard?: Jobcard;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Update a jobcard attachment by jobcard ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addJobcardAttachmentByType(requestParameters: AddJobcardAttachmentByTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addJobcardAttachmentByType(requestParameters: AddJobcardAttachmentByTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public addJobcardAttachmentByType(requestParameters: AddJobcardAttachmentByTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public addJobcardAttachmentByType(requestParameters: AddJobcardAttachmentByTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling addJobcardAttachmentByType.');\n }\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling addJobcardAttachmentByType.');\n }\n const jobcardAttachment = requestParameters.jobcardAttachment;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/jobcards/${encodeURIComponent(String(id))}/${encodeURIComponent(String(type))}`,\n jobcardAttachment,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update Jobcard Travels by jobcard ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addJobcardTravels(requestParameters: AddJobcardTravelsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addJobcardTravels(requestParameters: AddJobcardTravelsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public addJobcardTravels(requestParameters: AddJobcardTravelsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public addJobcardTravels(requestParameters: AddJobcardTravelsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling addJobcardTravels.');\n }\n const jobcardTravel = requestParameters.jobcardTravel;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/jobcards/${encodeURIComponent(String(id))}/travels`,\n jobcardTravel,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create/Update a jobcard Travel by jobcard ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveJobcardTravel(requestParameters: SaveJobcardTravelRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveJobcardTravel(requestParameters: SaveJobcardTravelRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveJobcardTravel(requestParameters: SaveJobcardTravelRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveJobcardTravel(requestParameters: SaveJobcardTravelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling saveJobcardTravel.');\n }\n const jobcardTravel = requestParameters.jobcardTravel;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcards/${encodeURIComponent(String(id))}/travel`,\n jobcardTravel,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a jobcard by his id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateJobcard(requestParameters: UpdateJobcardRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateJobcard(requestParameters: UpdateJobcardRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcard(requestParameters: UpdateJobcardRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcard(requestParameters: UpdateJobcardRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateJobcard.');\n }\n const jobcard = requestParameters.jobcard;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/jobcards/${encodeURIComponent(String(id))}`,\n jobcard,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { JobcardItem } from '../model/models';\nimport { JobcardItemStatus } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddJobcardItemRequestParams {\n /** Jobcard ID. */\n jobcardId: number;\n /** Jobcard item content. */\n jobcardItem?: JobcardItem;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CreateOrUpdateJobcardItemStatusRequestParams {\n jobcardItemStatus?: JobcardItemStatus;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetInProgressClockingsForAnActivityRequestParams {\n /** Jobcard Item ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetJobcardItemRequestParams {\n /** Jobcard ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetJobcardItemStatusRequestParams {\n /** Jobcard ID. */\n jobcardId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetJobcardItemsRequestParams {\n /** Jobcard ID. */\n jobcardId: number;\n /** Workshop User ID. */\n workshopUserId: string;\n /** Appointment ID. */\n appointmentId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveJobcardItemRequestParams {\n /** Jobcard item ID. */\n jobcardItemId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateJobcardItemRequestParams {\n /** Jobcard Item ID. */\n id: number;\n view?: 'app' | 'workfile' | 'activities' | 'summary';\n jobcardItem?: JobcardItem;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateJobcardItemsRequestParams {\n view?: 'app' | 'workfile' | 'activities' | 'summary';\n /** Jobcard items\\' list to update. */\n jobcardItem?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardItemService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Add a new item to a jobcard.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addJobcardItem(requestParameters: AddJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addJobcardItem(requestParameters: AddJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addJobcardItem(requestParameters: AddJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addJobcardItem(requestParameters: AddJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardId = requestParameters.jobcardId;\n if (jobcardId === null || jobcardId === undefined) {\n throw new Error('Required parameter jobcardId was null or undefined when calling addJobcardItem.');\n }\n const jobcardItem = requestParameters.jobcardItem;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardId !== undefined && jobcardId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardId, 'jobcardId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcard-items`,\n jobcardItem,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create or update a jobcard item Status.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOrUpdateJobcardItemStatus(requestParameters: CreateOrUpdateJobcardItemStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createOrUpdateJobcardItemStatus(requestParameters: CreateOrUpdateJobcardItemStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOrUpdateJobcardItemStatus(requestParameters: CreateOrUpdateJobcardItemStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOrUpdateJobcardItemStatus(requestParameters: CreateOrUpdateJobcardItemStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardItemStatus = requestParameters.jobcardItemStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/jobcard-item-status`,\n jobcardItemStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Active Clocking Technician Information for an Activity\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInProgressClockingsForAnActivity(requestParameters: GetInProgressClockingsForAnActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getInProgressClockingsForAnActivity(requestParameters: GetInProgressClockingsForAnActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getInProgressClockingsForAnActivity(requestParameters: GetInProgressClockingsForAnActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getInProgressClockingsForAnActivity(requestParameters: GetInProgressClockingsForAnActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getInProgressClockingsForAnActivity.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/jobcard-items-active-clockings/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the jobcard item by its ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getJobcardItem(requestParameters: GetJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getJobcardItem(requestParameters: GetJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getJobcardItem(requestParameters: GetJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getJobcardItem(requestParameters: GetJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getJobcardItem.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/jobcard-items/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get jobcard items Status.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getJobcardItemStatus(requestParameters: GetJobcardItemStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getJobcardItemStatus(requestParameters: GetJobcardItemStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getJobcardItemStatus(requestParameters: GetJobcardItemStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getJobcardItemStatus(requestParameters: GetJobcardItemStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardId = requestParameters.jobcardId;\n if (jobcardId === null || jobcardId === undefined) {\n throw new Error('Required parameter jobcardId was null or undefined when calling getJobcardItemStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardId !== undefined && jobcardId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardId, 'jobcardId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/jobcard-item-status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get jobcard itemss.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getJobcardItems(requestParameters: GetJobcardItemsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getJobcardItems(requestParameters: GetJobcardItemsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getJobcardItems(requestParameters: GetJobcardItemsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getJobcardItems(requestParameters: GetJobcardItemsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardId = requestParameters.jobcardId;\n if (jobcardId === null || jobcardId === undefined) {\n throw new Error('Required parameter jobcardId was null or undefined when calling getJobcardItems.');\n }\n const workshopUserId = requestParameters.workshopUserId;\n if (workshopUserId === null || workshopUserId === undefined) {\n throw new Error('Required parameter workshopUserId was null or undefined when calling getJobcardItems.');\n }\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling getJobcardItems.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardId !== undefined && jobcardId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardId, 'jobcardId');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/jobcard-items`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Remove an item from a jobcard.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeJobcardItem(requestParameters: RemoveJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public removeJobcardItem(requestParameters: RemoveJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeJobcardItem(requestParameters: RemoveJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeJobcardItem(requestParameters: RemoveJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const jobcardItemId = requestParameters.jobcardItemId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardItemId !== undefined && jobcardItemId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardItemId, 'jobcardItemId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/jobcard-items`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a jobcard Item\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateJobcardItem(requestParameters: UpdateJobcardItemRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateJobcardItem(requestParameters: UpdateJobcardItemRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcardItem(requestParameters: UpdateJobcardItemRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcardItem(requestParameters: UpdateJobcardItemRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateJobcardItem.');\n }\n const view = requestParameters.view;\n const jobcardItem = requestParameters.jobcardItem;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/jobcard-items/${encodeURIComponent(String(id))}`,\n jobcardItem,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update jobcard Items\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateJobcardItems(requestParameters: UpdateJobcardItemsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcardItems(requestParameters: UpdateJobcardItemsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateJobcardItems(requestParameters: UpdateJobcardItemsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateJobcardItems(requestParameters: UpdateJobcardItemsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const view = requestParameters.view;\n const jobcardItem = requestParameters.jobcardItem;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/jobcard-items`,\n jobcardItem,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { JobcardItemStatus } from '../model/models';\nimport { JobcardItemStatusActiveClockings } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateClockingRequestParams {\n jobcardItemStatus?: JobcardItemStatus;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetActiveClockingsEndedByCronRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateClockingRequestParams {\n /** clocking ID. */\n clockingId: number;\n jobcardItemStatus?: JobcardItemStatus;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class JobcardItemStatusService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a jobcard item Status clock start.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createClocking(requestParameters: CreateClockingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createClocking(requestParameters: CreateClockingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createClocking(requestParameters: CreateClockingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createClocking(requestParameters: CreateClockingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardItemStatus = requestParameters.jobcardItemStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/clockings`,\n jobcardItemStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Clocking Ended by Force Stop Cron\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getActiveClockingsEndedByCron(requestParameters?: GetActiveClockingsEndedByCronRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getActiveClockingsEndedByCron(requestParameters?: GetActiveClockingsEndedByCronRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getActiveClockingsEndedByCron(requestParameters?: GetActiveClockingsEndedByCronRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getActiveClockingsEndedByCron(requestParameters?: GetActiveClockingsEndedByCronRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/active-clockings`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an existing clocking.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateClocking(requestParameters: UpdateClockingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateClocking(requestParameters: UpdateClockingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateClocking(requestParameters: UpdateClockingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateClocking(requestParameters: UpdateClockingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const clockingId = requestParameters.clockingId;\n if (clockingId === null || clockingId === undefined) {\n throw new Error('Required parameter clockingId was null or undefined when calling updateClocking.');\n }\n const jobcardItemStatus = requestParameters.jobcardItemStatus;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/clockings/${encodeURIComponent(String(clockingId))}`,\n jobcardItemStatus,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Kit } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddKitRequestParams {\n kit?: Kit;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteKitRequestParams {\n /** Kit ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditKitRequestParams {\n /** Kit ID. */\n id: number;\n kit?: Kit;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKitRequestParams {\n /** Kit ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKitsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KitService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a new kit.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addKit(requestParameters: AddKitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addKit(requestParameters: AddKitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addKit(requestParameters: AddKitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addKit(requestParameters: AddKitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const kit = requestParameters.kit;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/kits`,\n kit,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a kit.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteKit(requestParameters: DeleteKitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteKit(requestParameters: DeleteKitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteKit(requestParameters: DeleteKitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteKit(requestParameters: DeleteKitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteKit.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/kits/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit a kit.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editKit(requestParameters: EditKitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editKit(requestParameters: EditKitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editKit(requestParameters: EditKitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editKit(requestParameters: EditKitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editKit.');\n }\n const kit = requestParameters.kit;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/kits/${encodeURIComponent(String(id))}`,\n kit,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get a kit.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKit(requestParameters: GetKitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKit(requestParameters: GetKitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKit(requestParameters: GetKitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKit(requestParameters: GetKitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getKit.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kits/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all kits.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKits(requestParameters?: GetKitsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKits(requestParameters?: GetKitsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getKits(requestParameters?: GetKitsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getKits(requestParameters?: GetKitsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/kits`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { CustomerTrendsDto } from '../model/models';\nimport { KpiInspectionReportDto } from '../model/models';\nimport { KpiPartsDto } from '../model/models';\nimport { Kpis } from '../model/models';\nimport { OrderStatusDto } from '../model/models';\nimport { OrderStatusPrefDto } from '../model/models';\nimport { UtilizationDto } from '../model/models';\nimport { WipDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetCustomerTrendsRequestParams {\n /** Start date */\n startDate: string;\n /** End date */\n endDate: string;\n /** invoiced */\n invoiced?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetInspectionChecklistReportRequestParams {\n /** Start date */\n startDate: string;\n /** End date */\n endDate: string;\n /** Desired checklist types. */\n checklistTypes?: Array;\n /** invoiced */\n invoiced?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKpiPartsReportRequestParams {\n /** Start date */\n startDate: string;\n /** End date */\n endDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKpiSummaryRequestParams {\n fromDate: string;\n toDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKpisRequestParams {\n fromDate: string;\n toDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKpisBenchmarkRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOrderStatusRequestParams {\n /** Start date */\n startDate: string;\n /** End date */\n endDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOrderStatusExcelRequestParams {\n /** Start date */\n startDate: string;\n /** End date */\n endDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOrderStatusPerformanceRequestParams {\n /** Start date */\n startDate: string;\n /** End date */\n endDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUtilizationRequestParams {\n /** Start date */\n startDate: string;\n /** End date */\n endDate: string;\n /** Status selected */\n status?: string;\n /** Total or adjusted hours (enum to be passed as total or adjusted) */\n hrsType?: string;\n /** Bay/team selected */\n workshopBayId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWipRequestParams {\n /** Current date */\n date: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveKpisBenchmarkRequestParams {\n kpis?: Kpis;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class KpisService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Retrieve customer trends info\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getCustomerTrends(requestParameters: GetCustomerTrendsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getCustomerTrends(requestParameters: GetCustomerTrendsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerTrends(requestParameters: GetCustomerTrendsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getCustomerTrends(requestParameters: GetCustomerTrendsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getCustomerTrends.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getCustomerTrends.');\n }\n const invoiced = requestParameters.invoiced;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (invoiced !== undefined && invoiced !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n invoiced, 'invoiced');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/kpi/customer-trends`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get inspection checklist report\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getInspectionChecklistReport(requestParameters: GetInspectionChecklistReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getInspectionChecklistReport(requestParameters: GetInspectionChecklistReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getInspectionChecklistReport(requestParameters: GetInspectionChecklistReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getInspectionChecklistReport(requestParameters: GetInspectionChecklistReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getInspectionChecklistReport.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getInspectionChecklistReport.');\n }\n const checklistTypes = requestParameters.checklistTypes;\n const invoiced = requestParameters.invoiced;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (checklistTypes) {\n checklistTypes.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'checklistTypes');\n })\n }\n if (invoiced !== undefined && invoiced !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n invoiced, 'invoiced');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpi/inspection-checklists`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get part report\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKpiPartsReport(requestParameters: GetKpiPartsReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKpiPartsReport(requestParameters: GetKpiPartsReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpiPartsReport(requestParameters: GetKpiPartsReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpiPartsReport(requestParameters: GetKpiPartsReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getKpiPartsReport.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getKpiPartsReport.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpi/parts-detail`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all KPIs.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKpiSummary(requestParameters: GetKpiSummaryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKpiSummary(requestParameters: GetKpiSummaryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpiSummary(requestParameters: GetKpiSummaryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpiSummary(requestParameters: GetKpiSummaryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getKpiSummary.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getKpiSummary.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpis/summary`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all KPIs.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKpis(requestParameters: GetKpisRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKpis(requestParameters: GetKpisRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpis(requestParameters: GetKpisRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpis(requestParameters: GetKpisRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling getKpis.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling getKpis.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpis`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all KPIs benchmark.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKpisBenchmark(requestParameters?: GetKpisBenchmarkRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKpisBenchmark(requestParameters?: GetKpisBenchmarkRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpisBenchmark(requestParameters?: GetKpisBenchmarkRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKpisBenchmark(requestParameters?: GetKpisBenchmarkRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpis-benchmark`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get work order calculations for a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderStatus(requestParameters: GetOrderStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getOrderStatus(requestParameters: GetOrderStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderStatus(requestParameters: GetOrderStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderStatus(requestParameters: GetOrderStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getOrderStatus.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getOrderStatus.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpi/work-order`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get work order excel report for a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderStatusExcel(requestParameters: GetOrderStatusExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getOrderStatusExcel(requestParameters: GetOrderStatusExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderStatusExcel(requestParameters: GetOrderStatusExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderStatusExcel(requestParameters: GetOrderStatusExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getOrderStatusExcel.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getOrderStatusExcel.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpi/work-order-excel`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get work order calculations for a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderStatusPerformance(requestParameters: GetOrderStatusPerformanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getOrderStatusPerformance(requestParameters: GetOrderStatusPerformanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderStatusPerformance(requestParameters: GetOrderStatusPerformanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderStatusPerformance(requestParameters: GetOrderStatusPerformanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getOrderStatusPerformance.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getOrderStatusPerformance.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpi/performance`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Utilization calculations for a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUtilization(requestParameters: GetUtilizationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUtilization(requestParameters: GetUtilizationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUtilization(requestParameters: GetUtilizationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUtilization(requestParameters: GetUtilizationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getUtilization.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getUtilization.');\n }\n const status = requestParameters.status;\n const hrsType = requestParameters.hrsType;\n const workshopBayId = requestParameters.workshopBayId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (status !== undefined && status !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n status, 'status');\n }\n if (hrsType !== undefined && hrsType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n hrsType, 'hrsType');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpi/utilization`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get WIP calculations for an workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWip(requestParameters: GetWipRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWip(requestParameters: GetWipRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWip(requestParameters: GetWipRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWip(requestParameters: GetWipRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const date = requestParameters.date;\n if (date === null || date === undefined) {\n throw new Error('Required parameter date was null or undefined when calling getWip.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (date !== undefined && date !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n date, 'date');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/kpi/wip`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Save all KPIs benchmark.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveKpisBenchmark(requestParameters: SaveKpisBenchmarkRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveKpisBenchmark(requestParameters: SaveKpisBenchmarkRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveKpisBenchmark(requestParameters: SaveKpisBenchmarkRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveKpisBenchmark(requestParameters: SaveKpisBenchmarkRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const kpis = requestParameters.kpis;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/kpis-benchmark`,\n kpis,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Language } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetLanguageByLanguageIdRequestParams {\n /** Language ID of the language */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetLanguagesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get a language by his language id\n * Get a language by his languageId\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLanguageByLanguageId(requestParameters: GetLanguageByLanguageIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getLanguageByLanguageId(requestParameters: GetLanguageByLanguageIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLanguageByLanguageId(requestParameters: GetLanguageByLanguageIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLanguageByLanguageId(requestParameters: GetLanguageByLanguageIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getLanguageByLanguageId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/languages/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all languages known in the system\n * Get all handled languages\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLanguages(requestParameters?: GetLanguagesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLanguages(requestParameters?: GetLanguagesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getLanguages(requestParameters?: GetLanguagesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getLanguages(requestParameters?: GetLanguagesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/languages`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { LegalNotice } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddLegalNoticeRequestParams {\n legalNotice?: LegalNotice;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetLegalNoticeByWorkshopIdRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateLegalNoticeByWorkshopIdRequestParams {\n /** Legal Notice ID. */\n id: number;\n legalNotice?: LegalNotice;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LegalnoticeService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create legal notice records\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addLegalNotice(requestParameters: AddLegalNoticeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addLegalNotice(requestParameters: AddLegalNoticeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addLegalNotice(requestParameters: AddLegalNoticeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addLegalNotice(requestParameters: AddLegalNoticeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const legalNotice = requestParameters.legalNotice;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/legalNotice`,\n legalNotice,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Legal Notice By Workshop\n * Get Legal Notice By Workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLegalNoticeByWorkshopId(requestParameters?: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getLegalNoticeByWorkshopId(requestParameters?: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalNoticeByWorkshopId(requestParameters?: GetLegalNoticeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalNoticeByWorkshopId(requestParameters?: GetLegalNoticeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/legalNotice`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update legal notice\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateLegalNoticeByWorkshopId(requestParameters: UpdateLegalNoticeByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateLegalNoticeByWorkshopId(requestParameters: UpdateLegalNoticeByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateLegalNoticeByWorkshopId(requestParameters: UpdateLegalNoticeByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateLegalNoticeByWorkshopId(requestParameters: UpdateLegalNoticeByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateLegalNoticeByWorkshopId.');\n }\n const legalNotice = requestParameters.legalNotice;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/legalNotice/${encodeURIComponent(String(id))}`,\n legalNotice,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SaveMaintenanceRequestParams {\n /** Appointment ID. */\n appointmentId: number;\n /** Jobcard Item ID List. */\n jobcardItemIdList?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MaintenanceService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Save the maintenance activities.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveMaintenance(requestParameters: SaveMaintenanceRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveMaintenance(requestParameters: SaveMaintenanceRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveMaintenance(requestParameters: SaveMaintenanceRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveMaintenance(requestParameters: SaveMaintenanceRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling saveMaintenance.');\n }\n const jobcardItemIdList = requestParameters.jobcardItemIdList;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (jobcardItemIdList) {\n jobcardItemIdList.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'jobcardItemIdList');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/save-maintenance`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { MergeLog } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetLastMergeLogByTypeRequestParams {\n /** Merge Type of the last merge log. */\n mergeType: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MergeLogService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the last merge log of mergeType nature, or null if none are found.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLastMergeLogByType(requestParameters: GetLastMergeLogByTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getLastMergeLogByType(requestParameters: GetLastMergeLogByTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLastMergeLogByType(requestParameters: GetLastMergeLogByTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLastMergeLogByType(requestParameters: GetLastMergeLogByTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const mergeType = requestParameters.mergeType;\n if (mergeType === null || mergeType === undefined) {\n throw new Error('Required parameter mergeType was null or undefined when calling getLastMergeLogByType.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/merge-log/${encodeURIComponent(String(mergeType))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Model } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetModelsRequestParams {\n /** Brand ID of the model to get */\n brandId?: number;\n /** Series ID of the model to get */\n seriesId?: number;\n /** Customer ID */\n customerId?: number;\n /** Vehicle ID */\n vehicleId?: number;\n /** Name of the Brand to get */\n name?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModelService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all models for a brand or a series\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getModels(requestParameters: GetModelsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getModels(requestParameters: GetModelsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandId = requestParameters.brandId;\n const seriesId = requestParameters.seriesId;\n const customerId = requestParameters.customerId;\n const vehicleId = requestParameters.vehicleId;\n const name = requestParameters.name;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandId !== undefined && brandId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandId, 'brandId');\n }\n if (seriesId !== undefined && seriesId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n seriesId, 'seriesId');\n }\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/models`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Appointment } from '../model/models';\nimport { JobcardItem } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetMyBestClaimStatusRequestParams {\n /** Appointment ID */\n appointmentId?: number;\n /** Market ID */\n marketId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface MyBestClaimCreationRequestParams {\n /** Jobcard Items ID(for activities) */\n id?: Array;\n /** Market ID */\n marketId?: number;\n /** Dealer claim number */\n dealerClaimNumber?: string;\n /** Serialnumber */\n serialNumber?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MyBestService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Update the status of all claims from an appointment on My Best\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMyBestClaimStatus(requestParameters: GetMyBestClaimStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getMyBestClaimStatus(requestParameters: GetMyBestClaimStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getMyBestClaimStatus(requestParameters: GetMyBestClaimStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getMyBestClaimStatus(requestParameters: GetMyBestClaimStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n const marketId = requestParameters.marketId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/mybest/claim-status`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * SAP My Best Claim creation for selected activities\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public myBestClaimCreation(requestParameters: MyBestClaimCreationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public myBestClaimCreation(requestParameters: MyBestClaimCreationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public myBestClaimCreation(requestParameters: MyBestClaimCreationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public myBestClaimCreation(requestParameters: MyBestClaimCreationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n const marketId = requestParameters.marketId;\n const dealerClaimNumber = requestParameters.dealerClaimNumber;\n const serialNumber = requestParameters.serialNumber;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (id) {\n id.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'id');\n })\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n if (dealerClaimNumber !== undefined && dealerClaimNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dealerClaimNumber, 'dealerClaimNumber');\n }\n if (serialNumber !== undefined && serialNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n serialNumber, 'serialNumber');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/mybest/claim-creation`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { NonProductiveActivity } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddNonProductiveActivityRequestParams {\n nonProductiveActivity?: NonProductiveActivity;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditNonProductiveActivityRequestParams {\n /** Non Productive Activity. */\n id: number;\n nonProductiveActivity?: NonProductiveActivity;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNonProductiveActivitiesByWorkshopIdRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NonProductiveActivityService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * POST a Non Productive Activity\n * POST a Non Productive Activity\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addNonProductiveActivity(requestParameters: AddNonProductiveActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addNonProductiveActivity(requestParameters: AddNonProductiveActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addNonProductiveActivity(requestParameters: AddNonProductiveActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addNonProductiveActivity(requestParameters: AddNonProductiveActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const nonProductiveActivity = requestParameters.nonProductiveActivity;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/nonproductiveactivity`,\n nonProductiveActivity,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit a Non Productive Activity.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editNonProductiveActivity(requestParameters: EditNonProductiveActivityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editNonProductiveActivity(requestParameters: EditNonProductiveActivityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editNonProductiveActivity(requestParameters: EditNonProductiveActivityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editNonProductiveActivity(requestParameters: EditNonProductiveActivityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editNonProductiveActivity.');\n }\n const nonProductiveActivity = requestParameters.nonProductiveActivity;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/nonproductiveactivity/${encodeURIComponent(String(id))}`,\n nonProductiveActivity,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all non productive activities\n * Get all Non Productive Activities\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNonProductiveActivitiesByWorkshopId(requestParameters?: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters?: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters?: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNonProductiveActivitiesByWorkshopId(requestParameters?: GetNonProductiveActivitiesByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/nonproductiveactivities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { AppointmentNotification } from '../model/models';\nimport { Notification } from '../model/models';\nimport { NotificationCreation } from '../model/models';\nimport { NotificationSubscriptionSet } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddNotificationRequestParams {\n /** workshop ID. */\n workshop: number;\n profile?: 'WARR' | 'ADVISOR' | 'TECH' | 'WORKSHOP' | 'MANAGER';\n notification?: Notification;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface FlagNotificationAsViewedByIdRequestParams {\n /** Notification ID. */\n id: number;\n notification?: Notification;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNotificationByIdRequestParams {\n /** Notification ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNotificationSubscriptionsRequestParams {\n /** Workshop ID. */\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNotificationsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetNotificationsByAppointmentIdRequestParams {\n /** Appointment ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PostNewNotificationRequestParams {\n notificationCreation?: NotificationCreation;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveAllNotificationsByWorkshopUserIdRequestParams {\n /** Workshop ID. */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveNotificationByIdRequestParams {\n /** Notification ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveSentBackRequestRequestParams {\n notificationCreation?: NotificationCreation;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateNotificationByIdRequestParams {\n /** Notification ID. */\n id: number;\n notification?: Notification;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateNotificationSubscriptionsRequestParams {\n notificationSubscriptionSet?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a new notification.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addNotification(requestParameters: AddNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addNotification(requestParameters: AddNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addNotification(requestParameters: AddNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addNotification(requestParameters: AddNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshop = requestParameters.workshop;\n if (workshop === null || workshop === undefined) {\n throw new Error('Required parameter workshop was null or undefined when calling addNotification.');\n }\n const profile = requestParameters.profile;\n const notification = requestParameters.notification;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (profile !== undefined && profile !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n profile, 'profile');\n }\n if (workshop !== undefined && workshop !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshop, 'workshop');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/notifications`,\n notification,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Flag a notification as viewed by ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public flagNotificationAsViewedById(requestParameters: FlagNotificationAsViewedByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling flagNotificationAsViewedById.');\n }\n const notification = requestParameters.notification;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/notifications/viewed/${encodeURIComponent(String(id))}`,\n notification,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get a notification by ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNotificationById(requestParameters: GetNotificationByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getNotificationById(requestParameters: GetNotificationByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotificationById(requestParameters: GetNotificationByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotificationById(requestParameters: GetNotificationByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getNotificationById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/notifications/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get notifications subscriptions for all users in a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNotificationSubscriptions(requestParameters: GetNotificationSubscriptionsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotificationSubscriptions(requestParameters: GetNotificationSubscriptionsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotificationSubscriptions(requestParameters: GetNotificationSubscriptionsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotificationSubscriptions(requestParameters: GetNotificationSubscriptionsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getNotificationSubscriptions.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/notificationSubscriptions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all notifications.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNotifications(requestParameters?: GetNotificationsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotifications(requestParameters?: GetNotificationsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotifications(requestParameters?: GetNotificationsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotifications(requestParameters?: GetNotificationsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/notifications`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the technician re-validation notification by appointment id.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getNotificationsByAppointmentId(requestParameters: GetNotificationsByAppointmentIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getNotificationsByAppointmentId(requestParameters: GetNotificationsByAppointmentIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotificationsByAppointmentId(requestParameters: GetNotificationsByAppointmentIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getNotificationsByAppointmentId(requestParameters: GetNotificationsByAppointmentIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getNotificationsByAppointmentId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/notification/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a notification to be sent to subscribers.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public postNewNotification(requestParameters: PostNewNotificationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public postNewNotification(requestParameters: PostNewNotificationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public postNewNotification(requestParameters: PostNewNotificationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public postNewNotification(requestParameters: PostNewNotificationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const notificationCreation = requestParameters.notificationCreation;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/notifications/create`,\n notificationCreation,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete all notifications by workshop User Id.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeAllNotificationsByWorkshopUserId(requestParameters: RemoveAllNotificationsByWorkshopUserIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public removeAllNotificationsByWorkshopUserId(requestParameters: RemoveAllNotificationsByWorkshopUserIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public removeAllNotificationsByWorkshopUserId(requestParameters: RemoveAllNotificationsByWorkshopUserIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public removeAllNotificationsByWorkshopUserId(requestParameters: RemoveAllNotificationsByWorkshopUserIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeAllNotificationsByWorkshopUserId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/notifications/workshopUser/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a notification by ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public removeNotificationById(requestParameters: RemoveNotificationByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeNotificationById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/notifications/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a sent back error notification to be sent to technicians.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveSentBackRequest(requestParameters: SaveSentBackRequestRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const notificationCreation = requestParameters.notificationCreation;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/sentBackToTechnicians`,\n notificationCreation,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a notification by ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNotificationById(requestParameters: UpdateNotificationByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateNotificationById.');\n }\n const notification = requestParameters.notification;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/notifications/${encodeURIComponent(String(id))}`,\n notification,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update users notifications subscriptions for a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateNotificationSubscriptions(requestParameters: UpdateNotificationSubscriptionsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateNotificationSubscriptions(requestParameters: UpdateNotificationSubscriptionsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateNotificationSubscriptions(requestParameters: UpdateNotificationSubscriptionsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateNotificationSubscriptions(requestParameters: UpdateNotificationSubscriptionsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const notificationSubscriptionSet = requestParameters.notificationSubscriptionSet;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/notificationSubscriptions`,\n notificationSubscriptionSet,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { OnHoldReason } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface EditOnholdStatusRequestParams {\n /** Reason for Onhold status. */\n id: number;\n onHoldReason?: OnHoldReason;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOnHoldstatusRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveOnHoldStatusRequestParams {\n onHoldReason?: OnHoldReason;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnholdstatusService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Edit Reason for Onhold Status.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editOnholdStatus(requestParameters: EditOnholdStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editOnholdStatus(requestParameters: EditOnholdStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editOnholdStatus(requestParameters: EditOnholdStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editOnholdStatus(requestParameters: EditOnholdStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editOnholdStatus.');\n }\n const onHoldReason = requestParameters.onHoldReason;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/onhold/${encodeURIComponent(String(id))}`,\n onHoldReason,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List allOnhold status\n * Get all Onhold statuses\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOnHoldstatus(requestParameters?: GetOnHoldstatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOnHoldstatus(requestParameters?: GetOnHoldstatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOnHoldstatus(requestParameters?: GetOnHoldstatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOnHoldstatus(requestParameters?: GetOnHoldstatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/onholdreasons`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * POST a reason for onholdstatus.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveOnHoldStatus(requestParameters: SaveOnHoldStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveOnHoldStatus(requestParameters: SaveOnHoldStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveOnHoldStatus(requestParameters: SaveOnHoldStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveOnHoldStatus(requestParameters: SaveOnHoldStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const onHoldReason = requestParameters.onHoldReason;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/onhold-status`,\n onHoldReason,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Operation } from '../model/models';\nimport { OperationWarranty } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetDefaultOpMasterByWorkshopIdRequestParams {\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOperationWarrantyRequestParams {\n /** Operation ID */\n operationId: string;\n /** Failure Code */\n failure: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOperationsMasterRequestParams {\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OperationService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get default Operations for workshop\n * Get default Operations for workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDefaultOpMasterByWorkshopId(requestParameters: GetDefaultOpMasterByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDefaultOpMasterByWorkshopId(requestParameters: GetDefaultOpMasterByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDefaultOpMasterByWorkshopId(requestParameters: GetDefaultOpMasterByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getDefaultOpMasterByWorkshopId(requestParameters: GetDefaultOpMasterByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getDefaultOpMasterByWorkshopId.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/default-operations-master`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the Waranty for one Operation.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOperationWarranty(requestParameters: GetOperationWarrantyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getOperationWarranty(requestParameters: GetOperationWarrantyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOperationWarranty(requestParameters: GetOperationWarrantyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOperationWarranty(requestParameters: GetOperationWarrantyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const operationId = requestParameters.operationId;\n if (operationId === null || operationId === undefined) {\n throw new Error('Required parameter operationId was null or undefined when calling getOperationWarranty.');\n }\n const failure = requestParameters.failure;\n if (failure === null || failure === undefined) {\n throw new Error('Required parameter failure was null or undefined when calling getOperationWarranty.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/operations/${encodeURIComponent(String(operationId))}/${encodeURIComponent(String(failure))}/warranty`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all Operations Master from DMS\n * Get all Operations Master from DMS\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOperationsMaster(requestParameters: GetOperationsMasterRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOperationsMaster(requestParameters: GetOperationsMasterRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOperationsMaster(requestParameters: GetOperationsMasterRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOperationsMaster(requestParameters: GetOperationsMasterRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getOperationsMaster.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/operations-master`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { CspsOrderStatus } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetOrderListRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrderService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all parts of the parts backlog\n * Get all parts\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderList(requestParameters?: GetOrderListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderList(requestParameters?: GetOrderListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderList(requestParameters?: GetOrderListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderList(requestParameters?: GetOrderListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-order`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { OrderTypeHeaderCode } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateOrderTypeHeaderRequestParams {\n orderTypeHeaderCode?: OrderTypeHeaderCode;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOrderTypeHeadersByWorkshopIdRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateOrderTypeHeaderByIdRequestParams {\n /** Order Type Header Code ID. */\n id: number;\n orderTypeHeaderCode?: OrderTypeHeaderCode;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrderTypeHeaderCodeService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create Order Type Header Code records\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createOrderTypeHeader(requestParameters: CreateOrderTypeHeaderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createOrderTypeHeader(requestParameters: CreateOrderTypeHeaderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOrderTypeHeader(requestParameters: CreateOrderTypeHeaderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createOrderTypeHeader(requestParameters: CreateOrderTypeHeaderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const orderTypeHeaderCode = requestParameters.orderTypeHeaderCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/order-type-headers`,\n orderTypeHeaderCode,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Order Type Header Code By Workshop\n * Get Order Type Header Code By Workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderTypeHeadersByWorkshopId(requestParameters?: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderTypeHeadersByWorkshopId(requestParameters?: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderTypeHeadersByWorkshopId(requestParameters?: GetOrderTypeHeadersByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderTypeHeadersByWorkshopId(requestParameters?: GetOrderTypeHeadersByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/order-type-headers`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update Order Type Header Code\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateOrderTypeHeaderById(requestParameters: UpdateOrderTypeHeaderByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateOrderTypeHeaderById(requestParameters: UpdateOrderTypeHeaderByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateOrderTypeHeaderById(requestParameters: UpdateOrderTypeHeaderByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateOrderTypeHeaderById(requestParameters: UpdateOrderTypeHeaderByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateOrderTypeHeaderById.');\n }\n const orderTypeHeaderCode = requestParameters.orderTypeHeaderCode;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/order-type-headers/${encodeURIComponent(String(id))}`,\n orderTypeHeaderCode,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Part } from '../model/models';\nimport { PartReturn } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreatePartRequestParams {\n part?: Part;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeletePartRequestParams {\n /** Part ID. */\n partId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartByIdRequestParams {\n /** Part ID. */\n partId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartFromCodeRequestParams {\n /** Workshop ID. */\n workshopId: number;\n /** code. */\n code: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsRequestParams {\n /** Workshop ID. */\n workshopId?: number;\n /** Retrieve the Part matching with the code */\n name?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsReturnRequestParams {\n /** Workshop ID. */\n workshopId: number;\n /** SalesOrganization. */\n salesOrganization: string;\n /** Failure Date. */\n failureDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RetrivePartsAndQuantitiesRequestParams {\n /** start date */\n fromDate?: string;\n /** end date */\n toDate?: string;\n /** Workshop Id */\n workshopId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdatePartRequestParams {\n /** Part ID. */\n partId: number;\n part?: Part;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PartService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Post a new part.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createPart(requestParameters: CreatePartRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createPart(requestParameters: CreatePartRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createPart(requestParameters: CreatePartRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createPart(requestParameters: CreatePartRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const part = requestParameters.part;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/parts`,\n part,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Post a new part.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deletePart(requestParameters: DeletePartRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deletePart(requestParameters: DeletePartRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deletePart(requestParameters: DeletePartRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deletePart(requestParameters: DeletePartRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const partId = requestParameters.partId;\n if (partId === null || partId === undefined) {\n throw new Error('Required parameter partId was null or undefined when calling deletePart.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/parts/${encodeURIComponent(String(partId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get partby its ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartById(requestParameters: GetPartByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getPartById(requestParameters: GetPartByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartById(requestParameters: GetPartByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartById(requestParameters: GetPartByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const partId = requestParameters.partId;\n if (partId === null || partId === undefined) {\n throw new Error('Required parameter partId was null or undefined when calling getPartById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/parts/${encodeURIComponent(String(partId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get part from partCode.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartFromCode(requestParameters: GetPartFromCodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getPartFromCode(requestParameters: GetPartFromCodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartFromCode(requestParameters: GetPartFromCodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartFromCode(requestParameters: GetPartFromCodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPartFromCode.');\n }\n const code = requestParameters.code;\n if (code === null || code === undefined) {\n throw new Error('Required parameter code was null or undefined when calling getPartFromCode.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (code !== undefined && code !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n code, 'code');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/part`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get parts\\' list from workshop.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getParts(requestParameters: GetPartsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getParts(requestParameters: GetPartsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getParts(requestParameters: GetPartsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getParts(requestParameters: GetPartsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const name = requestParameters.name;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (name !== undefined && name !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n name, 'name');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get parts returned from workshop.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsReturn(requestParameters: GetPartsReturnRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsReturn(requestParameters: GetPartsReturnRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsReturn(requestParameters: GetPartsReturnRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsReturn(requestParameters: GetPartsReturnRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getPartsReturn.');\n }\n const salesOrganization = requestParameters.salesOrganization;\n if (salesOrganization === null || salesOrganization === undefined) {\n throw new Error('Required parameter salesOrganization was null or undefined when calling getPartsReturn.');\n }\n const failureDate = requestParameters.failureDate;\n if (failureDate === null || failureDate === undefined) {\n throw new Error('Required parameter failureDate was null or undefined when calling getPartsReturn.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (salesOrganization !== undefined && salesOrganization !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n salesOrganization, 'salesOrganization');\n }\n if (failureDate !== undefined && failureDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n failureDate, 'failureDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-return`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the parts between dates and workshop id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public retrivePartsAndQuantities(requestParameters: RetrivePartsAndQuantitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable;\n public retrivePartsAndQuantities(requestParameters: RetrivePartsAndQuantitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public retrivePartsAndQuantities(requestParameters: RetrivePartsAndQuantitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public retrivePartsAndQuantities(requestParameters: RetrivePartsAndQuantitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable {\n const fromDate = requestParameters.fromDate;\n const toDate = requestParameters.toDate;\n const workshopId = requestParameters.workshopId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/parts/export/excel`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an existing part.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatePart(requestParameters: UpdatePartRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updatePart(requestParameters: UpdatePartRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePart(requestParameters: UpdatePartRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePart(requestParameters: UpdatePartRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const partId = requestParameters.partId;\n if (partId === null || partId === undefined) {\n throw new Error('Required parameter partId was null or undefined when calling updatePart.');\n }\n const part = requestParameters.part;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/parts/${encodeURIComponent(String(partId))}`,\n part,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { PartConsumable } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreatePartsConsumablesRequestParams {\n partConsumable?: PartConsumable;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeletePartByCodeRequestParams {\n /** delete a part */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartCodeByIdRequestParams {\n /** Part code */\n id: string;\n partConsumable?: PartConsumable;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsAndConsumablesReportRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsConsumablesRequestParams {\n /** code of the parts & consumables to get */\n code?: string;\n /** description of the parts & consumables to get */\n description?: string;\n /** manufacturer of the parts & consumables to get */\n manufacturer?: string;\n /** price of the parts & consumables to get */\n price?: number;\n /** type of the parts & consumables to get */\n type?: string;\n filterBy?: string;\n filterValue?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface PartExistInAppointmentRequestParams {\n /** Part code */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PartConsumablesService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create parts and consumables\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createPartsConsumables(requestParameters: CreatePartsConsumablesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createPartsConsumables(requestParameters: CreatePartsConsumablesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createPartsConsumables(requestParameters: CreatePartsConsumablesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createPartsConsumables(requestParameters: CreatePartsConsumablesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const partConsumable = requestParameters.partConsumable;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/createParts`,\n partConsumable,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * delete a part\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deletePartByCode(requestParameters: DeletePartByCodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deletePartByCode(requestParameters: DeletePartByCodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deletePartByCode(requestParameters: DeletePartByCodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deletePartByCode(requestParameters: DeletePartByCodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deletePartByCode.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/deletePart/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the part code item by its code\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartCodeById(requestParameters: GetPartCodeByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getPartCodeById(requestParameters: GetPartCodeByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartCodeById(requestParameters: GetPartCodeByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartCodeById(requestParameters: GetPartCodeByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getPartCodeById.');\n }\n const partConsumable = requestParameters.partConsumable;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/partCode/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Download the Parts & Consumables by workshop user id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsAndConsumablesReport(requestParameters?: GetPartsAndConsumablesReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable;\n public getPartsAndConsumablesReport(requestParameters?: GetPartsAndConsumablesReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getPartsAndConsumablesReport(requestParameters?: GetPartsAndConsumablesReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getPartsAndConsumablesReport(requestParameters?: GetPartsAndConsumablesReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/parts-consumables-report`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all Parts & consumables for a customer company or a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsConsumables(requestParameters: GetPartsConsumablesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsConsumables(requestParameters: GetPartsConsumablesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsConsumables(requestParameters: GetPartsConsumablesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsConsumables(requestParameters: GetPartsConsumablesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const code = requestParameters.code;\n const description = requestParameters.description;\n const manufacturer = requestParameters.manufacturer;\n const price = requestParameters.price;\n const type = requestParameters.type;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (code !== undefined && code !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n code, 'code');\n }\n if (description !== undefined && description !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n description, 'description');\n }\n if (manufacturer !== undefined && manufacturer !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n manufacturer, 'manufacturer');\n }\n if (price !== undefined && price !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n price, 'price');\n }\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-consumables`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the part code item by its code used in appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public partExistInAppointment(requestParameters: PartExistInAppointmentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public partExistInAppointment(requestParameters: PartExistInAppointmentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partExistInAppointment(requestParameters: PartExistInAppointmentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public partExistInAppointment(requestParameters: PartExistInAppointmentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling partExistInAppointment.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/partExistInAppointment/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { PartsTrackerCsps } from '../model/models';\nimport { PartsTrackerDms } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SaveCspslogsRequestParams {\n partsTrackerCsps?: PartsTrackerCsps;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveDmslogsRequestParams {\n partsTrackerDms?: PartsTrackerDms;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PartTrackerService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Store logs of csps checks\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveCspslogs(requestParameters: SaveCspslogsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveCspslogs(requestParameters: SaveCspslogsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveCspslogs(requestParameters: SaveCspslogsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveCspslogs(requestParameters: SaveCspslogsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const partsTrackerCsps = requestParameters.partsTrackerCsps;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/parts-csps-tracker`,\n partsTrackerCsps,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Store logs of dms checks\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveDmslogs(requestParameters: SaveDmslogsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveDmslogs(requestParameters: SaveDmslogsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveDmslogs(requestParameters: SaveDmslogsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveDmslogs(requestParameters: SaveDmslogsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const partsTrackerDms = requestParameters.partsTrackerDms;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/parts-dms-tracker`,\n partsTrackerDms,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { CustomerViewDto } from '../model/models';\nimport { JobcardPartsBacklog } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreatePartsBacklogRequestParams {\n jobcardPartsBacklog?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeletePartsOrderRequestParams {\n /** View. */\n view: string;\n /** Part ID. */\n partId: number;\n /** Appointment ID. */\n appointmentId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetOrderPartsRequestParams {\n /** order id of the simulation */\n cspsOrderId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsByIdRequestParams {\n /** Parts Backlog ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsOrderRequestParams {\n /** part of the backlog to get */\n view?: 'part' | 'cust';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPartsToBeOrderedRequestParams {\n partId: number;\n view: string;\n appointmentId?: number;\n customerId?: number;\n orderId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdatePartsBacklogRequestParams {\n /** Parts Backlog ID. */\n id: number;\n jobcardPartsBacklog?: JobcardPartsBacklog;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PartsOrderService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a parts backlog\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createPartsBacklog(requestParameters: CreatePartsBacklogRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createPartsBacklog(requestParameters: CreatePartsBacklogRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createPartsBacklog(requestParameters: CreatePartsBacklogRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public createPartsBacklog(requestParameters: CreatePartsBacklogRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardPartsBacklog = requestParameters.jobcardPartsBacklog;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post>(`${this.configuration.basePath}/parts-backlog`,\n jobcardPartsBacklog,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a part order\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deletePartsOrder(requestParameters: DeletePartsOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deletePartsOrder(requestParameters: DeletePartsOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deletePartsOrder(requestParameters: DeletePartsOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deletePartsOrder(requestParameters: DeletePartsOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const view = requestParameters.view;\n if (view === null || view === undefined) {\n throw new Error('Required parameter view was null or undefined when calling deletePartsOrder.');\n }\n const partId = requestParameters.partId;\n if (partId === null || partId === undefined) {\n throw new Error('Required parameter partId was null or undefined when calling deletePartsOrder.');\n }\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (partId !== undefined && partId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n partId, 'partId');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/parts-backlog`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get parts of the csps order\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderParts(requestParameters: GetOrderPartsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderParts(requestParameters: GetOrderPartsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderParts(requestParameters: GetOrderPartsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getOrderParts(requestParameters: GetOrderPartsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const cspsOrderId = requestParameters.cspsOrderId;\n if (cspsOrderId === null || cspsOrderId === undefined) {\n throw new Error('Required parameter cspsOrderId was null or undefined when calling getOrderParts.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (cspsOrderId !== undefined && cspsOrderId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n cspsOrderId, 'cspsOrderId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-backlog/order-parts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get all the partsBacklog by partId\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsById(requestParameters: GetPartsByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getPartsById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-backlog/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all parts of the customer\n * Get all parts of the customer\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsOrder(requestParameters: GetPartsOrderRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getPartsOrder(requestParameters: GetPartsOrderRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsOrder(requestParameters: GetPartsOrderRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsOrder(requestParameters: GetPartsOrderRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/parts-backlog`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the part that will be ordered\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPartsToBeOrdered(requestParameters: GetPartsToBeOrderedRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPartsToBeOrdered(requestParameters: GetPartsToBeOrderedRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsToBeOrdered(requestParameters: GetPartsToBeOrderedRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPartsToBeOrdered(requestParameters: GetPartsToBeOrderedRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const partId = requestParameters.partId;\n if (partId === null || partId === undefined) {\n throw new Error('Required parameter partId was null or undefined when calling getPartsToBeOrdered.');\n }\n const view = requestParameters.view;\n if (view === null || view === undefined) {\n throw new Error('Required parameter view was null or undefined when calling getPartsToBeOrdered.');\n }\n const appointmentId = requestParameters.appointmentId;\n const customerId = requestParameters.customerId;\n const orderId = requestParameters.orderId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (partId !== undefined && partId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n partId, 'partId');\n }\n if (orderId !== undefined && orderId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n orderId, 'orderId');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/parts-backlog/order`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a parts backlog\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatePartsBacklog(requestParameters: UpdatePartsBacklogRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updatePartsBacklog(requestParameters: UpdatePartsBacklogRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePartsBacklog(requestParameters: UpdatePartsBacklogRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePartsBacklog(requestParameters: UpdatePartsBacklogRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updatePartsBacklog.');\n }\n const jobcardPartsBacklog = requestParameters.jobcardPartsBacklog;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/parts-backlog/${encodeURIComponent(String(id))}`,\n jobcardPartsBacklog,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { PaymentSubSubType } from '../model/models';\nimport { PaymentType } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface EditPaymentSubSubTypeRequestParams {\n /** Payment sub Type ID. */\n id: number;\n paymentSubSubType?: PaymentSubSubType;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditPaymentTypeRequestParams {\n /** Payment Type ID. */\n id: number;\n paymentType?: PaymentType;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPaymentTypesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SavePaymentTypeRequestParams {\n paymentType?: PaymentType;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdatePaymentTypesRequestParams {\n paymentType?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * add or Edit a payment sub sub type.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editPaymentSubSubType(requestParameters: EditPaymentSubSubTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editPaymentSubSubType(requestParameters: EditPaymentSubSubTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editPaymentSubSubType(requestParameters: EditPaymentSubSubTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editPaymentSubSubType(requestParameters: EditPaymentSubSubTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editPaymentSubSubType.');\n }\n const paymentSubSubType = requestParameters.paymentSubSubType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/paymentsub-sub-types/${encodeURIComponent(String(id))}`,\n paymentSubSubType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit a payment type.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editPaymentType(requestParameters: EditPaymentTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editPaymentType(requestParameters: EditPaymentTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editPaymentType(requestParameters: EditPaymentTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editPaymentType(requestParameters: EditPaymentTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editPaymentType.');\n }\n const paymentType = requestParameters.paymentType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/payment-types/${encodeURIComponent(String(id))}`,\n paymentType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all payment types known in the system\n * Get all Payment Types\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPaymentTypes(requestParameters?: GetPaymentTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPaymentTypes(requestParameters?: GetPaymentTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPaymentTypes(requestParameters?: GetPaymentTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPaymentTypes(requestParameters?: GetPaymentTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/payment-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * POST a payment type\n * POST a payment Type\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public savePaymentType(requestParameters: SavePaymentTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public savePaymentType(requestParameters: SavePaymentTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savePaymentType(requestParameters: SavePaymentTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savePaymentType(requestParameters: SavePaymentTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const paymentType = requestParameters.paymentType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/payment-types`,\n paymentType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update payment type\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatePaymentTypes(requestParameters: UpdatePaymentTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePaymentTypes(requestParameters: UpdatePaymentTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updatePaymentTypes(requestParameters: UpdatePaymentTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updatePaymentTypes(requestParameters: UpdatePaymentTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const paymentType = requestParameters.paymentType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/payment-types`,\n paymentType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { Permission } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetPermissionsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all permissions\n * Get the permissions of the user\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPermissions(requestParameters?: GetPermissionsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPermissions(requestParameters?: GetPermissionsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPermissions(requestParameters?: GetPermissionsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPermissions(requestParameters?: GetPermissionsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/permissions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { PriorityType } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface DeletePriorityRequestParams {\n /** Priority Type ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditPriorityTypeRequestParams {\n /** Priority Type ID. */\n id: number;\n priorityType?: PriorityType;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPriorityTypeRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SavePriorityTypeRequestParams {\n priorityType?: PriorityType;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdatePriorityTypesRequestParams {\n priorityType?: PriorityType;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PriorityTypeService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Delete a Priority Type\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deletePriority(requestParameters: DeletePriorityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deletePriority(requestParameters: DeletePriorityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deletePriority(requestParameters: DeletePriorityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deletePriority(requestParameters: DeletePriorityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deletePriority.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/prioritytype/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit a payment type.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editPriorityType(requestParameters: EditPriorityTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editPriorityType(requestParameters: EditPriorityTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editPriorityType(requestParameters: EditPriorityTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editPriorityType(requestParameters: EditPriorityTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editPriorityType.');\n }\n const priorityType = requestParameters.priorityType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/prioritytype/${encodeURIComponent(String(id))}`,\n priorityType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Priority type for the workshop\n * Get Priority type for the workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPriorityType(requestParameters?: GetPriorityTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPriorityType(requestParameters?: GetPriorityTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPriorityType(requestParameters?: GetPriorityTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPriorityType(requestParameters?: GetPriorityTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/prioritytype`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * POST a priority type\n * POST a priority Type\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public savePriorityType(requestParameters: SavePriorityTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public savePriorityType(requestParameters: SavePriorityTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savePriorityType(requestParameters: SavePriorityTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public savePriorityType(requestParameters: SavePriorityTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const priorityType = requestParameters.priorityType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/prioritytype`,\n priorityType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update priority type\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updatePriorityTypes(requestParameters: UpdatePriorityTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updatePriorityTypes(requestParameters: UpdatePriorityTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updatePriorityTypes(requestParameters: UpdatePriorityTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updatePriorityTypes(requestParameters: UpdatePriorityTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const priorityType = requestParameters.priorityType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/prioritytype`,\n priorityType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ReleaseVersion } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetReleaseVersionRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReleaseVersionService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the latest release version of an application\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReleaseVersion(requestParameters?: GetReleaseVersionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getReleaseVersion(requestParameters?: GetReleaseVersionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getReleaseVersion(requestParameters?: GetReleaseVersionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getReleaseVersion(requestParameters?: GetReleaseVersionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/release-details`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ReleaseVersion } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetReleaseVersionAllRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReleaseVersionAllService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the latest release version of an application\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getReleaseVersionAll(requestParameters?: GetReleaseVersionAllRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getReleaseVersionAll(requestParameters?: GetReleaseVersionAllRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getReleaseVersionAll(requestParameters?: GetReleaseVersionAllRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getReleaseVersionAll(requestParameters?: GetReleaseVersionAllRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/release-details-all`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { Role } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetRolesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RoleService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all user Roles\n * Get all the roles\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRoles(requestParameters?: GetRolesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRoles(requestParameters?: GetRolesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRoles(requestParameters?: GetRolesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRoles(requestParameters?: GetRolesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/roles`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetSafetyChecklistRequestParams {\n /** Appointment ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetSafetyChecklistsRequestParams {\n /** Appointments ID. */\n id?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SafetyChecklistService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get a safety checklist as PDF\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSafetyChecklist(requestParameters: GetSafetyChecklistRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable;\n public getSafetyChecklist(requestParameters: GetSafetyChecklistRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable>;\n public getSafetyChecklist(requestParameters: GetSafetyChecklistRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable>;\n public getSafetyChecklist(requestParameters: GetSafetyChecklistRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/pdf'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getSafetyChecklist.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/pdf'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/safety-checklists/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get multiple safety checklists as PDF\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSafetyChecklists(requestParameters: GetSafetyChecklistsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable;\n public getSafetyChecklists(requestParameters: GetSafetyChecklistsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable>;\n public getSafetyChecklists(requestParameters: GetSafetyChecklistsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/pdf'}): Observable>;\n public getSafetyChecklists(requestParameters: GetSafetyChecklistsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/pdf'}): Observable {\n const id = requestParameters.id;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (id) {\n id.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'id');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/pdf'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/safety-checklists`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ActivityTravelList } from '../model/models';\nimport { ApiError } from '../model/models';\nimport { Appointment } from '../model/models';\nimport { SapAttachmentValue } from '../model/models';\nimport { SapDealerMarketCheckResult } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AttachmentCheckRequestParams {\n /** JobcardItem ID */\n jobcardItemId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CheckSapDealerMarketInEuropeRequestParams {\n sapDealerMarketCheckResult?: SapDealerMarketCheckResult;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ClaimCreationRequestParams {\n /** Jobcard Items ID(for activities) */\n id?: Array;\n /** Market ID */\n marketId?: number;\n /** Dealer claim number */\n dealerClaimNumber?: string;\n /** Serialnumber */\n serialNumber?: string;\n /** List of travels associated to activities */\n activityTravelList?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SapClaimService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Check the attachments of all claims from an appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public attachmentCheck(requestParameters: AttachmentCheckRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public attachmentCheck(requestParameters: AttachmentCheckRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public attachmentCheck(requestParameters: AttachmentCheckRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public attachmentCheck(requestParameters: AttachmentCheckRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardItemId = requestParameters.jobcardItemId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardItemId !== undefined && jobcardItemId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardItemId, 'jobcardItemId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/sap/attachments-check`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check if the dealer\\'s market is in Europe\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public checkSapDealerMarketInEurope(requestParameters: CheckSapDealerMarketInEuropeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public checkSapDealerMarketInEurope(requestParameters: CheckSapDealerMarketInEuropeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkSapDealerMarketInEurope(requestParameters: CheckSapDealerMarketInEuropeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public checkSapDealerMarketInEurope(requestParameters: CheckSapDealerMarketInEuropeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const sapDealerMarketCheckResult = requestParameters.sapDealerMarketCheckResult;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/sap/europe-dealer-check`,\n sapDealerMarketCheckResult,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * SAP Claim creation for selected activities\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public claimCreation(requestParameters: ClaimCreationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public claimCreation(requestParameters: ClaimCreationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public claimCreation(requestParameters: ClaimCreationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public claimCreation(requestParameters: ClaimCreationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n const marketId = requestParameters.marketId;\n const dealerClaimNumber = requestParameters.dealerClaimNumber;\n const serialNumber = requestParameters.serialNumber;\n const activityTravelList = requestParameters.activityTravelList;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (id) {\n id.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'id');\n })\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n if (dealerClaimNumber !== undefined && dealerClaimNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dealerClaimNumber, 'dealerClaimNumber');\n }\n if (serialNumber !== undefined && serialNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n serialNumber, 'serialNumber');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/sap/claim-creation`,\n activityTravelList,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Series } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetSeriesRequestParams {\n /** Brand ID of the series to get */\n brandId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SeriesService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all series for a brand\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSeries(requestParameters: GetSeriesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSeries(requestParameters: GetSeriesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSeries(requestParameters: GetSeriesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSeries(requestParameters: GetSeriesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const brandId = requestParameters.brandId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (brandId !== undefined && brandId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandId, 'brandId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/series`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Shift } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddShiftRequestParams {\n shift?: Shift;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteShiftRequestParams {\n /** Shift ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditShiftRequestParams {\n /** Shift ID. */\n id: number;\n shift?: Shift;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetShiftsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ShiftsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Add a shift.\n * Add a shift\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addShift(requestParameters: AddShiftRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addShift(requestParameters: AddShiftRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addShift(requestParameters: AddShiftRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addShift(requestParameters: AddShiftRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const shift = requestParameters.shift;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/shifts`,\n shift,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a shift\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteShift(requestParameters: DeleteShiftRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteShift(requestParameters: DeleteShiftRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteShift(requestParameters: DeleteShiftRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteShift(requestParameters: DeleteShiftRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteShift.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/shifts/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit a shift.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editShift(requestParameters: EditShiftRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editShift(requestParameters: EditShiftRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editShift(requestParameters: EditShiftRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editShift(requestParameters: EditShiftRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editShift.');\n }\n const shift = requestParameters.shift;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/shifts/${encodeURIComponent(String(id))}`,\n shift,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all shifts\n * Get all shifts\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getShifts(requestParameters?: GetShiftsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getShifts(requestParameters?: GetShiftsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getShifts(requestParameters?: GetShiftsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getShifts(requestParameters?: GetShiftsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/shifts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { EncryptedSignature } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface EncryptStringBase64RequestParams {\n body?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SignatureService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Encrypt a signature string.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public encryptStringBase64(requestParameters: EncryptStringBase64RequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public encryptStringBase64(requestParameters: EncryptStringBase64RequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public encryptStringBase64(requestParameters: EncryptStringBase64RequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public encryptStringBase64(requestParameters: EncryptStringBase64RequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const body = requestParameters.body;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'text/plain'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/signature/encrypt-string`,\n body,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { Skill } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetSkillsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SkillsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * List all skills\n * Get all skills\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSkills(requestParameters?: GetSkillsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSkills(requestParameters?: GetSkillsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSkills(requestParameters?: GetSkillsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSkills(requestParameters?: GetSkillsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/skills`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Otp } from '../model/models';\nimport { ValidationResponse } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GenerateOtpRequestParams {\n /** Appointment ID of the appointment the customer company attends */\n appointmentId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ValidateOtpRequestParams {\n otp?: Otp;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SmsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Generate an One Time Password\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public generateOtp(requestParameters: GenerateOtpRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public generateOtp(requestParameters: GenerateOtpRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generateOtp(requestParameters: GenerateOtpRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generateOtp(requestParameters: GenerateOtpRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appointmentId = requestParameters.appointmentId;\n if (appointmentId === null || appointmentId === undefined) {\n throw new Error('Required parameter appointmentId was null or undefined when calling generateOtp.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/summary/generateOtp`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Validate or not the otp sent\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public validateOtp(requestParameters: ValidateOtpRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public validateOtp(requestParameters: ValidateOtpRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public validateOtp(requestParameters: ValidateOtpRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public validateOtp(requestParameters: ValidateOtpRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const otp = requestParameters.otp;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/summary/validateOtp`,\n otp,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { StandaloneImportFileResponse } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface ImportStandaloneCustomerDataRequestParams {\n file?: Blob;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ImportStandaloneMachineDataRequestParams {\n file?: Blob;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ImportStandalonePartsConsumablesDataRequestParams {\n file?: Blob;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StandaloneService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Import the customer data for a workshop working in Standalone mode\n * Import the customer data for a workshop working in Standalone mode\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public importStandaloneCustomerData(requestParameters: ImportStandaloneCustomerDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public importStandaloneCustomerData(requestParameters: ImportStandaloneCustomerDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public importStandaloneCustomerData(requestParameters: ImportStandaloneCustomerDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public importStandaloneCustomerData(requestParameters: ImportStandaloneCustomerDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const file = requestParameters.file;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: this.encoder});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/customer-companies/data-import`,\n convertFormParamsToString ? formParams.toString() : formParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Import the machine data for a workshop working in Standalone mode\n * Import the machine data for a workshop working in Standalone mode\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public importStandaloneMachineData(requestParameters: ImportStandaloneMachineDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public importStandaloneMachineData(requestParameters: ImportStandaloneMachineDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public importStandaloneMachineData(requestParameters: ImportStandaloneMachineDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public importStandaloneMachineData(requestParameters: ImportStandaloneMachineDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const file = requestParameters.file;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: this.encoder});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/machines/data-import`,\n convertFormParamsToString ? formParams.toString() : formParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Import the parts consumables data for a workshop working in Standalone mode\n * Import the parts consumables data for a workshop working in Standalone mode\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public importStandalonePartsConsumablesData(requestParameters: ImportStandalonePartsConsumablesDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public importStandalonePartsConsumablesData(requestParameters: ImportStandalonePartsConsumablesDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public importStandalonePartsConsumablesData(requestParameters: ImportStandalonePartsConsumablesDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public importStandalonePartsConsumablesData(requestParameters: ImportStandalonePartsConsumablesDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const file = requestParameters.file;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: this.encoder});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/parts-consumables/data-import`,\n convertFormParamsToString ? formParams.toString() : formParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ApiResponseDto } from '../model/models';\nimport { Currency } from '../model/models';\nimport { PaymentType } from '../model/models';\nimport { UncaughtException } from '../model/models';\nimport { UserGuide } from '../model/models';\nimport { Workshop } from '../model/models';\nimport { WorkshopBay } from '../model/models';\nimport { WorkshopFigures } from '../model/models';\nimport { WorkshopUser } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GenerateEdsExportsRequestParams {\n /** Workshop ID */\n workshopId: number;\n /** Status */\n status: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatsCurrenciesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatsPaymentTypesRequestParams {\n /** Workshop ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatsTemplateRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatsWorkshopBaysRequestParams {\n /** Workshop ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatsWorkshopBySapCodeRequestParams {\n sapCode: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatsWorkshopFiguresRequestParams {\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatsWorkshopUsersRequestParams {\n /** Workshop ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUncaughtExceptionsRequestParams {\n workshopId?: number;\n filterBy?: string;\n filterValue?: string;\n startDate?: string;\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUserGuidesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopExcelDataRequestParams {\n /** Workshop ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopsListRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface ImportDataForWorkshopRequestParams {\n /** Workshop ID */\n workshopId?: number;\n file?: Blob;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SendSyncSummaryRequestParams {\n type: string;\n fromDate: string;\n toDate: string;\n workshopId: number;\n uuid: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopByIdRequestParams {\n /** Workshop ID. */\n id: number;\n workshop?: Workshop;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UploadPrivacyNoticeForWorkshopRequestParams {\n /** Workshop ID */\n workshopIds?: Array;\n file?: Blob;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StatsService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Generate all the XMLs for EDS export, based on the status and the workshop\n * Create all the missing EDS Exports\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public generateEdsExports(requestParameters: GenerateEdsExportsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public generateEdsExports(requestParameters: GenerateEdsExportsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generateEdsExports(requestParameters: GenerateEdsExportsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public generateEdsExports(requestParameters: GenerateEdsExportsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling generateEdsExports.');\n }\n const status = requestParameters.status;\n if (status === null || status === undefined) {\n throw new Error('Required parameter status was null or undefined when calling generateEdsExports.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (status !== undefined && status !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n status, 'status');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/stats/eds-export`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all currencies known in the system\n * Get all handled currencies\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatsCurrencies(requestParameters?: GetStatsCurrenciesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsCurrencies(requestParameters?: GetStatsCurrenciesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsCurrencies(requestParameters?: GetStatsCurrenciesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsCurrencies(requestParameters?: GetStatsCurrenciesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/currencies`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all payment types known in the system\n * Get all Payment Types\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatsPaymentTypes(requestParameters: GetStatsPaymentTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsPaymentTypes(requestParameters: GetStatsPaymentTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsPaymentTypes(requestParameters: GetStatsPaymentTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsPaymentTypes(requestParameters: GetStatsPaymentTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getStatsPaymentTypes.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/workshops/${encodeURIComponent(String(id))}/payment-types`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the Template to import data\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatsTemplate(requestParameters?: GetStatsTemplateRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable;\n public getStatsTemplate(requestParameters?: GetStatsTemplateRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getStatsTemplate(requestParameters?: GetStatsTemplateRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getStatsTemplate(requestParameters?: GetStatsTemplateRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/stats/template-import`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all bays of the workshop\n * Get all bays of the workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatsWorkshopBays(requestParameters: GetStatsWorkshopBaysRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsWorkshopBays(requestParameters: GetStatsWorkshopBaysRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsWorkshopBays(requestParameters: GetStatsWorkshopBaysRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsWorkshopBays(requestParameters: GetStatsWorkshopBaysRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getStatsWorkshopBays.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/workshops/${encodeURIComponent(String(id))}/bays`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all workshops linked to DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatsWorkshopBySapCode(requestParameters: GetStatsWorkshopBySapCodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getStatsWorkshopBySapCode(requestParameters: GetStatsWorkshopBySapCodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsWorkshopBySapCode(requestParameters: GetStatsWorkshopBySapCodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsWorkshopBySapCode(requestParameters: GetStatsWorkshopBySapCodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const sapCode = requestParameters.sapCode;\n if (sapCode === null || sapCode === undefined) {\n throw new Error('Required parameter sapCode was null or undefined when calling getStatsWorkshopBySapCode.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (sapCode !== undefined && sapCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sapCode, 'sapCode');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/stats/workshops`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Workshop figures about Customers, Vehicles, Operations and Parts.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatsWorkshopFigures(requestParameters: GetStatsWorkshopFiguresRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getStatsWorkshopFigures(requestParameters: GetStatsWorkshopFiguresRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsWorkshopFigures(requestParameters: GetStatsWorkshopFiguresRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsWorkshopFigures(requestParameters: GetStatsWorkshopFiguresRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getStatsWorkshopFigures.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/stats/workshop-figures`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all users of the workshop\n * Get all users of the workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatsWorkshopUsers(requestParameters: GetStatsWorkshopUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsWorkshopUsers(requestParameters: GetStatsWorkshopUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsWorkshopUsers(requestParameters: GetStatsWorkshopUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsWorkshopUsers(requestParameters: GetStatsWorkshopUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getStatsWorkshopUsers.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/workshops/${encodeURIComponent(String(id))}/users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get Uncaught Exceptions\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUncaughtExceptions(requestParameters: GetUncaughtExceptionsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUncaughtExceptions(requestParameters: GetUncaughtExceptionsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUncaughtExceptions(requestParameters: GetUncaughtExceptionsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUncaughtExceptions(requestParameters: GetUncaughtExceptionsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/uncaught-exceptions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all User Guides from DB.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserGuides(requestParameters?: GetUserGuidesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserGuides(requestParameters?: GetUserGuidesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserGuides(requestParameters?: GetUserGuidesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserGuides(requestParameters?: GetUserGuidesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/user-guides`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * GET the template fulfilled for a specific Workshop.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopExcelData(requestParameters: GetWorkshopExcelDataRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable;\n public getWorkshopExcelData(requestParameters: GetWorkshopExcelDataRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getWorkshopExcelData(requestParameters: GetWorkshopExcelDataRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getWorkshopExcelData(requestParameters: GetWorkshopExcelDataRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getWorkshopExcelData.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/stats/workshop/${encodeURIComponent(String(id))}/excel`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List the workshop\n * Get all workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopsList(requestParameters?: GetWorkshopsListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopsList(requestParameters?: GetWorkshopsListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopsList(requestParameters?: GetWorkshopsListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopsList(requestParameters?: GetWorkshopsListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/workshopsList`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Import the data for a new Workshop\n * Import the data for a new Workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public importDataForWorkshop(requestParameters: ImportDataForWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public importDataForWorkshop(requestParameters: ImportDataForWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public importDataForWorkshop(requestParameters: ImportDataForWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public importDataForWorkshop(requestParameters: ImportDataForWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const file = requestParameters.file;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: this.encoder});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/stats/data-import`,\n convertFormParamsToString ? formParams.toString() : formParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Send a summary for the synchronisation done.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public sendSyncSummary(requestParameters: SendSyncSummaryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public sendSyncSummary(requestParameters: SendSyncSummaryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendSyncSummary(requestParameters: SendSyncSummaryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public sendSyncSummary(requestParameters: SendSyncSummaryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling sendSyncSummary.');\n }\n const fromDate = requestParameters.fromDate;\n if (fromDate === null || fromDate === undefined) {\n throw new Error('Required parameter fromDate was null or undefined when calling sendSyncSummary.');\n }\n const toDate = requestParameters.toDate;\n if (toDate === null || toDate === undefined) {\n throw new Error('Required parameter toDate was null or undefined when calling sendSyncSummary.');\n }\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling sendSyncSummary.');\n }\n const uuid = requestParameters.uuid;\n if (uuid === null || uuid === undefined) {\n throw new Error('Required parameter uuid was null or undefined when calling sendSyncSummary.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (type !== undefined && type !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n type, 'type');\n }\n if (fromDate !== undefined && fromDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n fromDate, 'fromDate');\n }\n if (toDate !== undefined && toDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n toDate, 'toDate');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (uuid !== undefined && uuid !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n uuid, 'uuid');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/stats/dms-sync-summary`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Modify a workshop by its ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopById(requestParameters: UpdateWorkshopByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopById(requestParameters: UpdateWorkshopByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopById(requestParameters: UpdateWorkshopByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopById(requestParameters: UpdateWorkshopByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateWorkshopById.');\n }\n const workshop = requestParameters.workshop;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/stats/workshop/${encodeURIComponent(String(id))}`,\n workshop,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Auto Upload of Privacy Notice for Workshop\n * Auto Upload of Privacy Notice for Workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public uploadPrivacyNoticeForWorkshop(requestParameters: UploadPrivacyNoticeForWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public uploadPrivacyNoticeForWorkshop(requestParameters: UploadPrivacyNoticeForWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public uploadPrivacyNoticeForWorkshop(requestParameters: UploadPrivacyNoticeForWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public uploadPrivacyNoticeForWorkshop(requestParameters: UploadPrivacyNoticeForWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopIds = requestParameters.workshopIds;\n const file = requestParameters.file;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopIds) {\n workshopIds.forEach((element) => {\n queryParameters = this.addToHttpParams(queryParameters,\n element, 'workshopIds');\n })\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: this.encoder});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/stats/upload-privacy-notice`,\n convertFormParamsToString ? formParams.toString() : formParams,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Appointment } from '../model/models';\nimport { CustomerCompany } from '../model/models';\nimport { JobcardItem } from '../model/models';\nimport { LegalNotice } from '../model/models';\nimport { Workshop } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAppointmentSummaryInformationRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetLegalLinksByWorkshopIdRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopSummaryInformationRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SaveCustomerConsentRequestParams {\n /** Customer Company ID. */\n id: number;\n customerCompany?: CustomerCompany;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateJobcardItemFromSummaryRequestParams {\n /** Jobcard Item ID. */\n id: number;\n jobcardItem?: JobcardItem;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SummaryService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get All information for Appointment in Summary\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppointmentSummaryInformation(requestParameters?: GetAppointmentSummaryInformationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAppointmentSummaryInformation(requestParameters?: GetAppointmentSummaryInformationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentSummaryInformation(requestParameters?: GetAppointmentSummaryInformationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAppointmentSummaryInformation(requestParameters?: GetAppointmentSummaryInformationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/summary/appointments`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get legal links for workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getLegalLinksByWorkshopId(requestParameters?: GetLegalLinksByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getLegalLinksByWorkshopId(requestParameters?: GetLegalLinksByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalLinksByWorkshopId(requestParameters?: GetLegalLinksByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getLegalLinksByWorkshopId(requestParameters?: GetLegalLinksByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/summary/legalNotice`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get All information for Workshop in Summary\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopSummaryInformation(requestParameters?: GetWorkshopSummaryInformationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWorkshopSummaryInformation(requestParameters?: GetWorkshopSummaryInformationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopSummaryInformation(requestParameters?: GetWorkshopSummaryInformationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopSummaryInformation(requestParameters?: GetWorkshopSummaryInformationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/summary/workshops`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a customer consent\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public saveCustomerConsent(requestParameters: SaveCustomerConsentRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public saveCustomerConsent(requestParameters: SaveCustomerConsentRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveCustomerConsent(requestParameters: SaveCustomerConsentRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public saveCustomerConsent(requestParameters: SaveCustomerConsentRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling saveCustomerConsent.');\n }\n const customerCompany = requestParameters.customerCompany;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/summary/customer-consent/${encodeURIComponent(String(id))}`,\n customerCompany,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a jobcard Item\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateJobcardItemFromSummary(requestParameters: UpdateJobcardItemFromSummaryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateJobcardItemFromSummary(requestParameters: UpdateJobcardItemFromSummaryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcardItemFromSummary(requestParameters: UpdateJobcardItemFromSummaryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateJobcardItemFromSummary(requestParameters: UpdateJobcardItemFromSummaryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateJobcardItemFromSummary.');\n }\n const jobcardItem = requestParameters.jobcardItem;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/summary/jobcard-items/${encodeURIComponent(String(id))}`,\n jobcardItem,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { TechClockingDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetTechnicianClockingRequestParams {\n /** start date */\n startDate: string;\n /** End date */\n endDate: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTechnicianClockingSummaryRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** DMS Number */\n dmsJobOrder?: string;\n /** Workshop Bay ID */\n workshopBayId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Workshop User ID */\n workshopUserId?: string;\n /** Customer Company ID */\n customerCompanyId?: number;\n /** Vehicle ID */\n vehicleId?: number;\n /** Vehicle VIN */\n vin?: string;\n /** Full object for appointment or only planning (lite) view */\n view?: 'lite' | 'full' | 'planning' | 'agenda' | 'workfile' | 'kanban-day' | 'kanban-week' | 'bay' | 'mobile';\n /** status to be displayed */\n currentStatus?: string;\n /** type of report to be displayed */\n report?: string;\n /** Retrieve all activities deferred and not, or not deferred activities if null */\n withDeferred?: boolean;\n /** Retrieve all appointments on hold */\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n appointmentPriority?: string;\n dmsOrderType?: string;\n /** Unit status */\n unitStatus?: boolean;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetTechnicianClockingSummaryExcelRequestParams {\n /** Workshop ID */\n workshopId?: number;\n /** DMS Number */\n dmsJobOrder?: string;\n /** Workshop Bay ID */\n workshopBayId?: number;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Workshop User ID */\n workshopUserId?: string;\n /** Customer Company ID */\n customerCompanyId?: number;\n /** Vehicle ID */\n vehicleId?: number;\n /** Vehicle VIN */\n vin?: string;\n /** Full object for appointment or only planning (lite) view */\n view?: 'lite' | 'full' | 'planning' | 'agenda' | 'workfile' | 'kanban-day' | 'kanban-week' | 'bay' | 'mobile';\n /** status to be displayed */\n currentStatus?: string;\n /** type of report to be displayed */\n report?: string;\n /** Retrieve all activities deferred and not, or not deferred activities if null */\n withDeferred?: boolean;\n /** Retrieve all appointments on hold */\n onHold?: boolean;\n filterBy?: string;\n filterValue?: string;\n appointmentPriority?: string;\n dmsOrderType?: string;\n /** Unit status */\n unitStatus?: boolean;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TechService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get technician clocking\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTechnicianClocking(requestParameters: GetTechnicianClockingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTechnicianClocking(requestParameters: GetTechnicianClockingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTechnicianClocking(requestParameters: GetTechnicianClockingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTechnicianClocking(requestParameters: GetTechnicianClockingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n if (startDate === null || startDate === undefined) {\n throw new Error('Required parameter startDate was null or undefined when calling getTechnicianClocking.');\n }\n const endDate = requestParameters.endDate;\n if (endDate === null || endDate === undefined) {\n throw new Error('Required parameter endDate was null or undefined when calling getTechnicianClocking.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/technician-activity/clocking`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get technician clocking summary on workfile page\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTechnicianClockingSummary(requestParameters: GetTechnicianClockingSummaryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTechnicianClockingSummary(requestParameters: GetTechnicianClockingSummaryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTechnicianClockingSummary(requestParameters: GetTechnicianClockingSummaryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTechnicianClockingSummary(requestParameters: GetTechnicianClockingSummaryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const workshopBayId = requestParameters.workshopBayId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const view = requestParameters.view;\n const currentStatus = requestParameters.currentStatus;\n const report = requestParameters.report;\n const withDeferred = requestParameters.withDeferred;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const appointmentPriority = requestParameters.appointmentPriority;\n const dmsOrderType = requestParameters.dmsOrderType;\n const unitStatus = requestParameters.unitStatus;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (report !== undefined && report !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n report, 'report');\n }\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (appointmentPriority !== undefined && appointmentPriority !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentPriority, 'appointmentPriority');\n }\n if (dmsOrderType !== undefined && dmsOrderType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsOrderType, 'dmsOrderType');\n }\n if (unitStatus !== undefined && unitStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n unitStatus, 'unitStatus');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/technician-activity/clockingsummary`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get an clocking summary excel\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTechnicianClockingSummaryExcel(requestParameters: GetTechnicianClockingSummaryExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable;\n public getTechnicianClockingSummaryExcel(requestParameters: GetTechnicianClockingSummaryExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable>;\n public getTechnicianClockingSummaryExcel(requestParameters: GetTechnicianClockingSummaryExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable>;\n public getTechnicianClockingSummaryExcel(requestParameters: GetTechnicianClockingSummaryExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}): Observable {\n const workshopId = requestParameters.workshopId;\n const dmsJobOrder = requestParameters.dmsJobOrder;\n const workshopBayId = requestParameters.workshopBayId;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const workshopUserId = requestParameters.workshopUserId;\n const customerCompanyId = requestParameters.customerCompanyId;\n const vehicleId = requestParameters.vehicleId;\n const vin = requestParameters.vin;\n const view = requestParameters.view;\n const currentStatus = requestParameters.currentStatus;\n const report = requestParameters.report;\n const withDeferred = requestParameters.withDeferred;\n const onHold = requestParameters.onHold;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const appointmentPriority = requestParameters.appointmentPriority;\n const dmsOrderType = requestParameters.dmsOrderType;\n const unitStatus = requestParameters.unitStatus;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (dmsJobOrder !== undefined && dmsJobOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsJobOrder, 'dmsJobOrder');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n if (workshopUserId !== undefined && workshopUserId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopUserId, 'workshopUserId');\n }\n if (customerCompanyId !== undefined && customerCompanyId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerCompanyId, 'customerCompanyId');\n }\n if (vehicleId !== undefined && vehicleId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vehicleId, 'vehicleId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (currentStatus !== undefined && currentStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n currentStatus, 'currentStatus');\n }\n if (report !== undefined && report !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n report, 'report');\n }\n if (withDeferred !== undefined && withDeferred !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n withDeferred, 'withDeferred');\n }\n if (onHold !== undefined && onHold !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n onHold, 'onHold');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (appointmentPriority !== undefined && appointmentPriority !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentPriority, 'appointmentPriority');\n }\n if (dmsOrderType !== undefined && dmsOrderType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n dmsOrderType, 'dmsOrderType');\n }\n if (unitStatus !== undefined && unitStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n unitStatus, 'unitStatus');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/technician-activity/clockingsummary-excel`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { WorkshopUserUnavailability } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddUnavailabilityRequestParams {\n /** Workshop user ID. */\n id: string;\n workshopUserUnavailability?: WorkshopUserUnavailability;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteUnavailabilityRequestParams {\n /** Workshop user ID. */\n id: string;\n /** Unavailability ID. */\n unavailabilityId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface EditUnavailabilityRequestParams {\n /** Workshop user ID. */\n id: string;\n /** Unavailability ID. */\n unavailabilityId: number;\n workshopUserUnavailability?: WorkshopUserUnavailability;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetUnavailabilitiesRequestParams {\n /** Workshop user ID. */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UnavailabilitiesService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Add an unavailability.\n * Add an unavailability\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addUnavailability(requestParameters: AddUnavailabilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addUnavailability(requestParameters: AddUnavailabilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addUnavailability(requestParameters: AddUnavailabilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addUnavailability(requestParameters: AddUnavailabilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling addUnavailability.');\n }\n const workshopUserUnavailability = requestParameters.workshopUserUnavailability;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshop-users/${encodeURIComponent(String(id))}/unavailabilities`,\n workshopUserUnavailability,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete an unavailability\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteUnavailability(requestParameters: DeleteUnavailabilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteUnavailability(requestParameters: DeleteUnavailabilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteUnavailability(requestParameters: DeleteUnavailabilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteUnavailability(requestParameters: DeleteUnavailabilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteUnavailability.');\n }\n const unavailabilityId = requestParameters.unavailabilityId;\n if (unavailabilityId === null || unavailabilityId === undefined) {\n throw new Error('Required parameter unavailabilityId was null or undefined when calling deleteUnavailability.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshop-users/${encodeURIComponent(String(id))}/unavailabilities/${encodeURIComponent(String(unavailabilityId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Edit an unavailability.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public editUnavailability(requestParameters: EditUnavailabilityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public editUnavailability(requestParameters: EditUnavailabilityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editUnavailability(requestParameters: EditUnavailabilityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public editUnavailability(requestParameters: EditUnavailabilityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling editUnavailability.');\n }\n const unavailabilityId = requestParameters.unavailabilityId;\n if (unavailabilityId === null || unavailabilityId === undefined) {\n throw new Error('Required parameter unavailabilityId was null or undefined when calling editUnavailability.');\n }\n const workshopUserUnavailability = requestParameters.workshopUserUnavailability;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshop-users/${encodeURIComponent(String(id))}/unavailabilities/${encodeURIComponent(String(unavailabilityId))}`,\n workshopUserUnavailability,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all Unavailabilities\n * Get all Unavailabilities\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUnavailabilities(requestParameters: GetUnavailabilitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUnavailabilities(requestParameters: GetUnavailabilitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUnavailabilities(requestParameters: GetUnavailabilitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUnavailabilities(requestParameters: GetUnavailabilitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getUnavailabilities.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshop-users/${encodeURIComponent(String(id))}/unavailabilities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { UserGuide } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetUserGuideByLanguageRequestParams {\n /** User Language. */\n lang: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserGuidesService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get User Guide in particular language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserGuideByLanguage(requestParameters: GetUserGuideByLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const lang = requestParameters.lang;\n if (lang === null || lang === undefined) {\n throw new Error('Required parameter lang was null or undefined when calling getUserGuideByLanguage.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/user-guide/${encodeURIComponent(String(lang))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Vehicle } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateVehicleRequestParams {\n vehicle?: Vehicle;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetMachinesReportRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleByIdRequestParams {\n /** Vehicle ID to retrieve */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleByVinRequestParams {\n /** Vehicle ID to retrieve */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehiclesRequestParams {\n /** customer ID of the vehicle to get */\n customerId?: number;\n /** customer ID of the vehicle to get */\n isAdmin?: boolean;\n /** workshop ID of the vehicle to get */\n workshopId?: number;\n /** brand ID of the vehicle to get */\n brandId?: number;\n /** model ID of the vehicle to get */\n modelId?: number;\n /** part of the plate of the vehicle to get */\n plate?: string;\n /** part of the vin of the vehicle to get */\n vin?: string;\n /** part of the StockNumber of the vehicle to get */\n stockNumber?: string;\n view?: 'lite' | 'booking' | 'searchVehicleModal';\n filterBy?: string;\n filterValue?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveVehicleByVinRequestParams {\n /** vehicle id */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateVehicleByVinRequestParams {\n /** Vehicle id */\n id: number;\n vehicle?: Vehicle;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a vehicle\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createVehicle(requestParameters: CreateVehicleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createVehicle(requestParameters: CreateVehicleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createVehicle(requestParameters: CreateVehicleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createVehicle(requestParameters: CreateVehicleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vehicle = requestParameters.vehicle;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/vehicles`,\n vehicle,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the machine details report\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMachinesReport(requestParameters?: GetMachinesReportRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable;\n public getMachinesReport(requestParameters?: GetMachinesReportRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getMachinesReport(requestParameters?: GetMachinesReportRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable>;\n public getMachinesReport(requestParameters?: GetMachinesReportRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/vnd.ms-excel' | 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/vnd.ms-excel',\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n return this.httpClient.get(`${this.configuration.basePath}/machines-report`,\n {\n params: queryParameters,\n responseType: \"blob\",\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Find a vehicle by its ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleById(requestParameters: GetVehicleByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVehicleById(requestParameters: GetVehicleByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleById(requestParameters: GetVehicleByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleById(requestParameters: GetVehicleByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getVehicleById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/vehicles/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Find a vehicle by its VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleByVin(requestParameters: GetVehicleByVinRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVehicleByVin(requestParameters: GetVehicleByVinRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleByVin(requestParameters: GetVehicleByVinRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleByVin(requestParameters: GetVehicleByVinRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getVehicleByVin.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/vehicleByVin/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all vehicles for a customer company or a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehicles(requestParameters: GetVehiclesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const customerId = requestParameters.customerId;\n const isAdmin = requestParameters.isAdmin;\n const workshopId = requestParameters.workshopId;\n const brandId = requestParameters.brandId;\n const modelId = requestParameters.modelId;\n const plate = requestParameters.plate;\n const vin = requestParameters.vin;\n const stockNumber = requestParameters.stockNumber;\n const view = requestParameters.view;\n const filterBy = requestParameters.filterBy;\n const filterValue = requestParameters.filterValue;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (customerId !== undefined && customerId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n customerId, 'customerId');\n }\n if (isAdmin !== undefined && isAdmin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isAdmin, 'isAdmin');\n }\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (brandId !== undefined && brandId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n brandId, 'brandId');\n }\n if (modelId !== undefined && modelId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n modelId, 'modelId');\n }\n if (plate !== undefined && plate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n plate, 'plate');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (stockNumber !== undefined && stockNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n stockNumber, 'stockNumber');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (filterBy !== undefined && filterBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterBy, 'filterBy');\n }\n if (filterValue !== undefined && filterValue !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n filterValue, 'filterValue');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/vehicles`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Remove a vehicle by his vin\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeVehicleByVin(requestParameters: RemoveVehicleByVinRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public removeVehicleByVin(requestParameters: RemoveVehicleByVinRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeVehicleByVin(requestParameters: RemoveVehicleByVinRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeVehicleByVin(requestParameters: RemoveVehicleByVinRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeVehicleByVin.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/vehicles/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a vehicle by using vehicle id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateVehicleByVin(requestParameters: UpdateVehicleByVinRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateVehicleByVin(requestParameters: UpdateVehicleByVinRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateVehicleByVin(requestParameters: UpdateVehicleByVinRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateVehicleByVin(requestParameters: UpdateVehicleByVinRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateVehicleByVin.');\n }\n const vehicle = requestParameters.vehicle;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/vehicles/${encodeURIComponent(String(id))}`,\n vehicle,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { VehicleCourtesy } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateCourtesyVehicleRequestParams {\n vehicleCourtesy?: VehicleCourtesy;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehiclesCourtesyRequestParams {\n /** workshop ID of the workshop to get */\n workshopId?: number;\n /** Full object for appointment or only planning (lite) view */\n view?: 'lite' | 'full' | 'planning' | 'workfile' | 'kanban-day' | 'kanban-week';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface RemoveVehicleCourtesyByIdRequestParams {\n /** vehicle id */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateVehicleCourtesyByIdRequestParams {\n /** Courtesy Vehicle id */\n id: number;\n vehicleCourtesy?: VehicleCourtesy;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleCourtesyService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a courtesy vehicle\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createCourtesyVehicle(requestParameters: CreateCourtesyVehicleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createCourtesyVehicle(requestParameters: CreateCourtesyVehicleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createCourtesyVehicle(requestParameters: CreateCourtesyVehicleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createCourtesyVehicle(requestParameters: CreateCourtesyVehicleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vehicleCourtesy = requestParameters.vehicleCourtesy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/vehicles-courtesy`,\n vehicleCourtesy,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all courtesy vehicles for a customer company or a workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getVehiclesCourtesy(requestParameters: GetVehiclesCourtesyRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const view = requestParameters.view;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/vehicles-courtesy`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a Courtesy Vehicle by its ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public removeVehicleCourtesyById(requestParameters: RemoveVehicleCourtesyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public removeVehicleCourtesyById(requestParameters: RemoveVehicleCourtesyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeVehicleCourtesyById(requestParameters: RemoveVehicleCourtesyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public removeVehicleCourtesyById(requestParameters: RemoveVehicleCourtesyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling removeVehicleCourtesyById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/vehicles-courtesy/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a courtesy vehicle by his id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateVehicleCourtesyById(requestParameters: UpdateVehicleCourtesyByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateVehicleCourtesyById(requestParameters: UpdateVehicleCourtesyByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateVehicleCourtesyById(requestParameters: UpdateVehicleCourtesyByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateVehicleCourtesyById(requestParameters: UpdateVehicleCourtesyByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateVehicleCourtesyById.');\n }\n const vehicleCourtesy = requestParameters.vehicleCourtesy;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/vehicles-courtesy/${encodeURIComponent(String(id))}`,\n vehicleCourtesy,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { VehicleCourtesyBooking } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateBookingRequestParams {\n vehicleCourtesyBooking?: VehicleCourtesyBooking;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteCourtesyVehicleRequestParams {\n /** Courtesy Vehicle booking ID */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetBookingsRequestParams {\n /** Start Date to retrieve the courtesy vehicle booking details */\n startDate?: string;\n /** End Date to retrieve the courtesy vehicle booking details */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateCourtesyVehicleRequestParams {\n /** Courtesy vehicle booking ID. */\n id: number;\n vehicleCourtesyBooking?: VehicleCourtesyBooking;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VehicleCourtesyBookingService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * To book courtesy vehicle without appointments.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createBooking(requestParameters: CreateBookingRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createBooking(requestParameters: CreateBookingRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createBooking(requestParameters: CreateBookingRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createBooking(requestParameters: CreateBookingRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vehicleCourtesyBooking = requestParameters.vehicleCourtesyBooking;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/vehicles-courtesy-booking`,\n vehicleCourtesyBooking,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Remove a courtesy vehicle\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteCourtesyVehicle(requestParameters: DeleteCourtesyVehicleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deleteCourtesyVehicle(requestParameters: DeleteCourtesyVehicleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteCourtesyVehicle(requestParameters: DeleteCourtesyVehicleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteCourtesyVehicle(requestParameters: DeleteCourtesyVehicleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteCourtesyVehicle.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/vehicles-courtesy-booking/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all courtesy vehicles bookings\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBookings(requestParameters: GetBookingsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getBookings(requestParameters: GetBookingsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBookings(requestParameters: GetBookingsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getBookings(requestParameters: GetBookingsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/vehicles-courtesy-booking/cv/bookings`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a courtesy vehicle booking\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateCourtesyVehicle(requestParameters: UpdateCourtesyVehicleRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateCourtesyVehicle(requestParameters: UpdateCourtesyVehicleRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCourtesyVehicle(requestParameters: UpdateCourtesyVehicleRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateCourtesyVehicle(requestParameters: UpdateCourtesyVehicleRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateCourtesyVehicle.');\n }\n const vehicleCourtesyBooking = requestParameters.vehicleCourtesyBooking;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/vehicles-courtesy-booking/${encodeURIComponent(String(id))}`,\n vehicleCourtesyBooking,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { WarrantyType } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetWarrantyTypesRequestParams {\n /** User Language. */\n language: string;\n /** User Region. */\n region: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WarrantyTypesService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * get the warranty types for the given language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWarrantyTypes(requestParameters: GetWarrantyTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWarrantyTypes(requestParameters: GetWarrantyTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWarrantyTypes(requestParameters: GetWarrantyTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWarrantyTypes(requestParameters: GetWarrantyTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const language = requestParameters.language;\n if (language === null || language === undefined) {\n throw new Error('Required parameter language was null or undefined when calling getWarrantyTypes.');\n }\n const region = requestParameters.region;\n if (region === null || region === undefined) {\n throw new Error('Required parameter region was null or undefined when calling getWarrantyTypes.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (language !== undefined && language !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n language, 'language');\n }\n if (region !== undefined && region !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n region, 'region');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/warranty-type`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { ResultDto } from '../model/models';\nimport { Workshop } from '../model/models';\nimport { WorkshopEnabled } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddWorkshopRequestParams {\n workshop?: Workshop;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface CountOfLatestDmsErrorRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteWorkshopRequestParams {\n /** Workshop ID. */\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetStatsDmsWorkshopsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopByIdRequestParams {\n /** Workshop ID. */\n workshopId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopDealerClaimNumberRequestParams {\n /** Jobcard ID on which we want to claim. */\n jobcardId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopsRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface IsWorkshopEnabledRequestParams {\n /** Workshop SAP code. */\n workshopSapCode: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopRequestParams {\n /** Workshop ID. */\n workshopId: number;\n workshop?: Workshop;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a new workshop.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addWorkshop(requestParameters: AddWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addWorkshop(requestParameters: AddWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addWorkshop(requestParameters: AddWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addWorkshop(requestParameters: AddWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshop = requestParameters.workshop;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshops`,\n workshop,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Count of all latest dms errors of appointment\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public countOfLatestDmsError(requestParameters?: CountOfLatestDmsErrorRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public countOfLatestDmsError(requestParameters?: CountOfLatestDmsErrorRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public countOfLatestDmsError(requestParameters?: CountOfLatestDmsErrorRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public countOfLatestDmsError(requestParameters?: CountOfLatestDmsErrorRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/dms-error-count`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a workshop by its ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteWorkshop(requestParameters: DeleteWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteWorkshop(requestParameters: DeleteWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteWorkshop(requestParameters: DeleteWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteWorkshop(requestParameters: DeleteWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteWorkshop.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all workshops linked to DMS.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getStatsDmsWorkshops(requestParameters?: GetStatsDmsWorkshopsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getStatsDmsWorkshops(requestParameters?: GetStatsDmsWorkshopsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsDmsWorkshops(requestParameters?: GetStatsDmsWorkshopsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getStatsDmsWorkshops(requestParameters?: GetStatsDmsWorkshopsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/dms-workshop`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get a workshop by its ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopById(requestParameters: GetWorkshopByIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling getWorkshopById.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get next dealer claim number for the workshop.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopDealerClaimNumber(requestParameters: GetWorkshopDealerClaimNumberRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWorkshopDealerClaimNumber(requestParameters: GetWorkshopDealerClaimNumberRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopDealerClaimNumber(requestParameters: GetWorkshopDealerClaimNumberRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopDealerClaimNumber(requestParameters: GetWorkshopDealerClaimNumberRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardId = requestParameters.jobcardId;\n if (jobcardId === null || jobcardId === undefined) {\n throw new Error('Required parameter jobcardId was null or undefined when calling getWorkshopDealerClaimNumber.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (jobcardId !== undefined && jobcardId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n jobcardId, 'jobcardId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/dealerClaimNumber`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all workshops.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshops(requestParameters?: GetWorkshopsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshops(requestParameters?: GetWorkshopsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshops(requestParameters?: GetWorkshopsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshops(requestParameters?: GetWorkshopsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshops`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get if a workshop is enabled for users by its SAP code.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public isWorkshopEnabled(requestParameters: IsWorkshopEnabledRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public isWorkshopEnabled(requestParameters: IsWorkshopEnabledRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isWorkshopEnabled(requestParameters: IsWorkshopEnabledRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public isWorkshopEnabled(requestParameters: IsWorkshopEnabledRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopSapCode = requestParameters.workshopSapCode;\n if (workshopSapCode === null || workshopSapCode === undefined) {\n throw new Error('Required parameter workshopSapCode was null or undefined when calling isWorkshopEnabled.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopSapCode))}/enabled`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Modify a workshop by its ID.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshop(requestParameters: UpdateWorkshopRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshop(requestParameters: UpdateWorkshopRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshop(requestParameters: UpdateWorkshopRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshop(requestParameters: UpdateWorkshopRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling updateWorkshop.');\n }\n const workshop = requestParameters.workshop;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshops/${encodeURIComponent(String(workshopId))}`,\n workshop,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { WorkshopBay } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface AddWorkshopBayByWorkshopIdRequestParams {\n /** Workshop ID of the workshop user to get */\n workshopId: number;\n workshopBay?: WorkshopBay;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteWorkshopBayRequestParams {\n /** Workshop Bay ID. */\n id: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopbaysRequestParams {\n /** Retrieve the active Workshop Bay, or hidden workshop bay, or all if null */\n isActive?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopBayRequestParams {\n /** Workshop Bay ID. */\n id: number;\n workshopBay?: WorkshopBay;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopBaysRequestParams {\n workshopBay?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopBayService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a workshop bay\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addWorkshopBayByWorkshopId(requestParameters: AddWorkshopBayByWorkshopIdRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addWorkshopBayByWorkshopId(requestParameters: AddWorkshopBayByWorkshopIdRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addWorkshopBayByWorkshopId(requestParameters: AddWorkshopBayByWorkshopIdRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addWorkshopBayByWorkshopId(requestParameters: AddWorkshopBayByWorkshopIdRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling addWorkshopBayByWorkshopId.');\n }\n const workshopBay = requestParameters.workshopBay;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshop-bays`,\n workshopBay,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Remove a workshop bay from workshop.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteWorkshopBay(requestParameters: DeleteWorkshopBayRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public deleteWorkshopBay(requestParameters: DeleteWorkshopBayRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteWorkshopBay(requestParameters: DeleteWorkshopBayRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public deleteWorkshopBay(requestParameters: DeleteWorkshopBayRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteWorkshopBay.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshop-bays/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all bays of the workshop\n * Get all bays of the workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopbays(requestParameters: GetWorkshopbaysRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopbays(requestParameters: GetWorkshopbaysRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopbays(requestParameters: GetWorkshopbaysRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopbays(requestParameters: GetWorkshopbaysRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const isActive = requestParameters.isActive;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isActive !== undefined && isActive !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isActive, 'isActive');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshop-bays`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a workshop bay\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopBay(requestParameters: UpdateWorkshopBayRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopBay(requestParameters: UpdateWorkshopBayRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopBay(requestParameters: UpdateWorkshopBayRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopBay(requestParameters: UpdateWorkshopBayRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateWorkshopBay.');\n }\n const workshopBay = requestParameters.workshopBay;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshop-bays/${encodeURIComponent(String(id))}`,\n workshopBay,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update workshop bay\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopBays(requestParameters: UpdateWorkshopBaysRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopBays(requestParameters: UpdateWorkshopBaysRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateWorkshopBays(requestParameters: UpdateWorkshopBaysRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateWorkshopBays(requestParameters: UpdateWorkshopBaysRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopBay = requestParameters.workshopBay;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/workshop-bays`,\n workshopBay,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { WorkshopUser } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateWorkshopUserRequestParams {\n workshopUser?: WorkshopUser;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAllWorkshopUserRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetServiceAdvisorRequestParams {\n /** Workshop user ID. */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUserRequestParams {\n /** Workshop user ID. */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUserAdminRequestParams {\n /** Workshop user ID. */\n id: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUsersRequestParams {\n /** Workshop ID of the workshop user to get */\n workshopId?: number;\n /** Workshop Bay ID */\n workshopBayId?: number;\n /** Role name of the workshop users to get */\n role?: string;\n /** Role Abbrev of the workshop users to get */\n roleAbbrev?: string;\n /** View Parameter */\n view?: string;\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopUsersAvailabilitiesRequestParams {\n /** Start Date to retrieve the appointments */\n startDate?: string;\n /** End Date to retrieve the appointments */\n endDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUserRequestParams {\n /** Workshop user ID. */\n id: string;\n workshopUser?: WorkshopUser;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUserAppVersionRequestParams {\n /** Workshop user app version */\n appVersion?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUserDeviceTokenRequestParams {\n /** Workshop user device token */\n deviceToken?: string;\n workshopUser?: WorkshopUser;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopUsersRequestParams {\n workshopUser?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopUserService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create Workshop User\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createWorkshopUser(requestParameters: CreateWorkshopUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createWorkshopUser(requestParameters: CreateWorkshopUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWorkshopUser(requestParameters: CreateWorkshopUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWorkshopUser(requestParameters: CreateWorkshopUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopUser = requestParameters.workshopUser;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/stats/admin-updateworkshopuser`,\n workshopUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all workshopusers.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllWorkshopUser(requestParameters?: GetAllWorkshopUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllWorkshopUser(requestParameters?: GetAllWorkshopUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllWorkshopUser(requestParameters?: GetAllWorkshopUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllWorkshopUser(requestParameters?: GetAllWorkshopUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/stats/admin-workshopuser`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get workshop User By his ID\n * Get workshop User By his ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getServiceAdvisor(requestParameters: GetServiceAdvisorRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getServiceAdvisor(requestParameters: GetServiceAdvisorRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getServiceAdvisor(requestParameters: GetServiceAdvisorRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getServiceAdvisor(requestParameters: GetServiceAdvisorRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getServiceAdvisor.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/service-advisor/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get workshop User By his ID\n * Get workshop User By his ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUser(requestParameters: GetWorkshopUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getWorkshopUser.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshop-users/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get workshop User By his ID\n * Get workshop User By his ID\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUserAdmin(requestParameters: GetWorkshopUserAdminRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWorkshopUserAdmin(requestParameters: GetWorkshopUserAdminRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUserAdmin(requestParameters: GetWorkshopUserAdminRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUserAdmin(requestParameters: GetWorkshopUserAdminRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getWorkshopUserAdmin.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/workshop-users/admin/${encodeURIComponent(String(id))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all users of the workshop\n * Get all users of the workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsers(requestParameters: GetWorkshopUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n const workshopBayId = requestParameters.workshopBayId;\n const role = requestParameters.role;\n const roleAbbrev = requestParameters.roleAbbrev;\n const view = requestParameters.view;\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (workshopBayId !== undefined && workshopBayId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopBayId, 'workshopBayId');\n }\n if (role !== undefined && role !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n role, 'role');\n }\n if (roleAbbrev !== undefined && roleAbbrev !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n roleAbbrev, 'roleAbbrev');\n }\n if (view !== undefined && view !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n view, 'view');\n }\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshop-users`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all users availabilities of the workshop\n * Get all users availabilities of the workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopUsersAvailabilities(requestParameters: GetWorkshopUsersAvailabilitiesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const startDate = requestParameters.startDate;\n const endDate = requestParameters.endDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshop-users-availabilities`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a workshop user by his id\n * Update a workshop user by his id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUser(requestParameters: UpdateWorkshopUserRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const id = requestParameters.id;\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateWorkshopUser.');\n }\n const workshopUser = requestParameters.workshopUser;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshop-users/${encodeURIComponent(String(id))}`,\n workshopUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a workshop user app version by his id\n * Update a workshop user app version by his id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUserAppVersion(requestParameters: UpdateWorkshopUserAppVersionRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopUserAppVersion(requestParameters: UpdateWorkshopUserAppVersionRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUserAppVersion(requestParameters: UpdateWorkshopUserAppVersionRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUserAppVersion(requestParameters: UpdateWorkshopUserAppVersionRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const appVersion = requestParameters.appVersion;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (appVersion !== undefined && appVersion !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appVersion, 'appVersion');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshop-users/app-version`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update a workshop user device token by his id\n * Update a workshop user device token by his id\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUserDeviceToken(requestParameters: UpdateWorkshopUserDeviceTokenRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopUserDeviceToken(requestParameters: UpdateWorkshopUserDeviceTokenRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUserDeviceToken(requestParameters: UpdateWorkshopUserDeviceTokenRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUserDeviceToken(requestParameters: UpdateWorkshopUserDeviceTokenRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const deviceToken = requestParameters.deviceToken;\n const workshopUser = requestParameters.workshopUser;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (deviceToken !== undefined && deviceToken !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n deviceToken, 'deviceToken');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshop-users/device-token`,\n workshopUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update workshop\n * Update workshop users\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopUsers(requestParameters: UpdateWorkshopUsersRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopUsers(requestParameters: UpdateWorkshopUsersRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateWorkshopUsers(requestParameters: UpdateWorkshopUsersRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateWorkshopUsers(requestParameters: UpdateWorkshopUsersRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopUser = requestParameters.workshopUser;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/workshop-users`,\n workshopUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { WorkshopChecklistType } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface CreateWorkshopChecklistTypeRequestParams {\n workshopChecklistType?: WorkshopChecklistType;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface DeleteWorkshopChecklistTypeRequestParams {\n /** Workshop ID. */\n workshopId: number;\n /** Workshop ID. */\n checklistTypeId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWorkshopChecklistTypesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateWorkshopChecklistTypeRequestParams {\n workshopChecklistType?: WorkshopChecklistType;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkshopUserChecklistTypesService {\n\n protected basePath = 'http://localhost/jobcard-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Create a new checklist type for a specific workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createWorkshopChecklistType(requestParameters: CreateWorkshopChecklistTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public createWorkshopChecklistType(requestParameters: CreateWorkshopChecklistTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWorkshopChecklistType(requestParameters: CreateWorkshopChecklistTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public createWorkshopChecklistType(requestParameters: CreateWorkshopChecklistTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopChecklistType = requestParameters.workshopChecklistType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/workshopChecklistTypes`,\n workshopChecklistType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete an existing checklist type for a specific workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteWorkshopChecklistType(requestParameters: DeleteWorkshopChecklistTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteWorkshopChecklistType(requestParameters: DeleteWorkshopChecklistTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteWorkshopChecklistType(requestParameters: DeleteWorkshopChecklistTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteWorkshopChecklistType(requestParameters: DeleteWorkshopChecklistTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopId = requestParameters.workshopId;\n if (workshopId === null || workshopId === undefined) {\n throw new Error('Required parameter workshopId was null or undefined when calling deleteWorkshopChecklistType.');\n }\n const checklistTypeId = requestParameters.checklistTypeId;\n if (checklistTypeId === null || checklistTypeId === undefined) {\n throw new Error('Required parameter checklistTypeId was null or undefined when calling deleteWorkshopChecklistType.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (workshopId !== undefined && workshopId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n workshopId, 'workshopId');\n }\n if (checklistTypeId !== undefined && checklistTypeId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n checklistTypeId, 'checklistTypeId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/workshopChecklistTypes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get all checklist types for a specific workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWorkshopChecklistTypes(requestParameters?: GetWorkshopChecklistTypesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWorkshopChecklistTypes(requestParameters?: GetWorkshopChecklistTypesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopChecklistTypes(requestParameters?: GetWorkshopChecklistTypesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWorkshopChecklistTypes(requestParameters?: GetWorkshopChecklistTypesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/workshopChecklistTypes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update an existing checklist type for a specific workshop\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWorkshopChecklistType(requestParameters: UpdateWorkshopChecklistTypeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWorkshopChecklistType(requestParameters: UpdateWorkshopChecklistTypeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopChecklistType(requestParameters: UpdateWorkshopChecklistTypeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWorkshopChecklistType(requestParameters: UpdateWorkshopChecklistTypeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const workshopChecklistType = requestParameters.workshopChecklistType;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/workshopChecklistTypes`,\n workshopChecklistType,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Activity report\n */\nexport interface ActivityReport { \n workshopBayIds?: Array;\n workshopUserId?: string;\n hoursPaid?: number;\n hoursAvailable?: number;\n hoursPlanned?: number;\n hoursBooked?: number;\n nbActivities?: number;\n nonProdActivity?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ActivityReport } from './activityReport';\n\n\n/**\n * Activity report\n */\nexport interface ActivityReportDay { \n day?: string;\n reports?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * List of travels associated to an activity to claim\n */\nexport interface ActivityTravelList { \n itemId?: number;\n travelList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ActivityValidated { \n ids?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ApiError { \n code: number;\n message: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Response for appt open/close on DMS.\n */\nexport interface ApiResponseDto { \n code?: string;\n description?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PriorityType } from './priorityType';\nimport { OnHoldReason } from './onHoldReason';\nimport { AppointmentUnitStatus } from './appointmentUnitStatus';\nimport { CustomerCompany } from './customerCompany';\nimport { Jobcard } from './jobcard';\nimport { CpdContactDetails } from './cpdContactDetails';\nimport { ChecklistDamage } from './checklistDamage';\nimport { AppointmentStatus } from './appointmentStatus';\nimport { VehicleCourtesy } from './vehicleCourtesy';\nimport { CustomerCompanyUser } from './customerCompanyUser';\nimport { EpartsPart } from './epartsPart';\nimport { JobcardTravel } from './jobcardTravel';\nimport { Vehicle } from './vehicle';\nimport { ChecklistInstance } from './checklistInstance';\nimport { VehicleCourtesyBooking } from './vehicleCourtesyBooking';\nimport { AppointmentIuDocument } from './appointmentIuDocument';\n\n\nexport interface Appointment { \n id: number;\n workshopId?: number;\n workshopBayId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n repairAddress?: string;\n types?: Array;\n mileage?: number;\n engineHours?: number;\n failureEngineHours?: number;\n receptionDate?: string;\n deliveryDate?: string;\n repairCompletionDate?: string;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n plannedDeliveryDate?: string;\n dmsCreationDate?: string;\n jobcard?: Jobcard;\n customerCompany?: CustomerCompany;\n vehicle?: Vehicle;\n vehicleCourtesy?: VehicleCourtesy;\n status?: AppointmentStatus;\n unitStatus?: AppointmentUnitStatus;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n /**\n * List of attached checklists\n */\n checklistInstances?: Array;\n checklistDamages?: Array;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUser;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReason;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n orderTypeHeaderCode?: number;\n vehicleCourtesyBookingDto?: VehicleCourtesyBooking;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n ManuallyUnits?: Appointment.ManuallyUnitsEnum;\n travels?: Array;\n currentAppointmentstatus?: AppointmentStatus;\n cpdAlternateContact?: CpdContactDetails;\n cpdContactDetails?: CpdContactDetails;\n epartsParts?: Array;\n dmsLogError?: boolean;\n appointmentPriority?: string;\n priorityType?: PriorityType;\n currentStatus?: Appointment.CurrentStatusEnum;\n iuDocuments?: Array;\n customerPaymentMode?: string;\n}\nexport namespace Appointment {\n export type ManuallyUnitsEnum = 'numberOfBales' | 'numberOfAcres' | 'threshingHours' | 'mileage' | 'engineHours';\n export const ManuallyUnitsEnum = {\n NumberOfBales: 'numberOfBales' as ManuallyUnitsEnum,\n NumberOfAcres: 'numberOfAcres' as ManuallyUnitsEnum,\n ThreshingHours: 'threshingHours' as ManuallyUnitsEnum,\n Mileage: 'mileage' as ManuallyUnitsEnum,\n EngineHours: 'engineHours' as ManuallyUnitsEnum\n };\n export type CurrentStatusEnum = 'new' | 'draft' | 'schedule' | 'appointmentPrepared' | 'received' | 'reparing' | 'serviceAdvisorValidationPending' | 'clientValidationPending' | 'warrantyValidationPending' | 'sentBackError' | 'workfileValidated' | 'delivered' | 'jobcardFinalised' | 'cancelled';\n export const CurrentStatusEnum = {\n New: 'new' as CurrentStatusEnum,\n Draft: 'draft' as CurrentStatusEnum,\n Schedule: 'schedule' as CurrentStatusEnum,\n AppointmentPrepared: 'appointmentPrepared' as CurrentStatusEnum,\n Received: 'received' as CurrentStatusEnum,\n Reparing: 'reparing' as CurrentStatusEnum,\n ServiceAdvisorValidationPending: 'serviceAdvisorValidationPending' as CurrentStatusEnum,\n ClientValidationPending: 'clientValidationPending' as CurrentStatusEnum,\n WarrantyValidationPending: 'warrantyValidationPending' as CurrentStatusEnum,\n SentBackError: 'sentBackError' as CurrentStatusEnum,\n WorkfileValidated: 'workfileValidated' as CurrentStatusEnum,\n Delivered: 'delivered' as CurrentStatusEnum,\n JobcardFinalised: 'jobcardFinalised' as CurrentStatusEnum,\n Cancelled: 'cancelled' as CurrentStatusEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * IU or SRT associated to an appointment.\n */\nexport interface AppointmentIuDocument { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n vin?: string;\n appointmentId?: number;\n selected?: boolean;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentNotification { \n sentDate?: string;\n body?: string;\n notificationTitle?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignature { \n id: number;\n url?: string;\n phase?: AppointmentSignature.PhaseEnum;\n appointmentId?: number;\n checklistInstanceId?: number;\n customerCompanyUserId?: number;\n /**\n * creation time.\n */\n time?: string;\n secretKey?: string;\n secretIV?: string;\n customerNotPresent?: boolean;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n}\nexport namespace AppointmentSignature {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentSignature } from './appointmentSignature';\n\n\nexport interface AppointmentSignatureFile { \n appointmentSignature?: AppointmentSignature;\n signatureFile?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface AppointmentStatus { \n id: number;\n time?: string;\n status?: AppointmentStatus.StatusEnum;\n reason?: AppointmentStatus.ReasonEnum;\n customerCompanyUser?: CustomerCompanyUser;\n workshopUser?: WorkshopUser;\n}\nexport namespace AppointmentStatus {\n export type StatusEnum = 'new' | 'draft' | 'schedule' | 'appointmentPrepared' | 'received' | 'reparing' | 'serviceAdvisorValidationPending' | 'clientValidationPending' | 'warrantyValidationPending' | 'sentBackError' | 'workfileValidated' | 'delivered' | 'jobcardFinalised' | 'cancelled';\n export const StatusEnum = {\n New: 'new' as StatusEnum,\n Draft: 'draft' as StatusEnum,\n Schedule: 'schedule' as StatusEnum,\n AppointmentPrepared: 'appointmentPrepared' as StatusEnum,\n Received: 'received' as StatusEnum,\n Reparing: 'reparing' as StatusEnum,\n ServiceAdvisorValidationPending: 'serviceAdvisorValidationPending' as StatusEnum,\n ClientValidationPending: 'clientValidationPending' as StatusEnum,\n WarrantyValidationPending: 'warrantyValidationPending' as StatusEnum,\n SentBackError: 'sentBackError' as StatusEnum,\n WorkfileValidated: 'workfileValidated' as StatusEnum,\n Delivered: 'delivered' as StatusEnum,\n JobcardFinalised: 'jobcardFinalised' as StatusEnum,\n Cancelled: 'cancelled' as StatusEnum\n };\n export type ReasonEnum = 'customerAdvised' | 'slotNotAvailable' | 'partNotAvailable' | 'repairCarriedOut' | 'repairAnotherBooking' | 'other';\n export const ReasonEnum = {\n CustomerAdvised: 'customerAdvised' as ReasonEnum,\n SlotNotAvailable: 'slotNotAvailable' as ReasonEnum,\n PartNotAvailable: 'partNotAvailable' as ReasonEnum,\n RepairCarriedOut: 'repairCarriedOut' as ReasonEnum,\n RepairAnotherBooking: 'repairAnotherBooking' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentUnitStatus { \n id: number;\n date?: string;\n unitDown?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AverageJobcardDto { \n averageArrival?: number;\n averageDelivery?: number;\n averageFailure?: number;\n averageInvoice?: number;\n averageRepair?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Aure Token to retrieve the token\n */\nexport interface AzureToken { \n key?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Series } from './series';\nimport { Types } from './types';\nimport { Model } from './model';\n\n\n/**\n * Vehicles\\' brand.\n */\nexport interface Brand { \n /**\n * Brand ID.\n */\n id?: number;\n /**\n * Brand name.\n */\n name?: string;\n /**\n * Ice code.\n */\n iceCode?: string;\n image?: string;\n models?: Array;\n series?: Array;\n typeList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistCheck { \n /**\n * Id of the check used for checklist response value.\n */\n id: number;\n /**\n * Order to display the checks in the array.\n */\n order?: number;\n /**\n * Label to display next to the check.\n */\n label?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Checklist Result Attachment.\n */\nexport interface ChecklistDamage { \n /**\n * Jobcard item Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n zone?: number;\n creationDate?: string;\n comment?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistQuestion } from './checklistQuestion';\n\n\nexport interface ChecklistGroup { \n name: string;\n questions?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistResult } from './checklistResult';\nimport { AppointmentSignature } from './appointmentSignature';\nimport { ChecklistGroup } from './checklistGroup';\n\n\nexport interface ChecklistInstance { \n id: number;\n summaryUrl?: string;\n content?: string;\n checklistGroups?: Array;\n appointmentId?: number;\n type?: ChecklistInstance.TypeEnum;\n workshopUserId?: string;\n checkListResult?: Array;\n checklistSignature?: AppointmentSignature;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n}\nexport namespace ChecklistInstance {\n export type TypeEnum = 'reception' | 'safety' | 'maintenance';\n export const TypeEnum = {\n Reception: 'reception' as TypeEnum,\n Safety: 'safety' as TypeEnum,\n Maintenance: 'maintenance' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistCheck } from './checklistCheck';\n\n\nexport interface ChecklistQuestion { \n id: number;\n order?: number;\n label?: string;\n resultType?: ChecklistQuestion.ResultTypeEnum;\n sliderMin?: number;\n sliderMax?: number;\n sliderStep?: number;\n labelOk?: string;\n labelFault?: string;\n value?: number;\n required?: boolean;\n checks?: Array;\n}\nexport namespace ChecklistQuestion {\n export type ResultTypeEnum = 'status' | 'slider' | 'switch' | 'checks';\n export const ResultTypeEnum = {\n Status: 'status' as ResultTypeEnum,\n Slider: 'slider' as ResultTypeEnum,\n Switch: 'switch' as ResultTypeEnum,\n Checks: 'checks' as ResultTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistResultAttachment } from './checklistResultAttachment';\n\n\nexport interface ChecklistResult { \n id: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Checklist Result Attachment.\n */\nexport interface ChecklistResultAttachment { \n /**\n * Jobcard item Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n creationDate?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistTemplate { \n id: number;\n type?: string;\n title?: string;\n content?: string;\n defaultChecklist?: boolean;\n /**\n * Proprietary workshop ID.\n */\n workshopId?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardItemStatus } from './jobcardItemStatus';\n\n\n/**\n * Clocking logs\n */\nexport interface ClockingLogDto { \n id?: number;\n technicianId?: string;\n activityStatus?: string;\n isClockingCorrected?: boolean;\n clockingCorrectedBy?: string;\n clockingCorrectedDate?: string;\n clockingErrorReason?: string;\n isDeleted?: boolean;\n clockingStartTime?: string;\n clockingEndTime?: string;\n clockedTime?: number;\n allowedTime?: number;\n activityName?: string;\n bookingId?: number;\n jobcardItemStatus?: JobcardItemStatus;\n jobcardItem?: JobcardItem;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FictitiousMaterial } from './fictitiousMaterial';\n\n\n/**\n * Equivalence mapping object for Consumables between Iveco/CNH part number and DMS/SAP equivalent ID\n */\nexport interface ConsumableAssociation { \n /**\n * Association ID\n */\n id?: number;\n /**\n * Workshop ID\n */\n workshopId: number;\n /**\n * Consumable type\n */\n type: ConsumableAssociation.TypeEnum;\n /**\n * Consumable description\n */\n description: string;\n /**\n * IVECO/CNH part number\n */\n ivecoPartNumber: string;\n /**\n * Equivalent ID\n */\n equivalentId: string;\n ewarrantyCode?: FictitiousMaterial;\n /**\n * Pre Code\n */\n preCode?: string;\n}\nexport namespace ConsumableAssociation {\n export type TypeEnum = 'OTHER' | 'GREASE' | 'ANTIFREEZE_COOLANT' | 'BRAKE_OIL' | 'HYDRAULIC_OIL' | 'TRANSMISSION_OIL' | 'ENGINE_OIL';\n export const TypeEnum = {\n OTHER: 'OTHER' as TypeEnum,\n GREASE: 'GREASE' as TypeEnum,\n ANTIFREEZECOOLANT: 'ANTIFREEZE_COOLANT' as TypeEnum,\n BRAKEOIL: 'BRAKE_OIL' as TypeEnum,\n HYDRAULICOIL: 'HYDRAULIC_OIL' as TypeEnum,\n TRANSMISSIONOIL: 'TRANSMISSION_OIL' as TypeEnum,\n ENGINEOIL: 'ENGINE_OIL' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OrderTypeDto } from './orderTypeDto';\n\n\n/**\n * CSPS contract details.\n */\nexport interface ContractDto { \n codCatAmm?: string;\n companyCode?: number;\n contractDescription?: string;\n contractNumber?: number;\n contractStatus?: string;\n contractType?: string;\n customerCode?: string;\n customerPrefix?: string;\n prim?: boolean;\n prodMultiType?: boolean;\n prodType?: string;\n standard?: boolean;\n validityEndDate?: string;\n validityStartDate?: string;\n orderTypes?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ContractDto } from './contractDto';\n\n\n/**\n * CSPS contract detail response .\n */\nexport interface ContractResponseDto { \n exceptionCode?: string;\n exceptionMessage?: string;\n path?: string;\n status?: number;\n timestamp?: string;\n contracts?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Country\n */\nexport interface Country { \n id?: number;\n /**\n * Country name\n */\n name?: string;\n /**\n * Country name Abbrev\n */\n abbrev?: string;\n market?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetails { \n id: number;\n customerName?: string;\n cityName?: string;\n countryCode?: string;\n address?: string;\n zipCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS parts order status.\n */\nexport interface CspsOrderStatus { \n /**\n * The CSPS order id.\n */\n cspsId?: number;\n /**\n * The Customer Order id.\n */\n customerOrderId?: string;\n /**\n * The Type of Order.\n */\n orderType?: number;\n /**\n * Description of the orderType\n */\n orderTypeDescription?: string;\n /**\n * Delivery address\n */\n retailCode?: string;\n /**\n * Description of the delivery address\n */\n retailCodeDescription?: string;\n /**\n * The Contract Id.\n */\n contract?: string;\n /**\n * Description of the contract\n */\n contractDescription?: string;\n /**\n * The Total Gross of the Order.\n */\n totalGross?: number;\n /**\n * The Total Net of the Order.\n */\n totalNet?: number;\n /**\n * The Number of lines of the Order.\n */\n noOfLines?: number;\n /**\n * The Status of the Order.\n */\n status?: CspsOrderStatus.StatusEnum;\n /**\n * additional order status details\n */\n details?: string;\n}\nexport namespace CspsOrderStatus {\n export type StatusEnum = 'SIMULATED' | 'OPENORDER' | 'CLOSEDORDER';\n export const StatusEnum = {\n SIMULATED: 'SIMULATED' as StatusEnum,\n OPENORDER: 'OPENORDER' as StatusEnum,\n CLOSEDORDER: 'CLOSEDORDER' as StatusEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Currency\n */\nexport interface Currency { \n /**\n * Currency code following ISO 4217\n */\n code?: string;\n /**\n * Currency name\n */\n label?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CpdContactDetails } from './cpdContactDetails';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface CustomerCompany { \n id: number;\n dmsId?: string;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: string;\n zipcode?: string;\n address?: string;\n displayedName?: string;\n mobilePhone?: string;\n phone?: string;\n email?: string;\n customerNote?: string;\n users?: Array;\n alternateContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CustomerCompanyUser { \n id?: number;\n customerCompanyId?: number;\n firstName?: string;\n lastName?: string;\n email?: string;\n mobilePhone?: string;\n phone?: string;\n dmsId?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehiclesDetailsDto } from './vehiclesDetailsDto';\n\n\nexport interface CustomerTrendsDto { \n customerName?: string;\n partsSales?: number;\n partsMargin?: number;\n workshopSales?: number;\n workshopMargin?: number;\n vehicleDetails?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS parts customer view.\n */\nexport interface CustomerViewDto { \n id?: number;\n /**\n * Part quantity.\n */\n quantity?: number;\n /**\n * Part order simulation id.\n */\n orderSimulationId?: number;\n /**\n * Part gross price.\n */\n grossPrice?: number;\n /**\n * Part net price.\n */\n netPrice?: number;\n /**\n * Part appointment id.\n */\n appointmentId?: number;\n /**\n * Customer name.\n */\n customerName?: string;\n /**\n * Part code.\n */\n partCode?: string;\n /**\n * Part description.\n */\n description?: string;\n /**\n * Order simulation date.\n */\n orderSimulationDate?: string;\n /**\n * Part status.\n */\n partStatus?: string;\n /**\n * Expected delivery date.\n */\n expectedDeliveryDate?: string;\n /**\n * basic discount\n */\n basicDiscount?: number;\n /**\n * promo discount\n */\n promoDiscount?: number;\n /**\n * additionnal part details\n */\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DealerBrandStyle { \n id?: number;\n dealerPortalBrand?: string;\n market?: number;\n brandStyleId?: DealerBrandStyle.BrandStyleIdEnum;\n brandPrimaryColor?: string;\n brandSecondaryColor?: string;\n brandBgColor?: string;\n brandLogo?: string;\n}\nexport namespace DealerBrandStyle {\n export type BrandStyleIdEnum = 'NH_CE' | 'NH_AG' | 'CASE_IH' | 'CASE_CE';\n export const BrandStyleIdEnum = {\n NHCE: 'NH_CE' as BrandStyleIdEnum,\n NHAG: 'NH_AG' as BrandStyleIdEnum,\n CASEIH: 'CASE_IH' as BrandStyleIdEnum,\n CASECE: 'CASE_CE' as BrandStyleIdEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OrderTypeDto } from './orderTypeDto';\n\n\n/**\n * CSPS delivery address.\n */\nexport interface DeliveryAddressDto { \n area?: string;\n /**\n * City.\n */\n city?: string;\n /**\n * Code.\n */\n code?: string;\n /**\n * country.\n */\n country?: string;\n /**\n * countryCode.\n */\n countryCode?: string;\n /**\n * description.\n */\n description?: string;\n /**\n * description2.\n */\n description2?: string;\n /**\n * details.\n */\n details?: string;\n /**\n * flgStandard.\n */\n flgStandard?: string;\n /**\n * zipCode.\n */\n zipCode?: string;\n orderTypeList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DeliveryAddressDto } from './deliveryAddressDto';\n\n\n/**\n * CSPS delivery address.\n */\nexport interface DeliveryAddressResponseDto { \n exceptionCode?: string;\n exceptionMessage?: string;\n path?: string;\n status?: number;\n timestamp?: string;\n clientCode?: string;\n clientPrefix?: string;\n deliveryAddressList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * DMS Communication.\n */\nexport interface DmsCommunicationDto { \n /**\n * Order Status ID.\n */\n id?: number;\n orderStatus?: string;\n isSendOrder?: boolean;\n isConvertOrder?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Dms Logs.\n */\nexport interface DmsLog { \n id?: number;\n appointmentId?: number;\n functionName?: string;\n logDate?: string;\n request?: string;\n response?: string;\n content?: string;\n responseTime?: number;\n fromDate?: string;\n toDate?: string;\n code?: string;\n workshopId?: number;\n uuid?: string;\n page?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * DMS back-end connection status.\n */\nexport interface DmsStatus { \n /**\n * DMS available for querying.\n */\n connected?: boolean;\n /**\n * Details of the result\n */\n details?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface EncryptedSignature { \n encryptedSignature?: string;\n encryptedKey?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface EpartsMarketMapping { \n id?: number;\n tidbMarketCode?: number;\n epartsMarketCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\nimport { Currency } from './currency';\n\n\nexport interface EpartsPart { \n id?: number;\n appointmentId?: number;\n code?: string;\n description?: string;\n quantity?: number;\n dateAdded?: string;\n dealerPrice?: number;\n retailPrice?: number;\n currency?: Currency;\n part?: Part;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Other Workshop\n */\nexport interface ExtraOperation { \n id?: number;\n typeLabel?: string;\n type?: ExtraOperation.TypeEnum;\n description?: string;\n code?: string;\n supplierName?: string;\n level?: string;\n distance?: number;\n amount?: number;\n compulsory?: boolean;\n selected?: boolean;\n dmsId?: string;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n deleted?: boolean;\n active?: boolean;\n}\nexport namespace ExtraOperation {\n export type TypeEnum = 'all' | 'material' | 'extraCharges' | 'sublet' | 'travel' | 'freight' | 'fictitious_material' | 'fm_antifreeze' | 'fm_miscellaneous' | 'fm_oil' | 'fm_refrigerant' | 'fm_tyre';\n export const TypeEnum = {\n All: 'all' as TypeEnum,\n Material: 'material' as TypeEnum,\n ExtraCharges: 'extraCharges' as TypeEnum,\n Sublet: 'sublet' as TypeEnum,\n Travel: 'travel' as TypeEnum,\n Freight: 'freight' as TypeEnum,\n FictitiousMaterial: 'fictitious_material' as TypeEnum,\n FmAntifreeze: 'fm_antifreeze' as TypeEnum,\n FmMiscellaneous: 'fm_miscellaneous' as TypeEnum,\n FmOil: 'fm_oil' as TypeEnum,\n FmRefrigerant: 'fm_refrigerant' as TypeEnum,\n FmTyre: 'fm_tyre' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface FeedbackAttachmentDto { \n userId?: string;\n requestId?: string;\n contactId?: string;\n blobName?: string;\n containerName?: string;\n fileName?: string;\n fileExtension?: string;\n fileSize?: number;\n storageAccount?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface FeedbackCreationDto { \n userId?: string;\n name?: string;\n notificationEmail?: string;\n fbCategory?: string;\n feedbackSubcategory?: string;\n brand?: string;\n region?: string;\n notes?: string;\n attachedFile?: string;\n sapCode?: string;\n RequestURL?: string;\n RequestNumber?: string;\n date?: string;\n RequestId?: string;\n ContactId?: string;\n jobId?: string;\n applicationType?: string;\n system?: string;\n mode?: string;\n softwareVersion?: string;\n deviceModel?: string;\n noteArr?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FictitiousMaterial = '-OIL' | '-ANTIFREEZE' | '-MISCELLANEOUS' | '-REFRIGERANT' | '-MATERIAL' | '-TIRE';\n\nexport const FictitiousMaterial = {\n OIL: '-OIL' as FictitiousMaterial,\n ANTIFREEZE: '-ANTIFREEZE' as FictitiousMaterial,\n MISCELLANEOUS: '-MISCELLANEOUS' as FictitiousMaterial,\n REFRIGERANT: '-REFRIGERANT' as FictitiousMaterial,\n MATERIAL: '-MATERIAL' as FictitiousMaterial,\n TIRE: '-TIRE' as FictitiousMaterial\n};\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FilterBy = 'customerName' | 'dmsJobOrder' | 'brand' | 'model' | 'vin';\n\nexport const FilterBy = {\n CustomerName: 'customerName' as FilterBy,\n DmsJobOrder: 'dmsJobOrder' as FilterBy,\n Brand: 'brand' as FilterBy,\n Model: 'model' as FilterBy,\n Vin: 'vin' as FilterBy\n};\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface HealthCheckJobcard { \n environment?: string;\n business?: string;\n version?: string;\n uptime?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FeedbackCreationDto } from './feedbackCreationDto';\n\n\nexport interface InlineObject { \n files?: Array;\n feedbackResultDto?: FeedbackCreationDto;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject1 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject2 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject3 { \n id?: number;\n defferDeleteReason?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject4 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject5 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject6 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InspectionChecklistReportLine { \n appointmentId?: number;\n checklistId?: number;\n dmsJoborder?: number;\n customerCompanyName?: string;\n brandName?: string;\n modelName?: string;\n sn?: string;\n checklistType?: string;\n defectsIdentified?: number;\n defectsAddedToWorkOrder?: number;\n deferredItems?: number;\n itemsApproved?: number;\n conversionPercentage?: number;\n quotedValue?: number;\n soldValue?: number;\n partsValueInvoiced?: number;\n labourValueInvoiced?: number;\n currencyCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { IuDocumentDto } from './iuDocumentDto';\n\n\nexport interface IuDocumentBasketDto { \n userId?: string;\n appointmentId?: number;\n documents?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface IuDocumentDto { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n appointmentId?: number;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDeleted } from './jobcardItemDeleted';\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardTravel } from './jobcardTravel';\n\n\n/**\n * Jobcard main informations.\n */\nexport interface Jobcard { \n /**\n * Jobcard ID.\n */\n id: number;\n /**\n * Jobcard DMS job order.\n */\n dmsJobOrder?: string;\n /**\n * Dealer Claim Number from SAP.\n */\n dealerClaimNumber?: string;\n /**\n * ANS Dossier for CRM.\n */\n ansDossier?: string;\n /**\n * Jobcard job order to claim.\n */\n dmsToStrClaim?: string;\n /**\n * Claim Number.\n */\n claim?: string;\n /**\n * Jobcard execution estimated duration.\n */\n estimatedDuration?: number;\n /**\n * Jobcard start time.\n */\n startTime?: string;\n /**\n * Jobcard end time.\n */\n endTime?: string;\n /**\n * Failure Date\n */\n failureDate?: string;\n jobcardItems?: Array;\n jobcardItemDeleted?: Array;\n /**\n * Jobcard attachments list. TODO rename\n */\n jobcardAttachmentDtos?: Array;\n customerOrderNumber?: string;\n dmsOrderType?: Jobcard.DmsOrderTypeEnum;\n djcOrderType?: Jobcard.DjcOrderTypeEnum;\n jobcardTravels?: Array;\n /**\n * Jobcard mileages list.\n */\n jobcardMileages?: Array;\n /**\n * Jobcard engine hour list.\n */\n jobcardEngineHours?: Array;\n /**\n * Jobcard serial number list.\n */\n jobcardSerialNumbers?: Array;\n}\nexport namespace Jobcard {\n export type DmsOrderTypeEnum = 'Quote' | 'Invoice' | 'Reservation' | 'Order';\n export const DmsOrderTypeEnum = {\n Quote: 'Quote' as DmsOrderTypeEnum,\n Invoice: 'Invoice' as DmsOrderTypeEnum,\n Reservation: 'Reservation' as DmsOrderTypeEnum,\n Order: 'Order' as DmsOrderTypeEnum\n };\n export type DjcOrderTypeEnum = 'readyToInvoice' | 'Invoice';\n export const DjcOrderTypeEnum = {\n ReadyToInvoice: 'readyToInvoice' as DjcOrderTypeEnum,\n Invoice: 'Invoice' as DjcOrderTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard Attachment.\n */\nexport interface JobcardAttachment { \n /**\n * Jobcard Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n filename?: string;\n jobOrder?: number;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WarrantyType } from './warrantyType';\nimport { JobcardItemTechnician } from './jobcardItemTechnician';\nimport { MpInformation } from './mpInformation';\nimport { PaymentSubSubType } from './paymentSubSubType';\nimport { JobcardItemStatus } from './jobcardItemStatus';\nimport { Operation } from './operation';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardItemCustomerStatus } from './jobcardItemCustomerStatus';\nimport { JobcardTravel } from './jobcardTravel';\nimport { JobcardItemIuDocument } from './jobcardItemIuDocument';\nimport { WarrantyClaimData } from './warrantyClaimData';\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { JobcardItemSpell } from './jobcardItemSpell';\nimport { PaymentType } from './paymentType';\nimport { ChecklistInstance } from './checklistInstance';\nimport { PaymentSubType } from './paymentSubType';\nimport { JobcardPartsBacklog } from './jobcardPartsBacklog';\nimport { Split } from './split';\nimport { ExtraOperation } from './extraOperation';\n\n\n/**\n * Jobcard item details.\n */\nexport interface JobcardItem { \n /**\n * Jobcard item ID.\n */\n id?: number;\n /**\n * Jobcard item type.\n */\n type?: JobcardItem.TypeEnum;\n /**\n * Jobcard subtype used for subtype of an alert.\n */\n subtype?: string;\n /**\n * Jobcard priority used for level of priority of an alert.\n */\n priority?: number;\n /**\n * Jobcard weight used to order the jobcardItems.\n */\n weight?: number;\n /**\n * Jobcard item name.\n */\n name: string;\n /**\n * Jobcard item description.\n */\n description?: string;\n /**\n * Jobcard item additional description.\n */\n additionalDescription?: string;\n /**\n * Jobcard item code.\n */\n code?: string;\n estimatedDuration?: number;\n /**\n * Jobcard item\\'s details URL\n */\n url?: string;\n /**\n * Jobcard item\\'s Asist Buy Kits URL\n */\n asistUrl?: string;\n /**\n * Jobcard item operation list.\n */\n operations?: Array;\n /**\n * Jobcard item status list.\n */\n jobcardItemStatus?: Array;\n /**\n * Missing Parts in Jobcard.\n */\n jobcardPartsBacklog?: Array;\n /**\n * Jobcard item attachment list.\n */\n jobcardItemAttachments?: Array;\n workshopUserId?: string;\n comment?: string;\n /**\n * Activity might be deferred (not shown)\n */\n deferred?: boolean;\n /**\n * Date the activity was deferred\n */\n deferredDate?: string;\n /**\n * Date to the activity was deferred\n */\n deferredToDate?: string;\n /**\n * Reason for deferring activity\n */\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n agreementSignatureUrl?: string;\n agreementCustomerName?: string;\n travels?: Array;\n /**\n * Show/hide activity to the customer\n */\n visible?: boolean;\n /**\n * Supplier Code\n */\n supplierCode?: string;\n /**\n * Defect Code\n */\n defectCode?: string;\n /**\n * Failure Code\n */\n failureCode?: string;\n /**\n * Failure Description\n */\n failureDescription?: string;\n /**\n * Severity of the failure for activity\n */\n failureSeverity?: number;\n /**\n * Warranty coverage for activity.\n */\n warrantyCoverage?: boolean;\n /**\n * Warranty Contract that covers the activity.\n */\n warrantyContract?: string;\n /**\n * Warranty Contract Number that covers the Vehicle.\n */\n contractNumber?: string;\n /**\n * Warranty Type that covers the activity.\n */\n warrantyType?: string;\n /**\n * Operation required parts.\n */\n causalPartId?: number;\n extraOperations?: Array;\n /**\n * Activity set to be deleted in backend\n */\n deleted?: boolean;\n loading?: boolean;\n /**\n * Payment Code\n */\n paymentCode?: string;\n /**\n * Payment Type Id\n */\n paymentTypeId?: number;\n /**\n * Pay Type\n */\n payType?: string;\n /**\n * Payment Sub Code\n */\n paymentSubcode?: string;\n /**\n * Payment Sub Type Id\n */\n paymentSubTypeId?: number;\n /**\n * Payment Sub 2 Code\n */\n paymentSub2Code?: string;\n /**\n * Payment Sub Type 2 Id\n */\n paymentSubType2Id?: number;\n /**\n * Payment Sub 3 Code\n */\n paymentSub3Code?: string;\n /**\n * Payment Sub Type 3 Id\n */\n paymentSubType3Id?: number;\n defectDescription?: string;\n supplierDescription?: string;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformation;\n couponStatus?: string;\n status?: JobcardItem.StatusEnum;\n totalPrice?: number;\n generalNote?: string;\n cause?: string;\n correction?: string;\n internalNotes?: string;\n paymentType?: PaymentType;\n paymentSubType?: PaymentSubType;\n paymentSubType2?: PaymentSubSubType;\n paymentSubType3?: PaymentSubSubType;\n paymentWarrantyType?: WarrantyType;\n isPaymentTypeDisabled?: boolean;\n isCausalPartDisabled?: boolean;\n startDate?: string;\n percentage?: number;\n discountTypeId?: number;\n technicians?: Array;\n installedDate?: string;\n amountUseOnSpareParts?: number;\n sparePartInvoiceNumber?: string;\n failedComponentSerialNumber?: number;\n replacedComponentSerialNumber?: number;\n preAuthorizationCode?: string;\n authorizerName?: JobcardItem.AuthorizerNameEnum;\n groupReplaced?: JobcardItem.GroupReplacedEnum;\n serviceParticipation?: number;\n warrantyClaimData?: WarrantyClaimData;\n selected?: boolean;\n inspectionActivity?: boolean;\n /**\n * Response from SAP system\n */\n sapResponse?: string;\n workshopBayId?: number;\n checklistInstances?: Array;\n /**\n * Status duration.\n */\n officialTime?: number;\n /**\n * PIP is or not yet available for this Vehicle/Product\n */\n disabled?: boolean;\n docId?: string;\n etimDocLink?: string;\n jobcardItemSpells?: Array;\n remainingDays?: number;\n jobcardItemCustomerStatus?: Array;\n activityValidated?: boolean;\n discounts?: Array;\n selectedDiscount?: string;\n isDiscountAvailable?: boolean;\n /**\n * temp Jobcard item ID used for booking screen handle drag and drop.\n */\n tempJId?: string;\n /**\n * Reason for deleting deffered activity\n */\n defferDeleteReason?: string;\n jobcardItemIuDocuments?: Array;\n duration?: number;\n}\nexport namespace JobcardItem {\n export type TypeEnum = 'alert' | 'pip' | 'fault' | 'nextMaintenance' | 'proposedMaintenance' | 'srt' | 'free' | 'deferred' | 'checklist' | 'etimWeb';\n export const TypeEnum = {\n Alert: 'alert' as TypeEnum,\n Pip: 'pip' as TypeEnum,\n Fault: 'fault' as TypeEnum,\n NextMaintenance: 'nextMaintenance' as TypeEnum,\n ProposedMaintenance: 'proposedMaintenance' as TypeEnum,\n Srt: 'srt' as TypeEnum,\n Free: 'free' as TypeEnum,\n Deferred: 'deferred' as TypeEnum,\n Checklist: 'checklist' as TypeEnum,\n EtimWeb: 'etimWeb' as TypeEnum\n };\n export type StatusEnum = 'normal' | 'inTime' | 'warning' | 'inDelay' | 'inProgress' | 'completed';\n export const StatusEnum = {\n Normal: 'normal' as StatusEnum,\n InTime: 'inTime' as StatusEnum,\n Warning: 'warning' as StatusEnum,\n InDelay: 'inDelay' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Completed: 'completed' as StatusEnum\n };\n export type AuthorizerNameEnum = 'NE' | 'CE';\n export const AuthorizerNameEnum = {\n NE: 'NE' as AuthorizerNameEnum,\n CE: 'CE' as AuthorizerNameEnum\n };\n export type GroupReplacedEnum = 'N' | 'R';\n export const GroupReplacedEnum = {\n N: 'N' as GroupReplacedEnum,\n R: 'R' as GroupReplacedEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Customer\\'s approval/rejection status response history.\n */\nexport interface JobcardItemCustomerStatus { \n id?: number;\n /**\n * Jobcard item reference ID\n */\n jobcardItemId?: number;\n /**\n * Action from user to check if they approve/reject an activity.\n */\n action?: JobcardItemCustomerStatus.ActionEnum;\n /**\n * Time stamp when the action is performed.\n */\n actionDateTime?: string;\n /**\n * The user/person name who acts on it.\n */\n actionPerformedBy?: string;\n /**\n * Online - indicating the action performed by customer; offline - indicating manual changes performed on DJC.\n */\n actionType?: JobcardItemCustomerStatus.ActionTypeEnum;\n}\nexport namespace JobcardItemCustomerStatus {\n export type ActionEnum = 'approve' | 'decline' | 'autoApv' | 'autoDec';\n export const ActionEnum = {\n Approve: 'approve' as ActionEnum,\n Decline: 'decline' as ActionEnum,\n AutoApv: 'autoApv' as ActionEnum,\n AutoDec: 'autoDec' as ActionEnum\n };\n export type ActionTypeEnum = 'online' | 'offline' | 'recep' | 'wty';\n export const ActionTypeEnum = {\n Online: 'online' as ActionTypeEnum,\n Offline: 'offline' as ActionTypeEnum,\n Recep: 'recep' as ActionTypeEnum,\n Wty: 'wty' as ActionTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item details.\n */\nexport interface JobcardItemDeleted { \n /**\n * Jobcard item deleted ID.\n */\n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * IU or SRT associated to an activity.\n */\nexport interface JobcardItemIuDocument { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n vin?: string;\n jobcardItemId?: number;\n selected?: boolean;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnician } from './jobcardItemTechnician';\n\n\n/**\n * Spell details for an activity.\n */\nexport interface JobcardItemSpell { \n id?: number;\n workshopBayId?: number;\n estimatedDuration?: number;\n startDate?: string;\n /**\n * Spell weight used to display in order.\n */\n weight?: number;\n /**\n * Spell selection for drag n drop.\n */\n selected?: boolean;\n technicians?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item Status.\n */\nexport interface JobcardItemStatus { \n /**\n * Jobcard item Status ID.\n */\n id?: number;\n time?: string;\n endTime?: string;\n /**\n * Jobcard item status name\n */\n status?: JobcardItemStatus.StatusEnum;\n /**\n * Status duration.\n */\n duration?: number;\n /**\n * Jobcard item clocking status (whan a technician is working on the activity on the mobile app)\n */\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n /**\n * Jobcard appointment priority\n */\n appointmentPriority?: JobcardItemStatus.AppointmentPriorityEnum;\n /**\n * Jobcard Item Id.\n */\n jobcardItemId?: number;\n /**\n * Workshop User Id.\n */\n workshopUserId?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardItemStatus.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n /**\n * Soft delete\n */\n deleted?: boolean;\n /**\n * activity update in fron end.\n */\n currentChangeActivity?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n /**\n * Jobcard item Status DMS ID.\n */\n dmsId?: string;\n}\nexport namespace JobcardItemStatus {\n export type StatusEnum = 'new' | 'todo' | 'inProgress' | 'pending' | 'invoiced' | 'done' | 'inProgressProductive' | 'doneProductive' | 'pendingProductive' | 'doneNotWithinPlannedTime';\n export const StatusEnum = {\n New: 'new' as StatusEnum,\n Todo: 'todo' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Pending: 'pending' as StatusEnum,\n Invoiced: 'invoiced' as StatusEnum,\n Done: 'done' as StatusEnum,\n InProgressProductive: 'inProgressProductive' as StatusEnum,\n DoneProductive: 'doneProductive' as StatusEnum,\n PendingProductive: 'pendingProductive' as StatusEnum,\n DoneNotWithinPlannedTime: 'doneNotWithinPlannedTime' as StatusEnum\n };\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum\n };\n export type AppointmentPriorityEnum = 'high' | 'medium' | 'low' | 'nopriority';\n export const AppointmentPriorityEnum = {\n High: 'high' as AppointmentPriorityEnum,\n Medium: 'medium' as AppointmentPriorityEnum,\n Low: 'low' as AppointmentPriorityEnum,\n Nopriority: 'nopriority' as AppointmentPriorityEnum\n };\n export type ReasonEnum = 'forgotClockOn' | 'forgotClockOff' | 'helpingAnotherTechnician' | 'forgotClockInOut' | 'technicalErrors' | 'discount' | 'other';\n export const ReasonEnum = {\n ForgotClockOn: 'forgotClockOn' as ReasonEnum,\n ForgotClockOff: 'forgotClockOff' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n ForgotClockInOut: 'forgotClockInOut' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard active clockings.\n */\nexport interface JobcardItemStatusActiveClockings { \n id?: Array;\n jobcardItemIds?: Array;\n activityNames?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item Technician.\n */\nexport interface JobcardItemTechnician { \n /**\n * Intern ID of the link between the jobcard item and the technician.\n */\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n endDate?: string;\n /**\n * Intern ID of the link between the spell and the technician.\n */\n spellLinkId?: number;\n /**\n * to check whether the technician is available or not.\n */\n available?: boolean;\n /**\n * first name of technician\n */\n firstName?: string;\n /**\n * last name of technician\n */\n lastName?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\n\n\n/**\n * Missing Part For Jobcard.\n */\nexport interface JobcardPartsBacklog { \n /**\n * id of the part to order\n */\n id?: number;\n /**\n * AppointmentId.\n */\n appointmentId?: number;\n /**\n * Jobcard item.\n */\n jobcardItemId?: number;\n /**\n * Missing part quantity.\n */\n quantity?: number;\n /**\n * Part id.\n */\n partId?: number;\n /**\n * Customer CompanyId .\n */\n customerCompanyId?: number;\n part?: Part;\n /**\n * add or replace part\n */\n view?: string;\n /**\n * workshop where the part are ordered\n */\n workshopId?: number;\n /**\n * id of the csps simulation\n */\n cspsOrderId?: number;\n /**\n * id of the csps simulation\n */\n orderSimulationId?: number;\n /**\n * status of the part\n */\n partStatus?: string;\n /**\n * basic discount\n */\n basicDiscount?: number;\n /**\n * promo discount\n */\n promoDiscount?: number;\n grossPrice?: number;\n netPrice?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n operation?: string;\n /**\n * Order simulation date.\n */\n orderSimulationDate?: string;\n /**\n * Order simulation date.\n */\n expectedDeliveryDate?: string;\n /**\n * additionnal part details\n */\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserTravelPosition } from './workshopUserTravelPosition';\nimport { PaymentSubSubType } from './paymentSubSubType';\nimport { PaymentType } from './paymentType';\nimport { PaymentSubType } from './paymentSubType';\n\n\n/**\n * Jobcard Travel\n */\nexport interface JobcardTravel { \n id?: number;\n name?: string;\n workshopUserId?: string;\n duration?: number;\n distance?: number;\n date?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardTravel.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n deleted?: boolean;\n /**\n * Technician\\'s GPS positions for the travel\n */\n positions?: Array;\n /**\n * Travel origin address line 1.\n */\n travelFromAddressLine1?: string;\n /**\n * Travel origin address line 2.\n */\n travelFromAddressLine2?: string;\n /**\n * Travel origin address line 3.\n */\n travelFromAddressLine3?: string;\n /**\n * Travel origin address line 4.\n */\n travelFromAddressLine4?: string;\n /**\n * Travel origin address postal code.\n */\n travelFromPostalCode?: string;\n /**\n * Travel destination address line 1.\n */\n travelToAddressLine1?: string;\n /**\n * Travel destination address line 2.\n */\n travelToAddressLine2?: string;\n /**\n * Travel destination address line 3.\n */\n travelToAddressLine3?: string;\n /**\n * Travel destination address line 4.\n */\n travelToAddressLine4?: string;\n /**\n * Travel destination address postal code.\n */\n travelToPostalCode?: string;\n /**\n * Internal comments on travel.\n */\n internalNotes?: string;\n /**\n * Estimated distance (in miles or KMs).\n */\n estimatedDistance?: number;\n /**\n * Estimated duration (in seconds).\n */\n estimatedDuration?: number;\n paymentType?: PaymentType;\n paymentSubType?: PaymentSubType;\n paymentSubSubType2?: PaymentSubSubType;\n paymentSubSubType3?: PaymentSubSubType;\n /**\n * Travel type code from DMS.\n */\n itemCode?: string;\n /**\n * Source of the travel (like pip).\n */\n travelSource?: string;\n /**\n * Additional code to identify the travel.\n */\n travelExtraCode?: string;\n travelVisible?: boolean;\n price?: number;\n travelFromShowCoordinates?: JobcardTravel.TravelFromShowCoordinatesEnum;\n travelToShowCoordinates?: JobcardTravel.TravelToShowCoordinatesEnum;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToLatitude?: number;\n travelToLongitude?: number;\n /**\n * Travel type to differentiate from travel.\n */\n travelTypeFrom?: string;\n /**\n * Travel type to differentiate to travel.\n */\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelToManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToGpsImportedDate?: string;\n /**\n * Warranty Claim numbers concatenated, separated by \\\";\\\"\n */\n warrantyClaimNumbers?: string;\n /**\n * Response from SAP system\n */\n sapResponse?: string;\n}\nexport namespace JobcardTravel {\n export type ReasonEnum = 'forgotRecordTravel' | 'forgotStartStop' | 'helpingAnotherTechnician' | 'technicalErrors' | 'discount' | 'other';\n export const ReasonEnum = {\n ForgotRecordTravel: 'forgotRecordTravel' as ReasonEnum,\n ForgotStartStop: 'forgotStartStop' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n export type TravelFromShowCoordinatesEnum = 'travelFromAddress' | 'travelFromCoordinates';\n export const TravelFromShowCoordinatesEnum = {\n TravelFromAddress: 'travelFromAddress' as TravelFromShowCoordinatesEnum,\n TravelFromCoordinates: 'travelFromCoordinates' as TravelFromShowCoordinatesEnum\n };\n export type TravelToShowCoordinatesEnum = 'travelToAddress' | 'travelToCoordinates';\n export const TravelToShowCoordinatesEnum = {\n TravelToAddress: 'travelToAddress' as TravelToShowCoordinatesEnum,\n TravelToCoordinates: 'travelToCoordinates' as TravelToShowCoordinatesEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\n\n\n/**\n * Vehicle part assembly kit.\n */\nexport interface Kit { \n /**\n * Kit ID.\n */\n id: number;\n name?: string;\n workshopId?: number;\n jobcardItems?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Composition of a kit\n */\nexport interface KitPart { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WeeklyTrendInspectionDto } from './weeklyTrendInspectionDto';\n\n\nexport interface KpiInspectionReportDto { \n noOfInspection?: number;\n defectsIdentified?: number;\n defectsQuoted?: number;\n itemsApproved?: number;\n quotedValue?: number;\n soldValue?: number;\n partsValueInvoiced?: number;\n labourValueInvoiced?: number;\n weeklyTrendsDto?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiMonthlyPartsTrendDto { \n month?: string;\n partSold?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { KpiMonthlyPartsTrendDto } from './kpiMonthlyPartsTrendDto';\nimport { KpiWeeklyDto } from './kpiWeeklyDto';\n\n\nexport interface KpiPartsDto { \n totalPartsSold?: number;\n missingPartsInCsps?: number;\n missingPartsInDms?: number;\n /**\n * weekly list of non availibility parts\n */\n kpiWeeklyDto?: Array;\n /**\n * list of monthly parts available\n */\n kpiMonthlyPartsTrendDto?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiWeeklyDto { \n startDate?: string;\n missingPartInDms?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Kpis { \n hoursSold?: number;\n wipHoursAveDays?: number;\n wipHoursAveDaysSecondary?: number;\n efficiency?: number;\n attendedTimeClockedTime?: number;\n totalSales?: number;\n partSales?: number;\n workshopSales?: number;\n salesBooking?: number;\n salesCheckin?: number;\n salesWorkshop?: number;\n partSalesperHour?: number;\n recovery?: number;\n productivity?: number;\n utilisation?: number;\n actualUtilisation?: number;\n plannedUtilisation?: number;\n actualEfficiency?: number;\n plannedEfficiency?: number;\n wipAveDays?: number;\n workOrder?: number;\n noOfInspections?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Languages referential\n */\nexport interface Language { \n id?: number;\n /**\n * Language ID\n */\n languageId?: string;\n /**\n * Language name\n */\n languageName?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LegalNotice { \n /**\n * legalNoticeId.\n */\n id?: number;\n termsAndConditions?: string;\n workshopId?: number;\n privacyNotice?: string;\n termsAzureUrl?: string;\n privacyAzureUrl?: string;\n isDocUploadForPn?: boolean;\n isDocUploadForTc?: boolean;\n customerNotes?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LinesExcelReport { \n bookingId?: number;\n activity?: string;\n paymentType?: string;\n paymentSubtype?: string;\n categoryType?: string;\n operations?: string;\n srt?: boolean;\n oppPrice?: number;\n parts?: string;\n partsPrice?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Log Data for standalone merge operation\n */\nexport interface MergeLog { \n id?: number;\n workshopId?: number;\n startDate?: string;\n mergeType?: string;\n status?: string;\n dbVolume?: number;\n importVolume?: number;\n step1?: number;\n step2?: number;\n step3?: number;\n step4?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MobileLog { \n id?: number;\n date?: string;\n user?: string;\n model?: string;\n mobileVersion?: string;\n description?: string;\n workshopId?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { TechnicalType } from './technicalType';\nimport { Series } from './series';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' model.\n */\nexport interface Model { \n /**\n * Model ID.\n */\n id: number;\n /**\n * Model name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n brand?: Brand;\n series?: Series;\n ttList?: Array;\n}\n\n","export * from './activityReport';\nexport * from './activityReportDay';\nexport * from './activityTravelList';\nexport * from './activityValidated';\nexport * from './apiError';\nexport * from './apiResponseDto';\nexport * from './appointment';\nexport * from './appointmentIuDocument';\nexport * from './appointmentNotification';\nexport * from './appointmentSignature';\nexport * from './appointmentSignatureFile';\nexport * from './appointmentStatus';\nexport * from './appointmentUnitStatus';\nexport * from './averageJobcardDto';\nexport * from './azureToken';\nexport * from './brand';\nexport * from './checklistCheck';\nexport * from './checklistDamage';\nexport * from './checklistGroup';\nexport * from './checklistInstance';\nexport * from './checklistQuestion';\nexport * from './checklistResult';\nexport * from './checklistResultAttachment';\nexport * from './checklistTemplate';\nexport * from './clockingLogDto';\nexport * from './consumableAssociation';\nexport * from './contractDto';\nexport * from './contractResponseDto';\nexport * from './country';\nexport * from './cpdContactDetails';\nexport * from './cspsOrderStatus';\nexport * from './currency';\nexport * from './customerCompany';\nexport * from './customerCompanyUser';\nexport * from './customerTrendsDto';\nexport * from './customerViewDto';\nexport * from './dealerBrandStyle';\nexport * from './deliveryAddressDto';\nexport * from './deliveryAddressResponseDto';\nexport * from './dmsCommunicationDto';\nexport * from './dmsLog';\nexport * from './dmsStatus';\nexport * from './encryptedSignature';\nexport * from './epartsMarketMapping';\nexport * from './epartsPart';\nexport * from './extraOperation';\nexport * from './feedbackAttachmentDto';\nexport * from './feedbackCreationDto';\nexport * from './fictitiousMaterial';\nexport * from './filterBy';\nexport * from './healthCheckJobcard';\nexport * from './inlineObject';\nexport * from './inlineObject1';\nexport * from './inlineObject2';\nexport * from './inlineObject3';\nexport * from './inlineObject4';\nexport * from './inlineObject5';\nexport * from './inlineObject6';\nexport * from './inspectionChecklistReportLine';\nexport * from './iuDocumentBasketDto';\nexport * from './iuDocumentDto';\nexport * from './jobcard';\nexport * from './jobcardAttachment';\nexport * from './jobcardItem';\nexport * from './jobcardItemCustomerStatus';\nexport * from './jobcardItemDeleted';\nexport * from './jobcardItemIuDocument';\nexport * from './jobcardItemSpell';\nexport * from './jobcardItemStatus';\nexport * from './jobcardItemStatusActiveClockings';\nexport * from './jobcardItemTechnician';\nexport * from './jobcardPartsBacklog';\nexport * from './jobcardTravel';\nexport * from './kit';\nexport * from './kitPart';\nexport * from './kpiInspectionReportDto';\nexport * from './kpiMonthlyPartsTrendDto';\nexport * from './kpiPartsDto';\nexport * from './kpiWeeklyDto';\nexport * from './kpis';\nexport * from './language';\nexport * from './legalNotice';\nexport * from './linesExcelReport';\nexport * from './mergeLog';\nexport * from './mobileLog';\nexport * from './model';\nexport * from './mpInformation';\nexport * from './mpInformationDelta';\nexport * from './name';\nexport * from './nonProductiveActivity';\nexport * from './nonProductiveActivityStatus';\nexport * from './notification';\nexport * from './notificationCreation';\nexport * from './notificationSubscription';\nexport * from './notificationSubscriptionSet';\nexport * from './notificationType';\nexport * from './onHoldReason';\nexport * from './openOrderRequest';\nexport * from './openingDay';\nexport * from './openingDayPeriods';\nexport * from './operation';\nexport * from './operationConsumable';\nexport * from './operationPart';\nexport * from './operationPartLocation';\nexport * from './operationWarranty';\nexport * from './oprConsumable';\nexport * from './orderStatusDto';\nexport * from './orderStatusPrefDto';\nexport * from './orderTypeDto';\nexport * from './orderTypeHeaderCode';\nexport * from './ordersAndSalesByStatus';\nexport * from './otp';\nexport * from './pageNumber';\nexport * from './part';\nexport * from './partAvailability';\nexport * from './partConsumable';\nexport * from './partQuantity';\nexport * from './partReturn';\nexport * from './partsSalesDto';\nexport * from './partsTrackerCsps';\nexport * from './partsTrackerDms';\nexport * from './paymentSubSubType';\nexport * from './paymentSubType';\nexport * from './paymentType';\nexport * from './permission';\nexport * from './priorityType';\nexport * from './productObj';\nexport * from './releaseVersion';\nexport * from './resultDto';\nexport * from './resultMessage';\nexport * from './role';\nexport * from './sapAttachmentValue';\nexport * from './sapDealerMarketCheckResult';\nexport * from './series';\nexport * from './shift';\nexport * from './shiftPeriods';\nexport * from './skill';\nexport * from './split';\nexport * from './standaloneImportFileResponse';\nexport * from './techClockingDto';\nexport * from './technicalType';\nexport * from './technicianPlanningCount';\nexport * from './technicianPlanningFilterDto';\nexport * from './types';\nexport * from './uncaughtException';\nexport * from './userGuide';\nexport * from './utilizationDto';\nexport * from './validationResponse';\nexport * from './vehicle';\nexport * from './vehicleCourtesy';\nexport * from './vehicleCourtesyBooking';\nexport * from './vehicleLegalInspection';\nexport * from './vehiclesDetailsDto';\nexport * from './warrantyClaimData';\nexport * from './warrantyType';\nexport * from './weeklyTrend';\nexport * from './weeklyTrendDto';\nexport * from './weeklyTrendInspectionDto';\nexport * from './wipAppointmentExcelReport';\nexport * from './wipDto';\nexport * from './workOrderExcelReport';\nexport * from './workshop';\nexport * from './workshopBay';\nexport * from './workshopChecklistType';\nexport * from './workshopDiscount';\nexport * from './workshopEnabled';\nexport * from './workshopFigures';\nexport * from './workshopSale';\nexport * from './workshopSalesDto';\nexport * from './workshopUser';\nexport * from './workshopUserTravelPosition';\nexport * from './workshopUserUnavailability';\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpInformationDelta } from './mpInformationDelta';\n\n\n/**\n * MP Information linked to jobcard Item\n */\nexport interface MpInformation { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * MP Delta information for overdue or close activities\n */\nexport interface MpInformationDelta { \n unit?: string;\n value?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Traducted name object\n */\nexport interface Name { \n id?: number;\n idLanguage?: string;\n name?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NonProductiveActivity { \n /**\n * Non Productive Activity ID.\n */\n id?: number;\n dmsCode?: string;\n description?: string;\n activityName?: string;\n workshopId?: number;\n isVisible?: boolean;\n isDefault?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NonProductiveActivity } from './nonProductiveActivity';\n\n\nexport interface NonProductiveActivityStatus { \n id?: number;\n workshopUserId?: string;\n nonProductiveActivity?: NonProductiveActivity;\n startTime?: string;\n endTime?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { NotificationType } from './notificationType';\n\n\nexport interface Notification { \n id: number;\n sender?: WorkshopUser;\n receiver?: WorkshopUser;\n type?: NotificationType;\n /**\n * Id of appointment\n */\n appointment?: number;\n /**\n * Date of notification\n */\n sentDate?: string;\n /**\n * Viewing date of the notification\n */\n viewDate?: string;\n /**\n * Title of notification\n */\n title?: string;\n /**\n * Description of notification\n */\n body?: string;\n deviceToken?: string;\n /**\n * (For WARRANTY_ACTIVITIES_DONE) List of IDs of done warranty activities, separated by commas\n */\n doneActivities?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NotificationType } from './notificationType';\n\n\nexport interface NotificationCreation { \n type: NotificationType;\n /**\n * Concerned appointment ID\n */\n appointmentId: number;\n /**\n * Required for CUSTOMER_APPROVED. Number of customer approved activities\n */\n nbApproved?: number;\n /**\n * Required for CUSTOMER_APPROVED. Number of customer declined activities\n */\n nbDeclined?: number;\n /**\n * Required for SENT_BACK. Body of the future notification\n */\n body?: string;\n /**\n * Required for SENT_BACK. Notification title of the future notification\n */\n notificationTitle?: string;\n /**\n * Required for WARRANTY_ACTIVITIES_DONE. List of Done warranty activities IDs\n */\n doneActivities?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NotificationType } from './notificationType';\n\n\nexport interface NotificationSubscription { \n /**\n * Subscription ID\n */\n id?: number;\n /**\n * Workshop user ID\n */\n workshopUserId?: string;\n /**\n * Workshop ID\n */\n workshopId?: number;\n notificationType?: NotificationType;\n /**\n * Way of sending notifications (webapp, mail or both)\n */\n sendingWay?: NotificationSubscription.SendingWayEnum;\n /**\n * Minimum number of days for sending warranty notifications\n */\n dayNumberLimit?: number;\n}\nexport namespace NotificationSubscription {\n export type SendingWayEnum = 'notification' | 'email' | 'all';\n export const SendingWayEnum = {\n Notification: 'notification' as SendingWayEnum,\n Email: 'email' as SendingWayEnum,\n All: 'all' as SendingWayEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { NotificationSubscription } from './notificationSubscription';\n\n\nexport interface NotificationSubscriptionSet { \n workshopUserDto?: WorkshopUser;\n subscriptions?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Type of notification\n */\nexport type NotificationType = 'ASSIGN_ACTIVITY' | 'CONFIRM_ACTIVITY' | 'FOLLOW_ACTIVITY' | 'SENT_BACK' | 'WARRANTY_VALIDITY' | 'BREAKDOWN' | 'JOBCARD_CREATED' | 'CHECKED_IN' | 'JOBCARD_DRAFT' | 'CUSTOMER_APPROVED' | 'ACTIVITY_APPROVED' | 'JOBCARD_VALIDATED' | 'WARRANTY_JOB_VALIDATED' | 'INVOICE_PAID' | 'WARRANTY_ACTIVITIES_DONE' | 'WARRANTY_NEAR_DEADLINE' | 'MACHINE_USAGE_UPDATED' | 'EPARTS_BASKET' | 'CLOCKING_SUMMARY' | 'PARTS' | 'ETIM_BASKET' | 'ACTIVITY_COMPLETED';\n\nexport const NotificationType = {\n ASSIGNACTIVITY: 'ASSIGN_ACTIVITY' as NotificationType,\n CONFIRMACTIVITY: 'CONFIRM_ACTIVITY' as NotificationType,\n FOLLOWACTIVITY: 'FOLLOW_ACTIVITY' as NotificationType,\n SENTBACK: 'SENT_BACK' as NotificationType,\n WARRANTYVALIDITY: 'WARRANTY_VALIDITY' as NotificationType,\n BREAKDOWN: 'BREAKDOWN' as NotificationType,\n JOBCARDCREATED: 'JOBCARD_CREATED' as NotificationType,\n CHECKEDIN: 'CHECKED_IN' as NotificationType,\n JOBCARDDRAFT: 'JOBCARD_DRAFT' as NotificationType,\n CUSTOMERAPPROVED: 'CUSTOMER_APPROVED' as NotificationType,\n ACTIVITYAPPROVED: 'ACTIVITY_APPROVED' as NotificationType,\n JOBCARDVALIDATED: 'JOBCARD_VALIDATED' as NotificationType,\n WARRANTYJOBVALIDATED: 'WARRANTY_JOB_VALIDATED' as NotificationType,\n INVOICEPAID: 'INVOICE_PAID' as NotificationType,\n WARRANTYACTIVITIESDONE: 'WARRANTY_ACTIVITIES_DONE' as NotificationType,\n WARRANTYNEARDEADLINE: 'WARRANTY_NEAR_DEADLINE' as NotificationType,\n MACHINEUSAGEUPDATED: 'MACHINE_USAGE_UPDATED' as NotificationType,\n EPARTSBASKET: 'EPARTS_BASKET' as NotificationType,\n CLOCKINGSUMMARY: 'CLOCKING_SUMMARY' as NotificationType,\n PARTS: 'PARTS' as NotificationType,\n ETIMBASKET: 'ETIM_BASKET' as NotificationType,\n ACTIVITYCOMPLETED: 'ACTIVITY_COMPLETED' as NotificationType\n};\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReason { \n /**\n * onhold ID.\n */\n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartQuantity } from './partQuantity';\n\n\n/**\n * Request send to create a csps part(s) simulation (open order)\n */\nexport interface OpenOrderRequest { \n userId?: string;\n /**\n * (id) number of the open order\n */\n orderNumber?: number;\n /**\n * code of the open order\n */\n customerOrderCode?: string;\n /**\n * delivery address of the open order\n */\n retailCode?: number;\n /**\n * delivery address description of the open order\n */\n deliveryAddressDescription?: string;\n /**\n * order type of the open order\n */\n orderType?: number;\n /**\n * order type of the open order description\n */\n orderTypeDescription?: string;\n /**\n * contract code of the open order\n */\n contractCode?: number;\n /**\n * list of parts (code/quantity) to be send to csps\n */\n parts?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OpeningDayPeriods } from './openingDayPeriods';\n\n\nexport interface OpeningDay { \n id?: number;\n weekday?: OpeningDay.WeekdayEnum;\n periods?: Array;\n}\nexport namespace OpeningDay {\n export type WeekdayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const WeekdayEnum = {\n Monday: 'monday' as WeekdayEnum,\n Tuesday: 'tuesday' as WeekdayEnum,\n Wednesday: 'wednesday' as WeekdayEnum,\n Thursday: 'thursday' as WeekdayEnum,\n Friday: 'friday' as WeekdayEnum,\n Saturday: 'saturday' as WeekdayEnum,\n Sunday: 'sunday' as WeekdayEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OpeningDayPeriods { \n id?: number;\n /**\n * Only the hours and minutes are used\n */\n start?: string;\n /**\n * Only the hours and minutes are used\n */\n end?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OperationPart } from './operationPart';\nimport { Kit } from './kit';\nimport { OperationConsumable } from './operationConsumable';\n\n\n/**\n * Technical operation details.\n */\nexport interface Operation { \n /**\n * Operation ID.\n */\n id?: number;\n /**\n * Operation code.\n */\n code?: string;\n /**\n * Operation label.\n */\n label: string;\n /**\n * Operation official time estimation.\n */\n officialTime?: number;\n /**\n * Operation custom time estimation.\n */\n durationTime?: number;\n /**\n * Operation weight used to order the operations.\n */\n weight?: number;\n /**\n * Part manufacturer.\n */\n manufacturer?: string;\n /**\n * Operation required parts.\n */\n parts?: Array;\n /**\n * Operation required consumables.\n */\n consumables?: Array;\n /**\n * Operation required part kits.\n */\n kits?: Array;\n price?: number;\n compulsory?: boolean;\n selected?: boolean;\n /**\n * Check if kit part usable instead of part\n */\n isKitComplete?: boolean;\n /**\n * Use kit instead of part\n */\n useKitPart?: boolean;\n isPartAvailable?: boolean;\n /**\n * Is SRT or not\n */\n srt?: boolean;\n /**\n * type.\n */\n type?: string;\n /**\n * Is default or not\n */\n isDefault?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OprConsumable } from './oprConsumable';\nimport { FictitiousMaterial } from './fictitiousMaterial';\n\n\n/**\n * Operation part need.\n */\nexport interface OperationConsumable { \n /**\n * Operation part association ID.\n */\n id?: number;\n consumable?: OprConsumable;\n /**\n * Parent operation ID.\n */\n operationId?: number;\n /**\n * Part needed quantity.\n */\n quantity?: number;\n selected?: boolean;\n /**\n * Consumable code.\n */\n code?: string;\n ewarrantyCode?: FictitiousMaterial;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FictitiousMaterial } from './fictitiousMaterial';\nimport { Part } from './part';\nimport { OperationPartLocation } from './operationPartLocation';\n\n\n/**\n * Operation part need.\n */\nexport interface OperationPart { \n /**\n * Operation part association ID.\n */\n id?: number;\n part?: Part;\n compulsory?: boolean;\n /**\n * Parent operation ID.\n */\n operationId?: number;\n /**\n * Part needed quantity.\n */\n quantity?: number;\n /**\n * Part needed quantity.\n */\n quantityInStock?: number;\n /**\n * Part needed quantity.\n */\n quantityOnOrder?: number;\n /**\n * Part needed quantity.\n */\n quantityInTransit?: number;\n /**\n * Check if part needs to be returned or not.\n */\n toBeReturned?: boolean;\n maxQuantity?: number;\n price?: number;\n cost?: number;\n selected?: boolean;\n isHomeLocation?: boolean;\n /**\n * Operation required part location.\n */\n jobcardItemOperationPartLocationList?: Array;\n isAvailableAtHomeLocation?: boolean;\n isAvailableAtOtherLocation?: boolean;\n isNotAvailable?: boolean;\n pickupDate?: string;\n ewarrantyCode?: FictitiousMaterial;\n scannedWithMobile?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Operation part location need.\n */\nexport interface OperationPartLocation { \n /**\n * Operation part association ID.\n */\n id?: number;\n /**\n * Operation part Location ID.\n */\n locationId?: string;\n /**\n * Parent operation ID.\n */\n partId?: number;\n /**\n * Part needed quantity.\n */\n quantityInStock?: number;\n /**\n * Part needed quantity.\n */\n quantityOnOrder?: number;\n /**\n * Part needed quantity.\n */\n quantityInTransit?: number;\n siteName?: string;\n locationName?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Warranty of an operation\n */\nexport interface OperationWarranty { \n operationCode?: string;\n failureCode?: string;\n selectedWarrantyType?: string;\n warrantyTypes?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Operation consumable.\n */\nexport interface OprConsumable { \n /**\n * Consumable ID.\n */\n id: number;\n /**\n * Consumable code.\n */\n code: string;\n /**\n * Consumable part Number.\n */\n partNumber?: string;\n /**\n * Consumable needed quantity.\n */\n quantity?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { LinesExcelReport } from './linesExcelReport';\nimport { AverageJobcardDto } from './averageJobcardDto';\nimport { OrdersAndSalesByStatus } from './ordersAndSalesByStatus';\nimport { WorkOrderExcelReport } from './workOrderExcelReport';\n\n\nexport interface OrderStatusDto { \n workOrder?: number;\n quote?: number;\n nonInvoiced?: number;\n averageFailureDays?: number;\n averageArrivalDays?: number;\n averageRepairDays?: number;\n averageDeliveryDays?: number;\n averageDaysToInvoice?: number;\n srtUsageWarrantyPer?: number;\n srtUsageOtherPer?: number;\n averageJobcardDto?: AverageJobcardDto;\n ordersAndSalesByStatus?: Array;\n workOrderExcelReport?: Array;\n linesExcelReport?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WeeklyTrendDto } from './weeklyTrendDto';\nimport { WorkshopSalesDto } from './workshopSalesDto';\nimport { PartsSalesDto } from './partsSalesDto';\n\n\nexport interface OrderStatusPrefDto { \n retailSales?: number;\n warrantySales?: number;\n otherSales?: number;\n totalClockedHours?: number;\n totalOfficialHours?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n partsPrice?: number;\n servicePrice?: number;\n weeklyTrendsDto?: Array;\n partsSalesDto?: PartsSalesDto;\n workshopSalesDto?: WorkshopSalesDto;\n noOfInspections?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS OrderType.\n */\nexport interface OrderTypeDto { \n key?: string;\n /**\n * Value.\n */\n value?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OrderTypeHeaderCode { \n /**\n * OrderTypeHeaderCodeId.\n */\n id?: number;\n code?: string;\n workshopId?: number;\n description?: string;\n isDefault?: boolean;\n visible?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OrdersAndSalesByStatus { \n status?: string;\n totalWorkOrders?: number;\n salesByRetail?: number;\n salesByWarranty?: number;\n salesByOthers?: number;\n salesByParts?: number;\n salesByService?: number;\n totalSales?: number;\n totalPartsSales?: number;\n totalWorkshopSales?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Otp { \n otp?: number;\n randomId?: string;\n phoneNumber?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Number of Pages to call for the DMS.\n */\nexport interface PageNumber { \n pageNumber?: number;\n limit?: number;\n type?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { KitPart } from './kitPart';\nimport { PartAvailability } from './partAvailability';\n\n\n/**\n * Vehicle part.\n */\nexport interface Part { \n /**\n * Part ID.\n */\n id: number;\n /**\n * Part serial number.\n */\n code?: string;\n /**\n * Part description.\n */\n description?: string;\n /**\n * Part manufacturer.\n */\n manufacturer?: string;\n /**\n * Proprietary workshop ID.\n */\n workshopId?: number;\n isKit?: boolean;\n kitPart?: Array;\n /**\n * quantityInStock.\n */\n quantityInStock?: number;\n /**\n * quantityOnOrder.\n */\n quantityOnOrder?: number;\n /**\n * quantityInTransit.\n */\n quantityInTransit?: number;\n quantity?: number;\n partSuperseedingId?: number;\n cspsPartDetails?: Array;\n /**\n * total Available CSPS quantity\n */\n totalAvailableCspsQty?: number;\n /**\n * Home location for parts\n */\n isHomeLocation?: boolean;\n isValidPart?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS part availability.\n */\nexport interface PartAvailability { \n partCode?: string;\n /**\n * Part code.\n */\n localCode?: string;\n /**\n * Part name.\n */\n localName?: string;\n /**\n * localAvailable_qty.\n */\n localAvailable_qty?: number;\n /**\n * localReserved_qty.\n */\n localReserved_qty?: number;\n /**\n * localAssigned_qty.\n */\n localAssigned_qty?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartConsumable { \n id: number;\n code?: string;\n description?: string;\n manufacturer?: string;\n price?: number;\n type?: string;\n isActive?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Part Quantity\n */\nexport interface PartQuantity { \n /**\n * id of the part to be ordered\n */\n partBacklogId?: number;\n /**\n * Code of the part to send\n */\n partCode?: string;\n /**\n * Quantity of the part needed\n */\n quantity?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Vehicle part returned.\n */\nexport interface PartReturn { \n /**\n * Part Number.\n */\n partNumber?: string;\n /**\n * Quantity.\n */\n quantity?: number;\n /**\n * Count Quantity that has been already returned.\n */\n counterQuantity?: number;\n /**\n * Warranty Start date.\n */\n startDate?: string;\n /**\n * Warranty End date.\n */\n endDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsSalesDto { \n retailSales?: number;\n retailMargin?: number;\n warrantySales?: number;\n warrantyMargin?: number;\n otherSales?: number;\n otherMargin?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerCsps { \n id?: number;\n workshopId?: number;\n partId?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerDms { \n id?: number;\n workshopId?: number;\n partId?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Payment Sub Types 2 & 3.\n */\nexport interface PaymentSubSubType { \n /**\n * Payment Sub Type ID.\n */\n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n isVisible?: boolean;\n weight?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubType } from './paymentSubSubType';\n\n\n/**\n * Payment Sub Types.\n */\nexport interface PaymentSubType { \n /**\n * Payment Sub Type ID.\n */\n id?: number;\n code?: string;\n type?: string;\n categoryType?: string;\n description?: string;\n isVisible?: boolean;\n weight?: number;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubType } from './paymentSubType';\n\n\n/**\n * Payment Types.\n */\nexport interface PaymentType { \n /**\n * Payment Type ID.\n */\n id?: number;\n code?: string;\n type?: PaymentType.TypeEnum;\n name?: string;\n isVisible?: boolean;\n paymentSubTypes?: Array;\n weight?: number;\n}\nexport namespace PaymentType {\n export type TypeEnum = 'retail' | 'warranty' | 'internal' | 'otherWarranty';\n export const TypeEnum = {\n Retail: 'retail' as TypeEnum,\n Warranty: 'warranty' as TypeEnum,\n Internal: 'internal' as TypeEnum,\n OtherWarranty: 'otherWarranty' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type Permission = 'admin' | 'cancelAppointment' | 'pricing' | 'createAppointment' | 'nonProductive' | 'kpis' | 'newKpis' | 'activity' | 'onHold' | 'syncVehicles' | 'appointmentInUse' | 'country' | 'myBest' | 'dmsCommunication' | 'reports' | 'inspectionDates' | 'syncShifts' | 'eParts' | 'iuLinking' | 'syncParts' | 'showFeedback' | 'offHold' | 'workspaceTimeView' | 'smartViewAccessByDealer' | 'canAddPartsOnMobile' | 'removeNegotiationEmail' | 'blockCreationForBlockedCustomer' | 'disableEditClocking' | 'noMachineAppointment' | 'noReordering' | 'proactive' | 'clockingSummaryForAG' | 'displayMaintenanceChecklist' | 'workspaceRemoveSpell' | 'clockingErrors';\n\nexport const Permission = {\n Admin: 'admin' as Permission,\n CancelAppointment: 'cancelAppointment' as Permission,\n Pricing: 'pricing' as Permission,\n CreateAppointment: 'createAppointment' as Permission,\n NonProductive: 'nonProductive' as Permission,\n Kpis: 'kpis' as Permission,\n NewKpis: 'newKpis' as Permission,\n Activity: 'activity' as Permission,\n OnHold: 'onHold' as Permission,\n SyncVehicles: 'syncVehicles' as Permission,\n AppointmentInUse: 'appointmentInUse' as Permission,\n Country: 'country' as Permission,\n MyBest: 'myBest' as Permission,\n DmsCommunication: 'dmsCommunication' as Permission,\n Reports: 'reports' as Permission,\n InspectionDates: 'inspectionDates' as Permission,\n SyncShifts: 'syncShifts' as Permission,\n EParts: 'eParts' as Permission,\n IuLinking: 'iuLinking' as Permission,\n SyncParts: 'syncParts' as Permission,\n ShowFeedback: 'showFeedback' as Permission,\n OffHold: 'offHold' as Permission,\n WorkspaceTimeView: 'workspaceTimeView' as Permission,\n SmartViewAccessByDealer: 'smartViewAccessByDealer' as Permission,\n CanAddPartsOnMobile: 'canAddPartsOnMobile' as Permission,\n RemoveNegotiationEmail: 'removeNegotiationEmail' as Permission,\n BlockCreationForBlockedCustomer: 'blockCreationForBlockedCustomer' as Permission,\n DisableEditClocking: 'disableEditClocking' as Permission,\n NoMachineAppointment: 'noMachineAppointment' as Permission,\n NoReordering: 'noReordering' as Permission,\n Proactive: 'proactive' as Permission,\n ClockingSummaryForAG: 'clockingSummaryForAG' as Permission,\n DisplayMaintenanceChecklist: 'displayMaintenanceChecklist' as Permission,\n WorkspaceRemoveSpell: 'workspaceRemoveSpell' as Permission,\n ClockingErrors: 'clockingErrors' as Permission\n};\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * priority Types.\n */\nexport interface PriorityType { \n /**\n * Payment Type ID.\n */\n id?: number;\n description?: string;\n icon?: string;\n value?: string;\n status?: PriorityType.StatusEnum;\n type?: string;\n defaultPriority?: boolean;\n}\nexport namespace PriorityType {\n export type StatusEnum = 'High' | 'Medium' | 'Low' | 'NoPriority';\n export const StatusEnum = {\n High: 'High' as StatusEnum,\n Medium: 'Medium' as StatusEnum,\n Low: 'Low' as StatusEnum,\n NoPriority: 'NoPriority' as StatusEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Series } from './series';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' product.\n */\nexport interface ProductObj { \n /**\n * Type ID.\n */\n id: number;\n /**\n * type name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n seriesList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ReleaseVersion { \n environment?: string;\n business?: string;\n version?: string;\n releaseDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Generic object used to return simple string value like Workshop Dealer Claim Number for example.\n */\nexport interface ResultDto { \n res?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ResultMessage { \n /**\n * Result message identification code\n */\n code?: string;\n /**\n * Result message content\n */\n message?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Role { \n id: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SapAttachmentValue { \n id?: number;\n technicalType?: string;\n company?: string;\n brand?: string;\n division?: string;\n salesDistrict?: string;\n serialNumber?: string;\n warrantyType?: string;\n failureCode?: string;\n breakCode?: string;\n itemType?: string;\n materialNumber?: string;\n partNumber?: string;\n recordType?: string;\n counter?: number;\n amountClaimed?: number;\n ruleId?: string;\n documentType?: string;\n dateType?: string;\n numberOfDays?: number;\n materialStatus?: string;\n creationDate?: string;\n createdBy?: string;\n changeDate?: string;\n changedBy?: string;\n dealerCode?: string;\n sapProvider?: string;\n totalClaimAmount?: number;\n attachmentNeeded?: boolean;\n noAttachmentNeeded?: boolean;\n noAttachmentPresent?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SapDealerMarketCheckResult { \n /**\n * Current appointment ID for retrieving the dealer\\'s master data\n */\n appointmentId?: number;\n europeanDealerCheckResult?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { Model } from './model';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' series.\n */\nexport interface Series { \n /**\n * Series ID.\n */\n id: number;\n /**\n * Series name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n /**\n * Model list for the tree product\n */\n modelList?: Array;\n models?: Array;\n brand?: Brand;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriods } from './shiftPeriods';\n\n\n/**\n * Shift of the workspace\n */\nexport interface Shift { \n id?: number;\n userShiftId?: number;\n description?: string;\n dmsId?: string;\n type?: Shift.TypeEnum;\n startDate?: string;\n endDate?: string;\n periods?: Array;\n recurrence?: Array;\n}\nexport namespace Shift {\n export type TypeEnum = 'productive' | 'unproductive';\n export const TypeEnum = {\n Productive: 'productive' as TypeEnum,\n Unproductive: 'unproductive' as TypeEnum\n };\n export type RecurrenceEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const RecurrenceEnum = {\n Monday: 'monday' as RecurrenceEnum,\n Tuesday: 'tuesday' as RecurrenceEnum,\n Wednesday: 'wednesday' as RecurrenceEnum,\n Thursday: 'thursday' as RecurrenceEnum,\n Friday: 'friday' as RecurrenceEnum,\n Saturday: 'saturday' as RecurrenceEnum,\n Sunday: 'sunday' as RecurrenceEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriods { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: ShiftPeriods.DayEnum;\n}\nexport namespace ShiftPeriods {\n export type DayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const DayEnum = {\n Monday: 'monday' as DayEnum,\n Tuesday: 'tuesday' as DayEnum,\n Wednesday: 'wednesday' as DayEnum,\n Thursday: 'thursday' as DayEnum,\n Friday: 'friday' as DayEnum,\n Saturday: 'saturday' as DayEnum,\n Sunday: 'sunday' as DayEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Skill of a user\n */\nexport interface Skill { \n id?: number;\n description?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Division of total price\n */\nexport interface Split { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface StandaloneImportFileResponse { \n responseCode?: string;\n responseDescription?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TechClockingDto { \n booking?: number;\n customer?: string;\n activitytype?: string;\n activities?: string;\n activitystatus?: string;\n technicianname?: string;\n plannedtime?: string;\n spellStartTime?: string;\n spellEndTime?: string;\n clockingStartTime?: string;\n clockingEndTime?: string;\n clockedtime?: string;\n operation?: string;\n startDate?: string;\n vin?: string;\n isBreakdownAppt?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Vehicles\\' Tech Type.\n */\nexport interface TechnicalType { \n /**\n * TT ID.\n */\n id: number;\n /**\n * TT name.\n */\n name?: string;\n /**\n * TT name id.\n */\n idName?: number;\n iceCode?: string;\n code?: string;\n label?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TechnicianPlanningCount { \n draftAptsCount?: number;\n scheduleAptsCount?: number;\n preparedAptsCount?: number;\n receivedAptsCount?: number;\n repairingAptsCount?: number;\n serviceAdvisorValidPendingAptsCount?: number;\n clientValidPendingAptsCount?: number;\n jobcardValidPendingAptsCount?: number;\n sentBackAptsCount?: number;\n workfileValidatedAptsCount?: number;\n vehicleDeliveredAptsCount?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TechnicianPlanningFilterDto { \n priority?: string;\n searchFilter?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ProductObj } from './productObj';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' Type.\n */\nexport interface Types { \n /**\n * Type ID.\n */\n id: number;\n /**\n * type name.\n */\n name?: string;\n iceCode?: string;\n /**\n * type name id.\n */\n idName?: number;\n nameObj?: Name;\n productList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Uncaught Exceptions.\n */\nexport interface UncaughtException { \n id?: number;\n workshopId?: number;\n userId?: string;\n logDate?: string;\n path?: string;\n cause?: string;\n stackTrace?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Number of Pages to call for the DMS.\n */\nexport interface UserGuide { \n imageUrl?: string;\n title?: string;\n description?: string;\n categorie?: string;\n markdownUrl?: string;\n updatedDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UtilizationDto { \n utilization?: number;\n productivity?: number;\n nonProductivity?: number;\n efficiency?: number;\n hrsSold?: number;\n productiveHrsActual?: number;\n productiveHrsPlanned?: number;\n hrsAvailable?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ValidationResponse { \n isValidated?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Brand } from './brand';\nimport { Series } from './series';\nimport { Model } from './model';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface Vehicle { \n id: number;\n isDuplicate?: boolean;\n isActive?: boolean;\n customerCompanyId?: number;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vin?: string;\n serialNumber?: string;\n brand?: Brand;\n series?: Series;\n model?: Model;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n warrantyStartDate?: string;\n vehicleNote?: string;\n annualInspectionDate?: string;\n tachometerDate?: string;\n dmsId?: string;\n workshopId?: number;\n customerCompanyUser?: CustomerCompanyUser;\n invoiceDate?: string;\n appointments?: Array;\n stockNumber?: string;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Brand } from './brand';\nimport { Series } from './series';\nimport { Model } from './model';\nimport { Workshop } from './workshop';\n\n\nexport interface VehicleCourtesy { \n id: number;\n vin?: string;\n brand?: Brand;\n series?: Series;\n model?: Model;\n plate?: string;\n mileage?: number;\n status?: string;\n dmsId?: string;\n workshop?: Workshop;\n vehicleNote?: string;\n appointments?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Vehicle } from './vehicle';\n\n\n/**\n * Fields for Booking Courtesy Vehicle .\n */\nexport interface VehicleCourtesyBooking { \n /**\n * Id.\n */\n id: number;\n /**\n * Departure Date.\n */\n startDate?: string;\n /**\n * Reception Date\n */\n endDate?: string;\n /**\n * Reason for Booking.\n */\n reason?: string;\n vehicleCourtesy?: Vehicle;\n appointment?: Appointment;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleLegalInspection { \n id?: number;\n label?: string;\n code?: string;\n date?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehiclesDetailsDto { \n plate?: string;\n vin?: string;\n brand?: string;\n model?: string;\n partsSales?: number;\n partsMargin?: number;\n workshopSales?: number;\n workshopMargin?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Claim details for an activity.\n */\nexport interface WarrantyClaimData { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Warranty Type Object\n */\nexport interface WarrantyType { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WeeklyTrend { \n date?: string;\n wipClockedHrs?: number;\n wipLab?: number;\n wipParts?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WeeklyTrendDto { \n date?: string;\n totalHours?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WeeklyTrendInspectionDto { \n date?: string;\n noOfInspection?: number;\n defectsIdentified?: number;\n defectsQuoted?: number;\n itemApproved?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WipAppointmentExcelReport { \n deliveryDate?: string;\n actualReceptionDate?: string;\n lastWorkDate?: string;\n bookingId?: number;\n dmsOrderNumber?: number | string;\n customerName?: string;\n vehicle?: string;\n model?: string;\n serviceAdvisor?: string;\n allowedTime?: number;\n clockedTime?: number;\n workshopSales?: number;\n partSales?: number;\n workDays?: number;\n status?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WeeklyTrend } from './weeklyTrend';\nimport { WipAppointmentExcelReport } from './wipAppointmentExcelReport';\n\n\nexport interface WipDto { \n totalWorkOrders?: number;\n totalArrived?: number;\n totalRepairing?: number;\n totalValidationPending?: number;\n totalValidated?: number;\n totalDelivered?: number;\n avgDays?: number;\n avgOfThreeDays?: number;\n totalClockedHrs?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n weeklyTrends?: Array;\n appointments?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkOrderExcelReport { \n bookingId?: number;\n appointmentStatus?: string;\n documentStatus?: string;\n failureDate?: string;\n plannedArrivalDate?: string;\n actualArrivalDate?: string;\n repairStartTime?: string;\n repairEndTime?: string;\n plannedDeliveryDate?: string;\n actualDeliveryDate?: string;\n lastWorkingDate?: string;\n invoiceDate?: string;\n negotiationMailCount?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopSale } from './workshopSale';\nimport { OpeningDay } from './openingDay';\n\n\n/**\n * Data for workshop.\n */\nexport interface Workshop { \n id: number;\n name: string;\n address?: string;\n city?: string;\n country?: string;\n phone?: string;\n email?: string;\n sapCode?: string;\n workshopSalesOrganizations?: Array;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n isImportStaffFromDms?: boolean;\n isTrWorkflow?: boolean;\n dmsAuthenticationPassword?: string;\n openingDays?: Array;\n /**\n * Currency code following ISO 4217\n */\n currencyCode?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n enableSafetyChecklist?: boolean;\n cspsUserId?: string;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n allowedTimePreferred?: string;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n labourCost?: number;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n dmsClockingBehavior?: Workshop.DmsClockingBehaviorEnum;\n dmsProvider?: string;\n addressDMSLimit?: number;\n eWarrantyFieldsMandatory?: boolean;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n selected?: boolean;\n}\nexport namespace Workshop {\n export type DmsClockingBehaviorEnum = 'REPLACE' | 'UPDATE' | 'IGNORE';\n export const DmsClockingBehaviorEnum = {\n REPLACE: 'REPLACE' as DmsClockingBehaviorEnum,\n UPDATE: 'UPDATE' as DmsClockingBehaviorEnum,\n IGNORE: 'IGNORE' as DmsClockingBehaviorEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface WorkshopBay { \n id?: number;\n name?: string;\n type?: string;\n workshopId?: number;\n weight?: number;\n isActive?: boolean;\n leadTechnician?: string;\n bayCode?: string;\n maximumUtilisation?: number;\n technicians?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopChecklistType { \n id?: number;\n checklistType?: string;\n workshopId?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Workshop } from './workshop';\n\n\n/**\n * Workshop discount\n */\nexport interface WorkshopDiscount { \n id?: number;\n dmsCode?: string;\n name?: string;\n percentage?: number;\n additionalInformation?: string;\n discountType?: string;\n workshop?: Workshop;\n workshopUsers?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Workshop enabled information.\n */\nexport interface WorkshopEnabled { \n workshopId?: number;\n workshopSapCode?: string;\n workshopEnabled?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopFigures { \n nbCustomers?: number;\n nbVehicles?: number;\n nbParts?: number;\n nbOperations?: number;\n nbOtherItems?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Workshop with Sales organizations\n */\nexport interface WorkshopSale { \n id?: number;\n brand?: string;\n division?: string;\n salesCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesDto { \n retailSales?: number;\n retailMargin?: number;\n warrantySales?: number;\n warrantyMargin?: number;\n otherSales?: number;\n otherMargin?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Role } from './role';\nimport { Shift } from './shift';\nimport { Skill } from './skill';\nimport { Workshop } from './workshop';\nimport { WorkshopUserUnavailability } from './workshopUserUnavailability';\nimport { WorkshopBay } from './workshopBay';\n\n\nexport interface WorkshopUser { \n id: string;\n views?: WorkshopUser.ViewsEnum;\n isActivityApproval?: WorkshopUser.IsActivityApprovalEnum;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n isActive?: boolean;\n isAdmin?: boolean;\n isManualJobStatusOverride?: boolean;\n role?: Role;\n workshopBay?: WorkshopBay;\n workshopBays?: Array;\n unavailabilities?: Array;\n isTechnicianView?: boolean;\n isAssociateUser?: boolean;\n deviceToken?: string;\n appVersion?: string;\n canEditJobcard?: boolean;\n displayedName?: string;\n skills?: Array;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n shifts?: Array;\n canSeePrice?: boolean;\n isAutomaticApproval?: WorkshopUser.IsAutomaticApprovalEnum;\n leadWorkshopBayId?: number;\n url?: string;\n costRate?: number;\n email?: string;\n canSelfAssign?: boolean;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n workshopList?: Array;\n}\nexport namespace WorkshopUser {\n export type ViewsEnum = 'workshopAgendaView' | 'technicianAgendaView' | 'courtesyVehicleAgendaView' | 'workshopPlanningView' | 'workshopUtilisationView' | 'technicianPlanningView' | 'courtesyVehiclePlanningView';\n export const ViewsEnum = {\n WorkshopAgendaView: 'workshopAgendaView' as ViewsEnum,\n TechnicianAgendaView: 'technicianAgendaView' as ViewsEnum,\n CourtesyVehicleAgendaView: 'courtesyVehicleAgendaView' as ViewsEnum,\n WorkshopPlanningView: 'workshopPlanningView' as ViewsEnum,\n WorkshopUtilisationView: 'workshopUtilisationView' as ViewsEnum,\n TechnicianPlanningView: 'technicianPlanningView' as ViewsEnum,\n CourtesyVehiclePlanningView: 'courtesyVehiclePlanningView' as ViewsEnum\n };\n export type IsActivityApprovalEnum = 'yesToDoStatus' | 'yesNewStatusOnly' | 'outOfHoursNewStatus' | 'outOfHoursNo' | 'nope';\n export const IsActivityApprovalEnum = {\n YesToDoStatus: 'yesToDoStatus' as IsActivityApprovalEnum,\n YesNewStatusOnly: 'yesNewStatusOnly' as IsActivityApprovalEnum,\n OutOfHoursNewStatus: 'outOfHoursNewStatus' as IsActivityApprovalEnum,\n OutOfHoursNo: 'outOfHoursNo' as IsActivityApprovalEnum,\n Nope: 'nope' as IsActivityApprovalEnum\n };\n export type IsAutomaticApprovalEnum = 'yesImmediateAccess' | 'yesDraftOnly' | 'outOfHoursDraftOnly' | 'outOfHoursNo' | 'yesAnytime' | 'yesOffline' | 'nope';\n export const IsAutomaticApprovalEnum = {\n YesImmediateAccess: 'yesImmediateAccess' as IsAutomaticApprovalEnum,\n YesDraftOnly: 'yesDraftOnly' as IsAutomaticApprovalEnum,\n OutOfHoursDraftOnly: 'outOfHoursDraftOnly' as IsAutomaticApprovalEnum,\n OutOfHoursNo: 'outOfHoursNo' as IsAutomaticApprovalEnum,\n YesAnytime: 'yesAnytime' as IsAutomaticApprovalEnum,\n YesOffline: 'yesOffline' as IsAutomaticApprovalEnum,\n Nope: 'nope' as IsAutomaticApprovalEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A technician\\'s GPS position for a specific travel.\n */\nexport interface WorkshopUserTravelPosition { \n id?: number;\n /**\n * Technician\\'s ID.\n */\n workshopUserId?: string;\n /**\n * Travel ID (if attached to a jobcard).\n */\n jobcardTravelId?: number;\n /**\n * Travel ID (if attached to a jobcard item).\n */\n jobcardItemTravelId?: number;\n latitude?: number;\n longitude?: number;\n /**\n * Position date-time\n */\n positionDate?: string;\n /**\n * Position type (start/ongoing/stop)\n */\n positionType?: WorkshopUserTravelPosition.PositionTypeEnum;\n /**\n * Device features\\' status when the position has been sent.\n */\n deviceStatus?: string;\n}\nexport namespace WorkshopUserTravelPosition {\n export type PositionTypeEnum = 'START' | 'ONGOING' | 'STOP';\n export const PositionTypeEnum = {\n START: 'START' as PositionTypeEnum,\n ONGOING: 'ONGOING' as PositionTypeEnum,\n STOP: 'STOP' as PositionTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailability { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: WorkshopUserUnavailability.TypeEnum;\n}\nexport namespace WorkshopUserUnavailability {\n export type TypeEnum = 'holiday' | 'sickness' | 'training' | 'admin';\n export const TypeEnum = {\n Holiday: 'holiday' as TypeEnum,\n Sickness: 'sickness' as TypeEnum,\n Training: 'training' as TypeEnum,\n Admin: 'admin' as TypeEnum\n };\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\nimport { EtimService } from './api/etim.service';\nimport { FailureService } from './api/failure.service';\nimport { MaintenanceService } from './api/maintenance.service';\nimport { SmartViewService } from './api/smartView.service';\nimport { SrtService } from './api/srt.service';\nimport { SrtSupplierService } from './api/srtSupplier.service';\nimport { WarrantyService } from './api/warranty.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","export * from './etim.service';\nimport { EtimService } from './etim.service';\nexport * from './failure.service';\nimport { FailureService } from './failure.service';\nexport * from './maintenance.service';\nimport { MaintenanceService } from './maintenance.service';\nexport * from './smartView.service';\nimport { SmartViewService } from './smartView.service';\nexport * from './srt.service';\nimport { SrtService } from './srt.service';\nexport * from './srtSupplier.service';\nimport { SrtSupplierService } from './srtSupplier.service';\nexport * from './warranty.service';\nimport { WarrantyService } from './warranty.service';\nexport const APIS = [EtimService, FailureService, MaintenanceService, SmartViewService, SrtService, SrtSupplierService, WarrantyService];\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { MarketContext } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SetMarketContextRequestParams {\n marketContext?: MarketContext;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EtimService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Set the marketContext (token).\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setMarketContext(requestParameters: SetMarketContextRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setMarketContext(requestParameters: SetMarketContextRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setMarketContext(requestParameters: SetMarketContextRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setMarketContext(requestParameters: SetMarketContextRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const marketContext = requestParameters.marketContext;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/setMarketCountry`,\n marketContext,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { SapFailure } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetFailureCodesRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FailureService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * get the Failure Codes for the given language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFailureCodes(requestParameters?: GetFailureCodesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFailureCodes(requestParameters?: GetFailureCodesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFailureCodes(requestParameters?: GetFailureCodesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFailureCodes(requestParameters?: GetFailureCodesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/failure-codes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { Operation } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetMaintenanceOperationByCouponRequestParams {\n /** Coupon Code. */\n couponCode: string;\n /** vin. */\n vin: string;\n /** Market ID. */\n marketId: number;\n /** Country. */\n country: string;\n /** Plan ID. */\n planId?: number;\n /** Appointment ID. */\n appointmentId?: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MaintenanceService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * get the Operations for a maintenance plan and coupon\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMaintenanceOperationByCoupon(requestParameters: GetMaintenanceOperationByCouponRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getMaintenanceOperationByCoupon(requestParameters: GetMaintenanceOperationByCouponRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getMaintenanceOperationByCoupon(requestParameters: GetMaintenanceOperationByCouponRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getMaintenanceOperationByCoupon(requestParameters: GetMaintenanceOperationByCouponRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const couponCode = requestParameters.couponCode;\n if (couponCode === null || couponCode === undefined) {\n throw new Error('Required parameter couponCode was null or undefined when calling getMaintenanceOperationByCoupon.');\n }\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getMaintenanceOperationByCoupon.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getMaintenanceOperationByCoupon.');\n }\n const country = requestParameters.country;\n if (country === null || country === undefined) {\n throw new Error('Required parameter country was null or undefined when calling getMaintenanceOperationByCoupon.');\n }\n const planId = requestParameters.planId;\n const appointmentId = requestParameters.appointmentId;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (couponCode !== undefined && couponCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n couponCode, 'couponCode');\n }\n if (planId !== undefined && planId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n planId, 'planId');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n if (country !== undefined && country !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n country, 'country');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/maintenance-operations`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { CurrentVehicleData } from '../model/models';\nimport { DiagnosisHistory } from '../model/models';\nimport { ExtraOperation } from '../model/models';\nimport { GeoStoreDetails } from '../model/models';\nimport { JobcardItem } from '../model/models';\nimport { KmLink } from '../model/models';\nimport { MpUnit } from '../model/models';\nimport { Operation } from '../model/models';\nimport { Part } from '../model/models';\nimport { Product } from '../model/models';\nimport { Url } from '../model/models';\nimport { VehicleDetails } from '../model/models';\nimport { VehicleInfo } from '../model/models';\nimport { VinValidity } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetAlertListRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAsistKitsURlRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** PIP code */\n pipCode?: string;\n /** SAP code */\n sapCode?: string;\n /** isInternal */\n isInternal?: boolean;\n /** language */\n language?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetAsistThdURlRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** SAP code */\n sapCode?: string;\n /** isInternal */\n isInternal?: boolean;\n /** language */\n language?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetDiagnosisHistoryRequestParams {\n /** false by default. */\n isTeleservice?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetEdsVehicleInfoRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetFaultCodetListRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetGeoStoreDetailsRequestParams {\n /** Vehicle\\'s VIN/PIN. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetKmLinkRequestParams {\n /** Type of document used for the KM Link */\n type: 'PIP' | 'SB' | 'KA';\n /** Document ID */\n docId: string;\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetMaintenanceListRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Vehicle\\'s mileage at jobcard creation. */\n actualMileage?: number;\n /** Vehicle\\'s hour at jobcard creation. */\n actualHour?: number;\n /** appointment ID. */\n appointmentId?: number;\n /** save Snapshot or not. */\n saveSnapshot?: boolean;\n /** wokshop Country. */\n country?: string;\n /** Machine connected details. */\n isConnected?: boolean;\n /** ucr manage machine. */\n ucrManageMP?: boolean;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetMaintenanceUnitRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPIPListRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPipCausalPartRequestParams {\n /** PIP code */\n pipCode: string;\n /** VIN. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPipDetailsRequestParams {\n /** PIP code */\n pipCode: string;\n /** VIN. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetPipOtherItemsRequestParams {\n /** PIP code */\n pipCode: string;\n /** VIN. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetProductInformationRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleDetailsRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVehicleTelematicsRequestParams {\n /** Vehicle\\'s VIN/PIN. */\n vin: string;\n /** workshop user id/eTIM user. */\n userId: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetVinValidityRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface UpdateKitsPartsMaintenancesRequestParams {\n jobcardItem?: Array;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SmartViewService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Get the alerts\\' list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAlertList(requestParameters: GetAlertListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAlertList(requestParameters: GetAlertListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAlertList(requestParameters: GetAlertListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAlertList(requestParameters: GetAlertListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getAlertList.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/alerts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the ASiST Kit URL.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAsistKitsURl(requestParameters: GetAsistKitsURlRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAsistKitsURl(requestParameters: GetAsistKitsURlRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAsistKitsURl(requestParameters: GetAsistKitsURlRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAsistKitsURl(requestParameters: GetAsistKitsURlRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getAsistKitsURl.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getAsistKitsURl.');\n }\n const pipCode = requestParameters.pipCode;\n const sapCode = requestParameters.sapCode;\n const isInternal = requestParameters.isInternal;\n const language = requestParameters.language;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n if (pipCode !== undefined && pipCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pipCode, 'pipCode');\n }\n if (sapCode !== undefined && sapCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sapCode, 'sapCode');\n }\n if (isInternal !== undefined && isInternal !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isInternal, 'isInternal');\n }\n if (language !== undefined && language !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n language, 'language');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/asist-kits`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the THD URL.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAsistThdURl(requestParameters: GetAsistThdURlRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAsistThdURl(requestParameters: GetAsistThdURlRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAsistThdURl(requestParameters: GetAsistThdURlRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAsistThdURl(requestParameters: GetAsistThdURlRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getAsistThdURl.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getAsistThdURl.');\n }\n const sapCode = requestParameters.sapCode;\n const isInternal = requestParameters.isInternal;\n const language = requestParameters.language;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n if (sapCode !== undefined && sapCode !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sapCode, 'sapCode');\n }\n if (isInternal !== undefined && isInternal !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isInternal, 'isInternal');\n }\n if (language !== undefined && language !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n language, 'language');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/asist-thd`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the diagnosis history of fault codes\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getDiagnosisHistory(requestParameters: GetDiagnosisHistoryRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getDiagnosisHistory(requestParameters: GetDiagnosisHistoryRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDiagnosisHistory(requestParameters: GetDiagnosisHistoryRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getDiagnosisHistory(requestParameters: GetDiagnosisHistoryRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const isTeleservice = requestParameters.isTeleservice;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isTeleservice !== undefined && isTeleservice !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isTeleservice, 'isTeleservice');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/diagnosis/history/`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the EDS Information from the vehicle.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getEdsVehicleInfo(requestParameters: GetEdsVehicleInfoRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getEdsVehicleInfo(requestParameters: GetEdsVehicleInfoRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEdsVehicleInfo(requestParameters: GetEdsVehicleInfoRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getEdsVehicleInfo(requestParameters: GetEdsVehicleInfoRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getEdsVehicleInfo.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/vehicle-info`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the fault codes\\' list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getFaultCodetList(requestParameters: GetFaultCodetListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getFaultCodetList(requestParameters: GetFaultCodetListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFaultCodetList(requestParameters: GetFaultCodetListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getFaultCodetList(requestParameters: GetFaultCodetListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getFaultCodetList.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/fault-codes`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get vehicle connected machine geo store details\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getGeoStoreDetails(requestParameters: GetGeoStoreDetailsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getGeoStoreDetails(requestParameters: GetGeoStoreDetailsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGeoStoreDetails(requestParameters: GetGeoStoreDetailsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getGeoStoreDetails(requestParameters: GetGeoStoreDetailsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getGeoStoreDetails.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/geostore-details`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get active warranties\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getKmLink(requestParameters: GetKmLinkRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getKmLink(requestParameters: GetKmLinkRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKmLink(requestParameters: GetKmLinkRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getKmLink(requestParameters: GetKmLinkRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const type = requestParameters.type;\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling getKmLink.');\n }\n const docId = requestParameters.docId;\n if (docId === null || docId === undefined) {\n throw new Error('Required parameter docId was null or undefined when calling getKmLink.');\n }\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getKmLink.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getKmLink.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/km-link/${encodeURIComponent(String(type))}/${encodeURIComponent(String(docId))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the maintenance\\'s list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMaintenanceList(requestParameters: GetMaintenanceListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getMaintenanceList(requestParameters: GetMaintenanceListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getMaintenanceList(requestParameters: GetMaintenanceListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getMaintenanceList(requestParameters: GetMaintenanceListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getMaintenanceList.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getMaintenanceList.');\n }\n const actualMileage = requestParameters.actualMileage;\n const actualHour = requestParameters.actualHour;\n const appointmentId = requestParameters.appointmentId;\n const saveSnapshot = requestParameters.saveSnapshot;\n const country = requestParameters.country;\n const isConnected = requestParameters.isConnected;\n const ucrManageMP = requestParameters.ucrManageMP;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (actualMileage !== undefined && actualMileage !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n actualMileage, 'actualMileage');\n }\n if (actualHour !== undefined && actualHour !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n actualHour, 'actualHour');\n }\n if (appointmentId !== undefined && appointmentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n appointmentId, 'appointmentId');\n }\n if (saveSnapshot !== undefined && saveSnapshot !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n saveSnapshot, 'saveSnapshot');\n }\n if (country !== undefined && country !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n country, 'country');\n }\n if (isConnected !== undefined && isConnected !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isConnected, 'isConnected');\n }\n if (ucrManageMP !== undefined && ucrManageMP !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ucrManageMP, 'ucrManageMP');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/maintenance`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the maintenance unit for a VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getMaintenanceUnit(requestParameters: GetMaintenanceUnitRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getMaintenanceUnit(requestParameters: GetMaintenanceUnitRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getMaintenanceUnit(requestParameters: GetMaintenanceUnitRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getMaintenanceUnit(requestParameters: GetMaintenanceUnitRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getMaintenanceUnit.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getMaintenanceUnit.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/maintenance-unit`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the PIPs\\' list.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPIPList(requestParameters: GetPIPListRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPIPList(requestParameters: GetPIPListRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPIPList(requestParameters: GetPIPListRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPIPList(requestParameters: GetPIPListRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getPIPList.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getPIPList.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/pips`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the PIP Causal Part based on the PIP Code, the VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPipCausalPart(requestParameters: GetPipCausalPartRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getPipCausalPart(requestParameters: GetPipCausalPartRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPipCausalPart(requestParameters: GetPipCausalPartRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPipCausalPart(requestParameters: GetPipCausalPartRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const pipCode = requestParameters.pipCode;\n if (pipCode === null || pipCode === undefined) {\n throw new Error('Required parameter pipCode was null or undefined when calling getPipCausalPart.');\n }\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getPipCausalPart.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/pip-causal-part/${encodeURIComponent(String(pipCode))}/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the PIP Details based on the PIP Code, the VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPipDetails(requestParameters: GetPipDetailsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPipDetails(requestParameters: GetPipDetailsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPipDetails(requestParameters: GetPipDetailsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPipDetails(requestParameters: GetPipDetailsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const pipCode = requestParameters.pipCode;\n if (pipCode === null || pipCode === undefined) {\n throw new Error('Required parameter pipCode was null or undefined when calling getPipDetails.');\n }\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getPipDetails.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/pip-details/${encodeURIComponent(String(pipCode))}/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the PIP Other Items based on the PIP Code, the VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getPipOtherItems(requestParameters: GetPipOtherItemsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getPipOtherItems(requestParameters: GetPipOtherItemsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPipOtherItems(requestParameters: GetPipOtherItemsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getPipOtherItems(requestParameters: GetPipOtherItemsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const pipCode = requestParameters.pipCode;\n if (pipCode === null || pipCode === undefined) {\n throw new Error('Required parameter pipCode was null or undefined when calling getPipOtherItems.');\n }\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getPipOtherItems.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/pip-other-items/${encodeURIComponent(String(pipCode))}/${encodeURIComponent(String(vin))}`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the Product information.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getProductInformation(requestParameters: GetProductInformationRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getProductInformation(requestParameters: GetProductInformationRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getProductInformation(requestParameters: GetProductInformationRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getProductInformation(requestParameters: GetProductInformationRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getProductInformation.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/products`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get the vehicle details.\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleDetails(requestParameters: GetVehicleDetailsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVehicleDetails(requestParameters: GetVehicleDetailsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleDetails(requestParameters: GetVehicleDetailsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleDetails(requestParameters: GetVehicleDetailsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getVehicleDetails.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getVehicleDetails.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/vehicle-details`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get vehicle connected details\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVehicleTelematics(requestParameters: GetVehicleTelematicsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVehicleTelematics(requestParameters: GetVehicleTelematicsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleTelematics(requestParameters: GetVehicleTelematicsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVehicleTelematics(requestParameters: GetVehicleTelematicsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getVehicleTelematics.');\n }\n const userId = requestParameters.userId;\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling getVehicleTelematics.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (userId !== undefined && userId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n userId, 'userId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/vehicle-telematics`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the maintenance unit for a VIN\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVinValidity(requestParameters: GetVinValidityRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getVinValidity(requestParameters: GetVinValidityRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVinValidity(requestParameters: GetVinValidityRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getVinValidity(requestParameters: GetVinValidityRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getVinValidity.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getVinValidity.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/vin-validity`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update maintenance list about the kit part they use\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateKitsPartsMaintenances(requestParameters: UpdateKitsPartsMaintenancesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateKitsPartsMaintenances(requestParameters: UpdateKitsPartsMaintenancesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateKitsPartsMaintenances(requestParameters: UpdateKitsPartsMaintenancesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public updateKitsPartsMaintenances(requestParameters: UpdateKitsPartsMaintenancesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const jobcardItem = requestParameters.jobcardItem;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put>(`${this.configuration.basePath}/maintenance/updateKitsUsedNew`,\n jobcardItem,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { Operation } from '../model/models';\nimport { SrtOperation } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SearchDefectsByLanguageRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchOperationsRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchOperationsByLanguageRequestParams {\n /** Text to Search */\n text?: string;\n /** Vehicle Identification Number. */\n vin?: string;\n /** Index of the start of the search (0 by default) */\n start?: number;\n /** Search limit (infinite by default) */\n limit?: number;\n /** Sort search */\n sortBy?: string;\n /** Order of search parameters */\n sortOrder?: 'asc' | 'desc';\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface SearchOperationsByPartRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Part number to search */\n partNumber?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SrtService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Search defects by language\n * Search available defects in a certain language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchDefectsByLanguage(requestParameters?: SearchDefectsByLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchDefectsByLanguage(requestParameters?: SearchDefectsByLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchDefectsByLanguage(requestParameters?: SearchDefectsByLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchDefectsByLanguage(requestParameters?: SearchDefectsByLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/srt-defect`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search operations for vehicle\n * Search available operations for a specific vehicle in a certain language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchOperations(requestParameters: SearchOperationsRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchOperations(requestParameters: SearchOperationsRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchOperations(requestParameters: SearchOperationsRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchOperations(requestParameters: SearchOperationsRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling searchOperations.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/srt`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search operations by language\n * Search available operations in a certain language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchOperationsByLanguage(requestParameters: SearchOperationsByLanguageRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchOperationsByLanguage(requestParameters: SearchOperationsByLanguageRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchOperationsByLanguage(requestParameters: SearchOperationsByLanguageRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchOperationsByLanguage(requestParameters: SearchOperationsByLanguageRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const text = requestParameters.text;\n const vin = requestParameters.vin;\n const start = requestParameters.start;\n const limit = requestParameters.limit;\n const sortBy = requestParameters.sortBy;\n const sortOrder = requestParameters.sortOrder;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (text !== undefined && text !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n text, 'text');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (start !== undefined && start !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n start, 'start');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (sortBy !== undefined && sortBy !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortBy, 'sortBy');\n }\n if (sortOrder !== undefined && sortOrder !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortOrder, 'sortOrder');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/srt-operation-translation`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Search operations by part number\n * Search available operations for a given part number\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchOperationsByPart(requestParameters: SearchOperationsByPartRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchOperationsByPart(requestParameters: SearchOperationsByPartRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchOperationsByPart(requestParameters: SearchOperationsByPartRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchOperationsByPart(requestParameters: SearchOperationsByPartRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling searchOperationsByPart.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling searchOperationsByPart.');\n }\n const partNumber = requestParameters.partNumber;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (partNumber !== undefined && partNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n partNumber, 'partNumber');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/srt-parts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { SrtSupplierCode } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface SearchSupplierCodeRequestParams {\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SrtSupplierService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Search supplier code by language\n * Search available defects in a certain language\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public searchSupplierCode(requestParameters?: SearchSupplierCodeRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public searchSupplierCode(requestParameters?: SearchSupplierCodeRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchSupplierCode(requestParameters?: SearchSupplierCodeRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public searchSupplierCode(requestParameters?: SearchSupplierCodeRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (!requestParameters) {\n requestParameters = {};\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/srt-supplier`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ApiError } from '../model/models';\nimport { WarrantyServices } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\nexport interface GetActiveWarrantyServicesRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Failure Date of the appointment */\n failureDate?: string;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\nexport interface GetWarrantyServicesRequestParams {\n /** Vehicle Identification Number. */\n vin: string;\n /** Market of the user. */\n marketId: number;\n /** Option to not display the loader (auto generated) */\n noLoader?: boolean;\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WarrantyService {\n\n protected basePath = 'http://localhost/etim-api';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * get the active WarrantyServices\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getActiveWarrantyServices(requestParameters: GetActiveWarrantyServicesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getActiveWarrantyServices(requestParameters: GetActiveWarrantyServicesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActiveWarrantyServices(requestParameters: GetActiveWarrantyServicesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActiveWarrantyServices(requestParameters: GetActiveWarrantyServicesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getActiveWarrantyServices.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getActiveWarrantyServices.');\n }\n const failureDate = requestParameters.failureDate;\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (failureDate !== undefined && failureDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n failureDate, 'failureDate');\n }\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/warranty-services/active`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * get the WarrantyServices\n * @param requestParameters\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWarrantyServices(requestParameters: GetWarrantyServicesRequestParams, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWarrantyServices(requestParameters: GetWarrantyServicesRequestParams, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWarrantyServices(requestParameters: GetWarrantyServicesRequestParams, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWarrantyServices(requestParameters: GetWarrantyServicesRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n const vin = requestParameters.vin;\n if (vin === null || vin === undefined) {\n throw new Error('Required parameter vin was null or undefined when calling getWarrantyServices.');\n }\n const marketId = requestParameters.marketId;\n if (marketId === null || marketId === undefined) {\n throw new Error('Required parameter marketId was null or undefined when calling getWarrantyServices.');\n }\n const noLoader = requestParameters.noLoader;\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (vin !== undefined && vin !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n vin, 'vin');\n }\n if (marketId !== undefined && marketId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n marketId, 'marketId');\n }\n\n if (noLoader !== undefined && noLoader !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n noLoader, 'noLoader');\n }\n\n let headers = this.defaultHeaders;\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/warranty-services`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ApiError { \n code: number;\n message: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignature { \n id: number;\n url?: string;\n phase?: AppointmentSignature.PhaseEnum;\n appointmentId?: number;\n checklistInstanceId?: number;\n customerCompanyUserId?: number;\n /**\n * creation time.\n */\n time?: string;\n secretKey?: string;\n secretIV?: string;\n customerNotPresent?: boolean;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n}\nexport namespace AppointmentSignature {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Series } from './series';\nimport { Types } from './types';\nimport { Model } from './model';\n\n\n/**\n * Vehicles\\' brand.\n */\nexport interface Brand { \n /**\n * Brand ID.\n */\n id?: number;\n /**\n * Brand name.\n */\n name?: string;\n /**\n * Ice code.\n */\n iceCode?: string;\n image?: string;\n models?: Array;\n series?: Array;\n typeList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistCheck { \n /**\n * Id of the check used for checklist response value.\n */\n id: number;\n /**\n * Order to display the checks in the array.\n */\n order?: number;\n /**\n * Label to display next to the check.\n */\n label?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistQuestion } from './checklistQuestion';\n\n\nexport interface ChecklistGroup { \n name: string;\n questions?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistResult } from './checklistResult';\nimport { AppointmentSignature } from './appointmentSignature';\nimport { ChecklistGroup } from './checklistGroup';\n\n\nexport interface ChecklistInstance { \n id: number;\n summaryUrl?: string;\n content?: string;\n checklistGroups?: Array;\n appointmentId?: number;\n type?: ChecklistInstance.TypeEnum;\n workshopUserId?: string;\n checkListResult?: Array;\n checklistSignature?: AppointmentSignature;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n}\nexport namespace ChecklistInstance {\n export type TypeEnum = 'reception' | 'safety' | 'maintenance';\n export const TypeEnum = {\n Reception: 'reception' as TypeEnum,\n Safety: 'safety' as TypeEnum,\n Maintenance: 'maintenance' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistCheck } from './checklistCheck';\n\n\nexport interface ChecklistQuestion { \n id: number;\n order?: number;\n label?: string;\n resultType?: ChecklistQuestion.ResultTypeEnum;\n sliderMin?: number;\n sliderMax?: number;\n sliderStep?: number;\n labelOk?: string;\n labelFault?: string;\n value?: number;\n required?: boolean;\n checks?: Array;\n}\nexport namespace ChecklistQuestion {\n export type ResultTypeEnum = 'status' | 'slider' | 'switch' | 'checks';\n export const ResultTypeEnum = {\n Status: 'status' as ResultTypeEnum,\n Slider: 'slider' as ResultTypeEnum,\n Switch: 'switch' as ResultTypeEnum,\n Checks: 'checks' as ResultTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistResultAttachment } from './checklistResultAttachment';\n\n\nexport interface ChecklistResult { \n id: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Checklist Result Attachment.\n */\nexport interface ChecklistResultAttachment { \n /**\n * Jobcard item Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n creationDate?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * ConfigurationDetail.\n */\nexport interface ConfigurationDet { \n /**\n * charName.\n */\n charName?: string;\n /**\n * charDescr.\n */\n charDescr?: string;\n /**\n * charValue.\n */\n charValue?: string;\n /**\n * charValueDescr.\n */\n charValueDescr?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CountryTimeZone { \n code?: string;\n name?: string;\n timeZone?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Current Vehicle connected details from eTIM.\n */\nexport interface CurrentVehicleData { \n /**\n * Last communication details.\n */\n coveredByUcrStatusMessage?: string;\n /**\n * Last communication details.\n */\n lastCommunicationDate?: string;\n /**\n * Vechicle current mileage.\n */\n currentMileage?: number;\n /**\n * Vehicle current hours.\n */\n currentHours?: number;\n /**\n * Vehicle avierage Mileage.\n */\n averageMileage?: number;\n /**\n * Vehicle average hours.\n */\n averageHours?: number;\n /**\n * UCR ststus.\n */\n coveredByUcrStatus?: number;\n /**\n * Connected or non connected.\n */\n connected?: boolean;\n /**\n * ucr manage maintenance for this machine.\n */\n ucrManageMP?: boolean;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryCvWithTeleService } from './diagnosisHistoryCvWithTeleService';\nimport { DiagnosisHistoryCvWithTeleServiceTeleservice } from './diagnosisHistoryCvWithTeleServiceTeleservice';\nimport { DiagnosisHistoryAgceStatus } from './diagnosisHistoryAgceStatus';\nimport { DiagnosisHistoryCvTelematicsFault } from './diagnosisHistoryCvTelematicsFault';\nimport { DiagnosisHistoryCvDiagnosticFault } from './diagnosisHistoryCvDiagnosticFault';\nimport { DiagnosisHistoryAgce } from './diagnosisHistoryAgce';\nimport { DiagnosisHistoryAgceData } from './diagnosisHistoryAgceData';\nimport { DiagnosisHistoryCv } from './diagnosisHistoryCv';\n\n\nexport interface DiagnosisHistory { \n data?: DiagnosisHistoryAgceData;\n status?: DiagnosisHistoryAgceStatus;\n diagnosticFault?: DiagnosisHistoryCvDiagnosticFault;\n telematicsFault?: DiagnosisHistoryCvTelematicsFault;\n teleservice?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryAgceStatus } from './diagnosisHistoryAgceStatus';\nimport { DiagnosisHistoryAgceData } from './diagnosisHistoryAgceData';\n\n\n/**\n * from AG&CE UCR_FaultCodes_API.docx\n */\nexport interface DiagnosisHistoryAgce { \n data?: DiagnosisHistoryAgceData;\n status?: DiagnosisHistoryAgceStatus;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryAgceDataUploadList } from './diagnosisHistoryAgceDataUploadList';\n\n\nexport interface DiagnosisHistoryAgceData { \n vin?: string;\n uploadList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryAgceDataFaultList } from './diagnosisHistoryAgceDataFaultList';\n\n\nexport interface DiagnosisHistoryAgceDataEcuList { \n ecuId?: string;\n ecuName?: string;\n faultList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DiagnosisHistoryAgceDataFaultList { \n faultDtc?: string;\n engineHourAtLastOccurrence?: string;\n timeAtLastOccurrence?: string;\n localTimeAtLastOccurrence?: string;\n faultFmi?: string;\n faultOccurrence?: string;\n stillActive?: string;\n priority?: number;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryAgceDataEcuList } from './diagnosisHistoryAgceDataEcuList';\n\n\nexport interface DiagnosisHistoryAgceDataSources { \n context?: string;\n telematicsBox?: string;\n modem?: string;\n ecuList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryAgceDataSources } from './diagnosisHistoryAgceDataSources';\n\n\nexport interface DiagnosisHistoryAgceDataUploadList { \n dateOfMeasurement?: string;\n localDateOfMeasurement?: string;\n engineHour?: string;\n sources?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DiagnosisHistoryAgceStatus { \n code?: number;\n message?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryAgceStatus } from './diagnosisHistoryAgceStatus';\nimport { DiagnosisHistoryCvTelematicsFault } from './diagnosisHistoryCvTelematicsFault';\nimport { DiagnosisHistoryCvDiagnosticFault } from './diagnosisHistoryCvDiagnosticFault';\n\n\n/**\n * from CV PCMFaults_EDSAggregation_v1.docx\n */\nexport interface DiagnosisHistoryCv { \n diagnosticFault?: DiagnosisHistoryCvDiagnosticFault;\n telematicsFault?: DiagnosisHistoryCvTelematicsFault;\n status?: DiagnosisHistoryAgceStatus;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DiagnosisHistoryCvDiagnosticFault { \n /**\n * TODO\n */\n TOBEDEFINED?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryCvTelematicsFaultUploadList } from './diagnosisHistoryCvTelematicsFaultUploadList';\n\n\nexport interface DiagnosisHistoryCvTelematicsFault { \n vin?: string;\n uploadList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryCvTelematicsFaultFaultList } from './diagnosisHistoryCvTelematicsFaultFaultList';\n\n\nexport interface DiagnosisHistoryCvTelematicsFaultEcuList { \n ecuId?: string;\n ecuName?: string;\n faultList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DiagnosisHistoryCvTelematicsFaultFaultList { \n faultDtc?: string;\n engineHourAtLastOccurrence?: string;\n engineKmAtLastOccurrence?: string;\n /**\n * format TODO\n */\n timeAtLastOccurrence?: string;\n faultFmi?: string;\n faultOccurrence?: string;\n DTCHour?: string;\n DTCDescription?: string;\n AvgNetDuration?: string;\n stillActive?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryCvTelematicsFaultEcuList } from './diagnosisHistoryCvTelematicsFaultEcuList';\n\n\nexport interface DiagnosisHistoryCvTelematicsFaultUploadList { \n /**\n * yyyy-mm-dd hh:00 (UTC) for current day aggregates, yyyy-mm-dd for past days aggregates\n */\n dateOfMeasurement?: string;\n engineHour?: string;\n engineKm?: string;\n context?: string;\n telematicsBox?: string;\n modem?: string;\n ecuList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryCvWithTeleServiceTeleservice } from './diagnosisHistoryCvWithTeleServiceTeleservice';\n\n\n/**\n * reformatted by etim-api\n */\nexport interface DiagnosisHistoryCvWithTeleService { \n teleservice?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryCvWithTeleServiceTeleserviceExport } from './diagnosisHistoryCvWithTeleServiceTeleserviceExport';\n\n\nexport interface DiagnosisHistoryCvWithTeleServiceServiceCodes { \n serviceCode?: string;\n teleserviceExport?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DiagnosisHistoryCvWithTeleServiceServiceCodes } from './diagnosisHistoryCvWithTeleServiceServiceCodes';\n\n\nexport interface DiagnosisHistoryCvWithTeleServiceTeleservice { \n categoryId?: string;\n serviceCodes?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DiagnosisHistoryCvWithTeleServiceTeleserviceExport { \n processKey?: string;\n insertdate?: string;\n licensedomain?: string;\n licenseid?: string;\n pipcode?: string;\n replacementComponent?: string;\n recordtype?: string;\n status1?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * ESBHeader.\n */\nexport interface ESBHeader { \n /**\n * esbversion.\n */\n esbversion?: string;\n /**\n * tid.\n */\n tid?: string;\n /**\n * tidtimestamp.\n */\n tidtimestamp?: string;\n /**\n * idflow.\n */\n idflow?: string;\n /**\n * sender.\n */\n sender?: string;\n /**\n * logicaltarget.\n */\n logicaltarget?: string;\n /**\n * flowversion.\n */\n flowversion?: string;\n /**\n * msgtypename.\n */\n msgtypename?: string;\n /**\n * rexindicator.\n */\n rexindicator?: string;\n /**\n * rexattemptindicator.\n */\n rexattemptindicator?: string;\n /**\n * msgindicator.\n */\n msgindicator?: string;\n /**\n * logicalrecordindicator.\n */\n logicalrecordindicator?: string;\n /**\n * tidexpiringdate.\n */\n tidexpiringdate?: string;\n /**\n * payloadpointer.\n */\n payloadpointer?: string;\n /**\n * subflowname.\n */\n subflowname?: string;\n /**\n * sublogicalrecordindicator.\n */\n sublogicalrecordindicator?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * ESBHeader.\n */\nexport interface EndCustomer { \n /**\n * endcuCode.\n */\n endcuCode?: string;\n /**\n * endcuName.\n */\n endcuName?: string;\n /**\n * endcuStreet.\n */\n endcuStreet?: string;\n /**\n * endcuCity.\n */\n endcuCity?: string;\n /**\n * endcuCntry.\n */\n endcuCntry?: string;\n /**\n * endcuRegion.\n */\n endcuRegion?: string;\n /**\n * endcuPostal.\n */\n endcuPostal?: string;\n /**\n * endcuPhone.\n */\n endcuPhone?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Other Workshop\n */\nexport interface ExtraOperation { \n id?: number;\n typeLabel?: string;\n type?: ExtraOperation.TypeEnum;\n description?: string;\n code?: string;\n supplierName?: string;\n level?: string;\n distance?: number;\n amount?: number;\n compulsory?: boolean;\n selected?: boolean;\n dmsId?: string;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n deleted?: boolean;\n active?: boolean;\n}\nexport namespace ExtraOperation {\n export type TypeEnum = 'all' | 'material' | 'extraCharges' | 'sublet' | 'travel' | 'freight' | 'fictitious_material' | 'fm_antifreeze' | 'fm_miscellaneous' | 'fm_oil' | 'fm_refrigerant' | 'fm_tyre';\n export const TypeEnum = {\n All: 'all' as TypeEnum,\n Material: 'material' as TypeEnum,\n ExtraCharges: 'extraCharges' as TypeEnum,\n Sublet: 'sublet' as TypeEnum,\n Travel: 'travel' as TypeEnum,\n Freight: 'freight' as TypeEnum,\n FictitiousMaterial: 'fictitious_material' as TypeEnum,\n FmAntifreeze: 'fm_antifreeze' as TypeEnum,\n FmMiscellaneous: 'fm_miscellaneous' as TypeEnum,\n FmOil: 'fm_oil' as TypeEnum,\n FmRefrigerant: 'fm_refrigerant' as TypeEnum,\n FmTyre: 'fm_tyre' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FictitiousMaterial = '-OIL' | '-ANTIFREEZE' | '-MISCELLANEOUS' | '-REFRIGERANT' | '-MATERIAL' | '-TIRE';\n\nexport const FictitiousMaterial = {\n OIL: '-OIL' as FictitiousMaterial,\n ANTIFREEZE: '-ANTIFREEZE' as FictitiousMaterial,\n MISCELLANEOUS: '-MISCELLANEOUS' as FictitiousMaterial,\n REFRIGERANT: '-REFRIGERANT' as FictitiousMaterial,\n MATERIAL: '-MATERIAL' as FictitiousMaterial,\n TIRE: '-TIRE' as FictitiousMaterial\n};\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * General data of vehicle details.\n */\nexport interface General { \n /**\n * Van.\n */\n van?: string;\n /**\n * Vin.\n */\n vin?: string;\n /**\n * License.\n */\n license?: string;\n /**\n * Tech type bm.\n */\n techtypeBm?: string;\n /**\n * CommModel.\n */\n commModel?: string;\n /**\n * Vp.\n */\n vp?: string;\n /**\n * Uptime.\n */\n upTime?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CountryTimeZone } from './countryTimeZone';\nimport { GeoStorePosition } from './geoStorePosition';\n\n\n/**\n * connected machine geo store details from eTIM.\n */\nexport interface GeoStoreDetails { \n /**\n * Asset id.\n */\n assetId?: string;\n /**\n * VIN/PIN details.\n */\n vin?: string;\n /**\n * vin9 id.\n */\n vin9?: string;\n /**\n * vin17 id.\n */\n vin17?: string;\n /**\n * ceq Id.\n */\n ceqId?: string;\n /**\n * tech Type details.\n */\n techType?: string;\n /**\n * company name.\n */\n companyName?: string;\n /**\n * company id details.\n */\n companyId?: string;\n /**\n * vehicle branch.\n */\n brand?: string;\n /**\n * vehicle model.\n */\n model?: string;\n /**\n * product Line details.\n */\n productLine?: string;\n /**\n * archived details.\n */\n archived?: boolean;\n /**\n * geo store last connected time\n */\n time?: string;\n country?: CountryTimeZone;\n pos?: GeoStorePosition;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface GeoStorePosition { \n time?: string;\n lat?: string;\n lon?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard Attachment.\n */\nexport interface JobcardAttachment { \n /**\n * Jobcard Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n filename?: string;\n jobOrder?: number;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WarrantyType } from './warrantyType';\nimport { JobcardItemTechnician } from './jobcardItemTechnician';\nimport { MpInformation } from './mpInformation';\nimport { PaymentSubSubType } from './paymentSubSubType';\nimport { JobcardItemStatus } from './jobcardItemStatus';\nimport { Operation } from './operation';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardItemCustomerStatus } from './jobcardItemCustomerStatus';\nimport { JobcardTravel } from './jobcardTravel';\nimport { JobcardItemIuDocument } from './jobcardItemIuDocument';\nimport { WarrantyClaimData } from './warrantyClaimData';\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { JobcardItemSpell } from './jobcardItemSpell';\nimport { PaymentType } from './paymentType';\nimport { ChecklistInstance } from './checklistInstance';\nimport { PaymentSubType } from './paymentSubType';\nimport { JobcardPartsBacklog } from './jobcardPartsBacklog';\nimport { Split } from './split';\nimport { ExtraOperation } from './extraOperation';\n\n\n/**\n * Jobcard item details.\n */\nexport interface JobcardItem { \n /**\n * Jobcard item ID.\n */\n id?: number;\n /**\n * Jobcard item type.\n */\n type?: JobcardItem.TypeEnum;\n /**\n * Jobcard subtype used for subtype of an alert.\n */\n subtype?: string;\n /**\n * Jobcard priority used for level of priority of an alert.\n */\n priority?: number;\n /**\n * Jobcard weight used to order the jobcardItems.\n */\n weight?: number;\n /**\n * Jobcard item name.\n */\n name: string;\n /**\n * Jobcard item description.\n */\n description?: string;\n /**\n * Jobcard item additional description.\n */\n additionalDescription?: string;\n /**\n * Jobcard item code.\n */\n code?: string;\n estimatedDuration?: number;\n /**\n * Jobcard item\\'s details URL\n */\n url?: string;\n /**\n * Jobcard item\\'s Asist Buy Kits URL\n */\n asistUrl?: string;\n /**\n * Jobcard item operation list.\n */\n operations?: Array;\n /**\n * Jobcard item status list.\n */\n jobcardItemStatus?: Array;\n /**\n * Missing Parts in Jobcard.\n */\n jobcardPartsBacklog?: Array;\n /**\n * Jobcard item attachment list.\n */\n jobcardItemAttachments?: Array;\n workshopUserId?: string;\n comment?: string;\n /**\n * Activity might be deferred (not shown)\n */\n deferred?: boolean;\n /**\n * Date the activity was deferred\n */\n deferredDate?: string;\n /**\n * Date to the activity was deferred\n */\n deferredToDate?: string;\n /**\n * Reason for deferring activity\n */\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n agreementSignatureUrl?: string;\n agreementCustomerName?: string;\n travels?: Array;\n /**\n * Show/hide activity to the customer\n */\n visible?: boolean;\n /**\n * Supplier Code\n */\n supplierCode?: string;\n /**\n * Defect Code\n */\n defectCode?: string;\n /**\n * Failure Code\n */\n failureCode?: string;\n /**\n * Failure Description\n */\n failureDescription?: string;\n /**\n * Severity of the failure for activity\n */\n failureSeverity?: number;\n /**\n * Warranty coverage for activity.\n */\n warrantyCoverage?: boolean;\n /**\n * Warranty Contract that covers the activity.\n */\n warrantyContract?: string;\n /**\n * Warranty Contract Number that covers the Vehicle.\n */\n contractNumber?: string;\n /**\n * Warranty Type that covers the activity.\n */\n warrantyType?: string;\n /**\n * Operation required parts.\n */\n causalPartId?: number;\n extraOperations?: Array;\n /**\n * Activity set to be deleted in backend\n */\n deleted?: boolean;\n loading?: boolean;\n /**\n * Payment Code\n */\n paymentCode?: string;\n /**\n * Payment Type Id\n */\n paymentTypeId?: number;\n /**\n * Pay Type\n */\n payType?: string;\n /**\n * Payment Sub Code\n */\n paymentSubcode?: string;\n /**\n * Payment Sub Type Id\n */\n paymentSubTypeId?: number;\n /**\n * Payment Sub 2 Code\n */\n paymentSub2Code?: string;\n /**\n * Payment Sub Type 2 Id\n */\n paymentSubType2Id?: number;\n /**\n * Payment Sub 3 Code\n */\n paymentSub3Code?: string;\n /**\n * Payment Sub Type 3 Id\n */\n paymentSubType3Id?: number;\n defectDescription?: string;\n supplierDescription?: string;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformation;\n couponStatus?: string;\n status?: JobcardItem.StatusEnum;\n totalPrice?: number;\n generalNote?: string;\n cause?: string;\n correction?: string;\n internalNotes?: string;\n paymentType?: PaymentType;\n paymentSubType?: PaymentSubType;\n paymentSubType2?: PaymentSubSubType;\n paymentSubType3?: PaymentSubSubType;\n paymentWarrantyType?: WarrantyType;\n isPaymentTypeDisabled?: boolean;\n isCausalPartDisabled?: boolean;\n startDate?: string;\n percentage?: number;\n discountTypeId?: number;\n technicians?: Array;\n installedDate?: string;\n amountUseOnSpareParts?: number;\n sparePartInvoiceNumber?: string;\n failedComponentSerialNumber?: number;\n replacedComponentSerialNumber?: number;\n preAuthorizationCode?: string;\n authorizerName?: JobcardItem.AuthorizerNameEnum;\n groupReplaced?: JobcardItem.GroupReplacedEnum;\n serviceParticipation?: number;\n warrantyClaimData?: WarrantyClaimData;\n selected?: boolean;\n inspectionActivity?: boolean;\n /**\n * Response from SAP system\n */\n sapResponse?: string;\n workshopBayId?: number;\n checklistInstances?: Array;\n /**\n * Status duration.\n */\n officialTime?: number;\n /**\n * PIP is or not yet available for this Vehicle/Product\n */\n disabled?: boolean;\n docId?: string;\n etimDocLink?: string;\n jobcardItemSpells?: Array;\n remainingDays?: number;\n jobcardItemCustomerStatus?: Array;\n activityValidated?: boolean;\n discounts?: Array;\n selectedDiscount?: string;\n isDiscountAvailable?: boolean;\n /**\n * temp Jobcard item ID used for booking screen handle drag and drop.\n */\n tempJId?: string;\n /**\n * Reason for deleting deffered activity\n */\n defferDeleteReason?: string;\n jobcardItemIuDocuments?: Array;\n duration?: number;\n}\nexport namespace JobcardItem {\n export type TypeEnum = 'alert' | 'pip' | 'fault' | 'nextMaintenance' | 'proposedMaintenance' | 'srt' | 'free' | 'deferred' | 'checklist' | 'etimWeb';\n export const TypeEnum = {\n Alert: 'alert' as TypeEnum,\n Pip: 'pip' as TypeEnum,\n Fault: 'fault' as TypeEnum,\n NextMaintenance: 'nextMaintenance' as TypeEnum,\n ProposedMaintenance: 'proposedMaintenance' as TypeEnum,\n Srt: 'srt' as TypeEnum,\n Free: 'free' as TypeEnum,\n Deferred: 'deferred' as TypeEnum,\n Checklist: 'checklist' as TypeEnum,\n EtimWeb: 'etimWeb' as TypeEnum\n };\n export type StatusEnum = 'normal' | 'inTime' | 'warning' | 'inDelay' | 'inProgress' | 'completed';\n export const StatusEnum = {\n Normal: 'normal' as StatusEnum,\n InTime: 'inTime' as StatusEnum,\n Warning: 'warning' as StatusEnum,\n InDelay: 'inDelay' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Completed: 'completed' as StatusEnum\n };\n export type AuthorizerNameEnum = 'NE' | 'CE';\n export const AuthorizerNameEnum = {\n NE: 'NE' as AuthorizerNameEnum,\n CE: 'CE' as AuthorizerNameEnum\n };\n export type GroupReplacedEnum = 'N' | 'R';\n export const GroupReplacedEnum = {\n N: 'N' as GroupReplacedEnum,\n R: 'R' as GroupReplacedEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Customer\\'s approval/rejection status response history.\n */\nexport interface JobcardItemCustomerStatus { \n id?: number;\n /**\n * Jobcard item reference ID\n */\n jobcardItemId?: number;\n /**\n * Action from user to check if they approve/reject an activity.\n */\n action?: JobcardItemCustomerStatus.ActionEnum;\n /**\n * Time stamp when the action is performed.\n */\n actionDateTime?: string;\n /**\n * The user/person name who acts on it.\n */\n actionPerformedBy?: string;\n /**\n * Online - indicating the action performed by customer; offline - indicating manual changes performed on DJC.\n */\n actionType?: JobcardItemCustomerStatus.ActionTypeEnum;\n}\nexport namespace JobcardItemCustomerStatus {\n export type ActionEnum = 'approve' | 'decline' | 'autoApv' | 'autoDec';\n export const ActionEnum = {\n Approve: 'approve' as ActionEnum,\n Decline: 'decline' as ActionEnum,\n AutoApv: 'autoApv' as ActionEnum,\n AutoDec: 'autoDec' as ActionEnum\n };\n export type ActionTypeEnum = 'online' | 'offline' | 'recep' | 'wty';\n export const ActionTypeEnum = {\n Online: 'online' as ActionTypeEnum,\n Offline: 'offline' as ActionTypeEnum,\n Recep: 'recep' as ActionTypeEnum,\n Wty: 'wty' as ActionTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * IU or SRT associated to an activity.\n */\nexport interface JobcardItemIuDocument { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n vin?: string;\n jobcardItemId?: number;\n selected?: boolean;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnician } from './jobcardItemTechnician';\n\n\n/**\n * Spell details for an activity.\n */\nexport interface JobcardItemSpell { \n id?: number;\n workshopBayId?: number;\n estimatedDuration?: number;\n startDate?: string;\n /**\n * Spell weight used to display in order.\n */\n weight?: number;\n /**\n * Spell selection for drag n drop.\n */\n selected?: boolean;\n technicians?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item Status.\n */\nexport interface JobcardItemStatus { \n /**\n * Jobcard item Status ID.\n */\n id?: number;\n time?: string;\n endTime?: string;\n /**\n * Jobcard item status name\n */\n status?: JobcardItemStatus.StatusEnum;\n /**\n * Status duration.\n */\n duration?: number;\n /**\n * Jobcard item clocking status (whan a technician is working on the activity on the mobile app)\n */\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n /**\n * Jobcard appointment priority\n */\n appointmentPriority?: JobcardItemStatus.AppointmentPriorityEnum;\n /**\n * Jobcard Item Id.\n */\n jobcardItemId?: number;\n /**\n * Workshop User Id.\n */\n workshopUserId?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardItemStatus.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n /**\n * Soft delete\n */\n deleted?: boolean;\n /**\n * activity update in fron end.\n */\n currentChangeActivity?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n /**\n * Jobcard item Status DMS ID.\n */\n dmsId?: string;\n}\nexport namespace JobcardItemStatus {\n export type StatusEnum = 'new' | 'todo' | 'inProgress' | 'pending' | 'invoiced' | 'done' | 'inProgressProductive' | 'doneProductive' | 'pendingProductive' | 'doneNotWithinPlannedTime';\n export const StatusEnum = {\n New: 'new' as StatusEnum,\n Todo: 'todo' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Pending: 'pending' as StatusEnum,\n Invoiced: 'invoiced' as StatusEnum,\n Done: 'done' as StatusEnum,\n InProgressProductive: 'inProgressProductive' as StatusEnum,\n DoneProductive: 'doneProductive' as StatusEnum,\n PendingProductive: 'pendingProductive' as StatusEnum,\n DoneNotWithinPlannedTime: 'doneNotWithinPlannedTime' as StatusEnum\n };\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum\n };\n export type AppointmentPriorityEnum = 'high' | 'medium' | 'low' | 'nopriority';\n export const AppointmentPriorityEnum = {\n High: 'high' as AppointmentPriorityEnum,\n Medium: 'medium' as AppointmentPriorityEnum,\n Low: 'low' as AppointmentPriorityEnum,\n Nopriority: 'nopriority' as AppointmentPriorityEnum\n };\n export type ReasonEnum = 'forgotClockOn' | 'forgotClockOff' | 'helpingAnotherTechnician' | 'forgotClockInOut' | 'technicalErrors' | 'discount' | 'other';\n export const ReasonEnum = {\n ForgotClockOn: 'forgotClockOn' as ReasonEnum,\n ForgotClockOff: 'forgotClockOff' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n ForgotClockInOut: 'forgotClockInOut' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item Technician.\n */\nexport interface JobcardItemTechnician { \n /**\n * Intern ID of the link between the jobcard item and the technician.\n */\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n endDate?: string;\n /**\n * Intern ID of the link between the spell and the technician.\n */\n spellLinkId?: number;\n /**\n * to check whether the technician is available or not.\n */\n available?: boolean;\n /**\n * first name of technician\n */\n firstName?: string;\n /**\n * last name of technician\n */\n lastName?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\n\n\n/**\n * Missing Part For Jobcard.\n */\nexport interface JobcardPartsBacklog { \n /**\n * id of the part to order\n */\n id?: number;\n /**\n * AppointmentId.\n */\n appointmentId?: number;\n /**\n * Jobcard item.\n */\n jobcardItemId?: number;\n /**\n * Missing part quantity.\n */\n quantity?: number;\n /**\n * Part id.\n */\n partId?: number;\n /**\n * Customer CompanyId .\n */\n customerCompanyId?: number;\n part?: Part;\n /**\n * add or replace part\n */\n view?: string;\n /**\n * workshop where the part are ordered\n */\n workshopId?: number;\n /**\n * id of the csps simulation\n */\n cspsOrderId?: number;\n /**\n * id of the csps simulation\n */\n orderSimulationId?: number;\n /**\n * status of the part\n */\n partStatus?: string;\n /**\n * basic discount\n */\n basicDiscount?: number;\n /**\n * promo discount\n */\n promoDiscount?: number;\n grossPrice?: number;\n netPrice?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n operation?: string;\n /**\n * Order simulation date.\n */\n orderSimulationDate?: string;\n /**\n * Order simulation date.\n */\n expectedDeliveryDate?: string;\n /**\n * additionnal part details\n */\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserTravelPosition } from './workshopUserTravelPosition';\nimport { PaymentSubSubType } from './paymentSubSubType';\nimport { PaymentType } from './paymentType';\nimport { PaymentSubType } from './paymentSubType';\n\n\n/**\n * Jobcard Travel\n */\nexport interface JobcardTravel { \n id?: number;\n name?: string;\n workshopUserId?: string;\n duration?: number;\n distance?: number;\n date?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardTravel.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n deleted?: boolean;\n /**\n * Technician\\'s GPS positions for the travel\n */\n positions?: Array;\n /**\n * Travel origin address line 1.\n */\n travelFromAddressLine1?: string;\n /**\n * Travel origin address line 2.\n */\n travelFromAddressLine2?: string;\n /**\n * Travel origin address line 3.\n */\n travelFromAddressLine3?: string;\n /**\n * Travel origin address line 4.\n */\n travelFromAddressLine4?: string;\n /**\n * Travel origin address postal code.\n */\n travelFromPostalCode?: string;\n /**\n * Travel destination address line 1.\n */\n travelToAddressLine1?: string;\n /**\n * Travel destination address line 2.\n */\n travelToAddressLine2?: string;\n /**\n * Travel destination address line 3.\n */\n travelToAddressLine3?: string;\n /**\n * Travel destination address line 4.\n */\n travelToAddressLine4?: string;\n /**\n * Travel destination address postal code.\n */\n travelToPostalCode?: string;\n /**\n * Internal comments on travel.\n */\n internalNotes?: string;\n /**\n * Estimated distance (in miles or KMs).\n */\n estimatedDistance?: number;\n /**\n * Estimated duration (in seconds).\n */\n estimatedDuration?: number;\n paymentType?: PaymentType;\n paymentSubType?: PaymentSubType;\n paymentSubSubType2?: PaymentSubSubType;\n paymentSubSubType3?: PaymentSubSubType;\n /**\n * Travel type code from DMS.\n */\n itemCode?: string;\n /**\n * Source of the travel (like pip).\n */\n travelSource?: string;\n /**\n * Additional code to identify the travel.\n */\n travelExtraCode?: string;\n travelVisible?: boolean;\n price?: number;\n travelFromShowCoordinates?: JobcardTravel.TravelFromShowCoordinatesEnum;\n travelToShowCoordinates?: JobcardTravel.TravelToShowCoordinatesEnum;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToLatitude?: number;\n travelToLongitude?: number;\n /**\n * Travel type to differentiate from travel.\n */\n travelTypeFrom?: string;\n /**\n * Travel type to differentiate to travel.\n */\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelToManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToGpsImportedDate?: string;\n /**\n * Warranty Claim numbers concatenated, separated by \\\";\\\"\n */\n warrantyClaimNumbers?: string;\n /**\n * Response from SAP system\n */\n sapResponse?: string;\n}\nexport namespace JobcardTravel {\n export type ReasonEnum = 'forgotRecordTravel' | 'forgotStartStop' | 'helpingAnotherTechnician' | 'technicalErrors' | 'discount' | 'other';\n export const ReasonEnum = {\n ForgotRecordTravel: 'forgotRecordTravel' as ReasonEnum,\n ForgotStartStop: 'forgotStartStop' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n export type TravelFromShowCoordinatesEnum = 'travelFromAddress' | 'travelFromCoordinates';\n export const TravelFromShowCoordinatesEnum = {\n TravelFromAddress: 'travelFromAddress' as TravelFromShowCoordinatesEnum,\n TravelFromCoordinates: 'travelFromCoordinates' as TravelFromShowCoordinatesEnum\n };\n export type TravelToShowCoordinatesEnum = 'travelToAddress' | 'travelToCoordinates';\n export const TravelToShowCoordinatesEnum = {\n TravelToAddress: 'travelToAddress' as TravelToShowCoordinatesEnum,\n TravelToCoordinates: 'travelToCoordinates' as TravelToShowCoordinatesEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\n\n\n/**\n * Vehicle part assembly kit.\n */\nexport interface Kit { \n /**\n * Kit ID.\n */\n id: number;\n name?: string;\n workshopId?: number;\n jobcardItems?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Composition of a kit\n */\nexport interface KitPart { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KmLink { \n /**\n * Document ID\n */\n docId?: string;\n /**\n * URL to use\n */\n url?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * context market.\n */\nexport interface Market { \n /**\n * market ID.\n */\n id?: number;\n /**\n * market code name.\n */\n name?: string;\n /**\n * market full label.\n */\n description?: string;\n /**\n * market abbreviation.\n */\n abbrev?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Market } from './market';\n\n\n/**\n * infotype information.\n */\nexport interface MarketContext { \n market?: Market;\n country?: string;\n brandIceCode?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { TechnicalType } from './technicalType';\nimport { Series } from './series';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' model.\n */\nexport interface Model { \n /**\n * Model ID.\n */\n id: number;\n /**\n * Model name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n brand?: Brand;\n series?: Series;\n ttList?: Array;\n}\n\n","export * from './apiError';\nexport * from './appointmentSignature';\nexport * from './brand';\nexport * from './checklistCheck';\nexport * from './checklistGroup';\nexport * from './checklistInstance';\nexport * from './checklistQuestion';\nexport * from './checklistResult';\nexport * from './checklistResultAttachment';\nexport * from './configurationDet';\nexport * from './countryTimeZone';\nexport * from './currentVehicleData';\nexport * from './diagnosisHistory';\nexport * from './diagnosisHistoryAgce';\nexport * from './diagnosisHistoryAgceData';\nexport * from './diagnosisHistoryAgceDataEcuList';\nexport * from './diagnosisHistoryAgceDataFaultList';\nexport * from './diagnosisHistoryAgceDataSources';\nexport * from './diagnosisHistoryAgceDataUploadList';\nexport * from './diagnosisHistoryAgceStatus';\nexport * from './diagnosisHistoryCv';\nexport * from './diagnosisHistoryCvDiagnosticFault';\nexport * from './diagnosisHistoryCvTelematicsFault';\nexport * from './diagnosisHistoryCvTelematicsFaultEcuList';\nexport * from './diagnosisHistoryCvTelematicsFaultFaultList';\nexport * from './diagnosisHistoryCvTelematicsFaultUploadList';\nexport * from './diagnosisHistoryCvWithTeleService';\nexport * from './diagnosisHistoryCvWithTeleServiceServiceCodes';\nexport * from './diagnosisHistoryCvWithTeleServiceTeleservice';\nexport * from './diagnosisHistoryCvWithTeleServiceTeleserviceExport';\nexport * from './eSBHeader';\nexport * from './endCustomer';\nexport * from './extraOperation';\nexport * from './fictitiousMaterial';\nexport * from './general';\nexport * from './geoStoreDetails';\nexport * from './geoStorePosition';\nexport * from './jobcardAttachment';\nexport * from './jobcardItem';\nexport * from './jobcardItemCustomerStatus';\nexport * from './jobcardItemIuDocument';\nexport * from './jobcardItemSpell';\nexport * from './jobcardItemStatus';\nexport * from './jobcardItemTechnician';\nexport * from './jobcardPartsBacklog';\nexport * from './jobcardTravel';\nexport * from './kit';\nexport * from './kitPart';\nexport * from './kmLink';\nexport * from './market';\nexport * from './marketContext';\nexport * from './model';\nexport * from './mpInformation';\nexport * from './mpInformationDelta';\nexport * from './mpUnit';\nexport * from './name';\nexport * from './openingDay';\nexport * from './openingDayPeriods';\nexport * from './operation';\nexport * from './operationConsumable';\nexport * from './operationPart';\nexport * from './operationPartLocation';\nexport * from './oprConsumable';\nexport * from './part';\nexport * from './partAvailability';\nexport * from './paymentSubSubType';\nexport * from './paymentSubType';\nexport * from './paymentType';\nexport * from './pipData';\nexport * from './plcData';\nexport * from './product';\nexport * from './productObj';\nexport * from './repairHistory';\nexport * from './responseData';\nexport * from './returnMessage';\nexport * from './role';\nexport * from './sapFailure';\nexport * from './series';\nexport * from './serviceHistory';\nexport * from './serviceRepNotes';\nexport * from './shift';\nexport * from './shiftPeriods';\nexport * from './skill';\nexport * from './split';\nexport * from './srtOperation';\nexport * from './srtSupplierCode';\nexport * from './technicalType';\nexport * from './types';\nexport * from './url';\nexport * from './vehicleData';\nexport * from './vehicleDetails';\nexport * from './vehicleHistory';\nexport * from './vehicleInfo';\nexport * from './vehicleParts';\nexport * from './vinValidity';\nexport * from './warrantyClaimData';\nexport * from './warrantyServices';\nexport * from './warrantyType';\nexport * from './workshop';\nexport * from './workshopBay';\nexport * from './workshopDiscount';\nexport * from './workshopSale';\nexport * from './workshopUser';\nexport * from './workshopUserTravelPosition';\nexport * from './workshopUserUnavailability';\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpInformationDelta } from './mpInformationDelta';\n\n\n/**\n * MP Information linked to jobcard Item\n */\nexport interface MpInformation { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * MP Delta information for overdue or close activities\n */\nexport interface MpInformationDelta { \n unit?: string;\n value?: number;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * MP Extra Unit\n */\nexport interface MpUnit { \n unitKey?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Traducted name object\n */\nexport interface Name { \n id?: number;\n idLanguage?: string;\n name?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OpeningDayPeriods } from './openingDayPeriods';\n\n\nexport interface OpeningDay { \n id?: number;\n weekday?: OpeningDay.WeekdayEnum;\n periods?: Array;\n}\nexport namespace OpeningDay {\n export type WeekdayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const WeekdayEnum = {\n Monday: 'monday' as WeekdayEnum,\n Tuesday: 'tuesday' as WeekdayEnum,\n Wednesday: 'wednesday' as WeekdayEnum,\n Thursday: 'thursday' as WeekdayEnum,\n Friday: 'friday' as WeekdayEnum,\n Saturday: 'saturday' as WeekdayEnum,\n Sunday: 'sunday' as WeekdayEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OpeningDayPeriods { \n id?: number;\n /**\n * Only the hours and minutes are used\n */\n start?: string;\n /**\n * Only the hours and minutes are used\n */\n end?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OperationPart } from './operationPart';\nimport { Kit } from './kit';\nimport { OperationConsumable } from './operationConsumable';\n\n\n/**\n * Technical operation details.\n */\nexport interface Operation { \n /**\n * Operation ID.\n */\n id?: number;\n /**\n * Operation code.\n */\n code?: string;\n /**\n * Operation label.\n */\n label: string;\n /**\n * Operation official time estimation.\n */\n officialTime?: number;\n /**\n * Operation custom time estimation.\n */\n durationTime?: number;\n /**\n * Operation weight used to order the operations.\n */\n weight?: number;\n /**\n * Part manufacturer.\n */\n manufacturer?: string;\n /**\n * Operation required parts.\n */\n parts?: Array;\n /**\n * Operation required consumables.\n */\n consumables?: Array;\n /**\n * Operation required part kits.\n */\n kits?: Array;\n price?: number;\n compulsory?: boolean;\n selected?: boolean;\n /**\n * Check if kit part usable instead of part\n */\n isKitComplete?: boolean;\n /**\n * Use kit instead of part\n */\n useKitPart?: boolean;\n isPartAvailable?: boolean;\n /**\n * Is SRT or not\n */\n srt?: boolean;\n /**\n * type.\n */\n type?: string;\n /**\n * Is default or not\n */\n isDefault?: boolean;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OprConsumable } from './oprConsumable';\nimport { FictitiousMaterial } from './fictitiousMaterial';\n\n\n/**\n * Operation part need.\n */\nexport interface OperationConsumable { \n /**\n * Operation part association ID.\n */\n id?: number;\n consumable?: OprConsumable;\n /**\n * Parent operation ID.\n */\n operationId?: number;\n /**\n * Part needed quantity.\n */\n quantity?: number;\n selected?: boolean;\n /**\n * Consumable code.\n */\n code?: string;\n ewarrantyCode?: FictitiousMaterial;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FictitiousMaterial } from './fictitiousMaterial';\nimport { Part } from './part';\nimport { OperationPartLocation } from './operationPartLocation';\n\n\n/**\n * Operation part need.\n */\nexport interface OperationPart { \n /**\n * Operation part association ID.\n */\n id?: number;\n part?: Part;\n compulsory?: boolean;\n /**\n * Parent operation ID.\n */\n operationId?: number;\n /**\n * Part needed quantity.\n */\n quantity?: number;\n /**\n * Part needed quantity.\n */\n quantityInStock?: number;\n /**\n * Part needed quantity.\n */\n quantityOnOrder?: number;\n /**\n * Part needed quantity.\n */\n quantityInTransit?: number;\n /**\n * Check if part needs to be returned or not.\n */\n toBeReturned?: boolean;\n maxQuantity?: number;\n price?: number;\n cost?: number;\n selected?: boolean;\n isHomeLocation?: boolean;\n /**\n * Operation required part location.\n */\n jobcardItemOperationPartLocationList?: Array;\n isAvailableAtHomeLocation?: boolean;\n isAvailableAtOtherLocation?: boolean;\n isNotAvailable?: boolean;\n pickupDate?: string;\n ewarrantyCode?: FictitiousMaterial;\n scannedWithMobile?: boolean;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Operation part location need.\n */\nexport interface OperationPartLocation { \n /**\n * Operation part association ID.\n */\n id?: number;\n /**\n * Operation part Location ID.\n */\n locationId?: string;\n /**\n * Parent operation ID.\n */\n partId?: number;\n /**\n * Part needed quantity.\n */\n quantityInStock?: number;\n /**\n * Part needed quantity.\n */\n quantityOnOrder?: number;\n /**\n * Part needed quantity.\n */\n quantityInTransit?: number;\n siteName?: string;\n locationName?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Operation consumable.\n */\nexport interface OprConsumable { \n /**\n * Consumable ID.\n */\n id: number;\n /**\n * Consumable code.\n */\n code: string;\n /**\n * Consumable part Number.\n */\n partNumber?: string;\n /**\n * Consumable needed quantity.\n */\n quantity?: number;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { KitPart } from './kitPart';\nimport { PartAvailability } from './partAvailability';\n\n\n/**\n * Vehicle part.\n */\nexport interface Part { \n /**\n * Part ID.\n */\n id: number;\n /**\n * Part serial number.\n */\n code?: string;\n /**\n * Part description.\n */\n description?: string;\n /**\n * Part manufacturer.\n */\n manufacturer?: string;\n /**\n * Proprietary workshop ID.\n */\n workshopId?: number;\n isKit?: boolean;\n kitPart?: Array;\n /**\n * quantityInStock.\n */\n quantityInStock?: number;\n /**\n * quantityOnOrder.\n */\n quantityOnOrder?: number;\n /**\n * quantityInTransit.\n */\n quantityInTransit?: number;\n quantity?: number;\n partSuperseedingId?: number;\n cspsPartDetails?: Array;\n /**\n * total Available CSPS quantity\n */\n totalAvailableCspsQty?: number;\n /**\n * Home location for parts\n */\n isHomeLocation?: boolean;\n isValidPart?: boolean;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS part availability.\n */\nexport interface PartAvailability { \n partCode?: string;\n /**\n * Part code.\n */\n localCode?: string;\n /**\n * Part name.\n */\n localName?: string;\n /**\n * localAvailable_qty.\n */\n localAvailable_qty?: number;\n /**\n * localReserved_qty.\n */\n localReserved_qty?: number;\n /**\n * localAssigned_qty.\n */\n localAssigned_qty?: number;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Payment Sub Types 2 & 3.\n */\nexport interface PaymentSubSubType { \n /**\n * Payment Sub Type ID.\n */\n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n isVisible?: boolean;\n weight?: number;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubType } from './paymentSubSubType';\n\n\n/**\n * Payment Sub Types.\n */\nexport interface PaymentSubType { \n /**\n * Payment Sub Type ID.\n */\n id?: number;\n code?: string;\n type?: string;\n categoryType?: string;\n description?: string;\n isVisible?: boolean;\n weight?: number;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubType } from './paymentSubType';\n\n\n/**\n * Payment Types.\n */\nexport interface PaymentType { \n /**\n * Payment Type ID.\n */\n id?: number;\n code?: string;\n type?: PaymentType.TypeEnum;\n name?: string;\n isVisible?: boolean;\n paymentSubTypes?: Array;\n weight?: number;\n}\nexport namespace PaymentType {\n export type TypeEnum = 'retail' | 'warranty' | 'internal' | 'otherWarranty';\n export const TypeEnum = {\n Retail: 'retail' as TypeEnum,\n Warranty: 'warranty' as TypeEnum,\n Internal: 'internal' as TypeEnum,\n OtherWarranty: 'otherWarranty' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Pip data of vehicle details.\n */\nexport interface PipData { \n /**\n * pipCode.\n */\n pipCode?: string;\n /**\n * pipTitle.\n */\n pipTitle?: string;\n /**\n * pipStatus.\n */\n pipStatus?: string;\n /**\n * pipExtnum.\n */\n pipExtnum?: string;\n /**\n * pipStartdate.\n */\n pipStartdate?: string;\n /**\n * pipValidto.\n */\n pipValidto?: string;\n /**\n * pipExec.\n */\n pipExec?: string;\n /**\n * pipIndate.\n */\n pipIndate?: string;\n /**\n * pipClaimdealer.\n */\n pipClaimdealer?: string;\n /**\n * pipCessDate.\n */\n pipCessDate?: string;\n /**\n * pipCessFlag.\n */\n pipCessFlag?: string;\n /**\n * pipType.\n */\n pipType?: string;\n /**\n * pipTypeDescEn.\n */\n pipTypeDescEn?: string;\n /**\n * pipTypeDescDeal.\n */\n pipTypeDescDeal?: string;\n /**\n * pipNolocation.\n */\n pipNolocation?: string;\n /**\n * pipShow.\n */\n pipShow?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * PlcData.\n */\nexport interface PlcData { \n /**\n * progressiveNum.\n */\n progressiveNum?: string;\n /**\n * serial.\n */\n serial?: string;\n /**\n * material.\n */\n material?: string;\n /**\n * description.\n */\n description?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { TechnicalType } from './technicalType';\nimport { Series } from './series';\nimport { Types } from './types';\nimport { ProductObj } from './productObj';\nimport { Model } from './model';\n\n\n/**\n * Product information\n */\nexport interface Product { \n modelName?: string;\n fullIceCode?: string;\n vin?: string;\n ttCode?: string;\n brandDto?: Brand;\n modelDto?: Model;\n technicalTypeDto?: TechnicalType;\n typeDto?: Types;\n seriesDto?: Series;\n productDto?: ProductObj;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Series } from './series';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' product.\n */\nexport interface ProductObj { \n /**\n * Type ID.\n */\n id: number;\n /**\n * type name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n seriesList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * RepairHistory.\n */\nexport interface RepairHistory { \n /**\n * workshop.\n */\n workshop?: string;\n /**\n * workshopDesc.\n */\n workshopDesc?: string;\n /**\n * claimdealerNo.\n */\n claimdealerNo?: string;\n /**\n * claimsapNo.\n */\n claimsapNo?: string;\n /**\n * failDate.\n */\n failDate?: string;\n /**\n * repairDate.\n */\n repairDate?: string;\n /**\n * hoursKm.\n */\n hoursKm?: string;\n /**\n * defect.\n */\n defect?: string;\n /**\n * defectDesc.\n */\n defectDesc?: string;\n /**\n * defectStatus.\n */\n defectStatus?: string;\n /**\n * invoice.\n */\n invoice?: string;\n /**\n * accountDoc.\n */\n accountDoc?: string;\n /**\n * wtype.\n */\n wtype?: string;\n /**\n * visDealer.\n */\n visDealer?: string;\n /**\n * sapStatus.\n */\n sapStatus?: string;\n /**\n * dateFailDate.\n */\n dateFailDate?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ConfigurationDet } from './configurationDet';\nimport { PlcData } from './plcData';\nimport { RepairHistory } from './repairHistory';\nimport { VehicleParts } from './vehicleParts';\nimport { VehicleHistory } from './vehicleHistory';\nimport { ESBHeader } from './eSBHeader';\nimport { ReturnMessage } from './returnMessage';\nimport { PipData } from './pipData';\nimport { VehicleData } from './vehicleData';\nimport { WarrantyServices } from './warrantyServices';\nimport { EndCustomer } from './endCustomer';\nimport { General } from './general';\nimport { ServiceHistory } from './serviceHistory';\nimport { ServiceRepNotes } from './serviceRepNotes';\n\n\n/**\n * ResponseData.\n */\nexport interface ResponseData { \n general?: Array;\n pipdata?: Array;\n warrantyServices?: Array;\n vehicleData?: Array;\n plcdata?: Array;\n repairHistory?: Array;\n endCustomer?: Array;\n configuration?: Array;\n vehicleParts?: Array;\n serviceRepNotes?: Array;\n serviceHistory?: Array;\n vehicleHistory?: Array;\n returnMessage?: Array;\n esbHeader?: ESBHeader;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * ReturnMessage.\n */\nexport interface ReturnMessage { \n /**\n * messType.\n */\n messType?: string;\n /**\n * message.\n */\n message?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Role { \n id: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * SAP Failure Translation Object\n */\nexport interface SapFailure { \n failureCode?: string;\n description?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { Model } from './model';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' series.\n */\nexport interface Series { \n /**\n * Series ID.\n */\n id: number;\n /**\n * Series name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n /**\n * Model list for the tree product\n */\n modelList?: Array;\n models?: Array;\n brand?: Brand;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * ServiceHistory.\n */\nexport interface ServiceHistory { \n /**\n * histWarType.\n */\n histWarType?: string;\n /**\n * histValidfrom.\n */\n histValidfrom?: string;\n /**\n * histValidto.\n */\n histValidto?: string;\n /**\n * histKm.\n */\n histKm?: string;\n /**\n * histReason.\n */\n histReason?: string;\n /**\n * histDate.\n */\n histDate?: string;\n /**\n * histUser.\n */\n histUser?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * ServiceRepNotes.\n */\nexport interface ServiceRepNotes { \n /**\n * userid.\n */\n userid?: string;\n /**\n * userName.\n */\n userName?: string;\n /**\n * createDate.\n */\n createDate?: string;\n /**\n * textSubject.\n */\n textSubject?: string;\n /**\n * notes.\n */\n notes?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriods } from './shiftPeriods';\n\n\n/**\n * Shift of the workspace\n */\nexport interface Shift { \n id?: number;\n userShiftId?: number;\n description?: string;\n dmsId?: string;\n type?: Shift.TypeEnum;\n startDate?: string;\n endDate?: string;\n periods?: Array;\n recurrence?: Array;\n}\nexport namespace Shift {\n export type TypeEnum = 'productive' | 'unproductive';\n export const TypeEnum = {\n Productive: 'productive' as TypeEnum,\n Unproductive: 'unproductive' as TypeEnum\n };\n export type RecurrenceEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const RecurrenceEnum = {\n Monday: 'monday' as RecurrenceEnum,\n Tuesday: 'tuesday' as RecurrenceEnum,\n Wednesday: 'wednesday' as RecurrenceEnum,\n Thursday: 'thursday' as RecurrenceEnum,\n Friday: 'friday' as RecurrenceEnum,\n Saturday: 'saturday' as RecurrenceEnum,\n Sunday: 'sunday' as RecurrenceEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriods { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: ShiftPeriods.DayEnum;\n}\nexport namespace ShiftPeriods {\n export type DayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const DayEnum = {\n Monday: 'monday' as DayEnum,\n Tuesday: 'tuesday' as DayEnum,\n Wednesday: 'wednesday' as DayEnum,\n Thursday: 'thursday' as DayEnum,\n Friday: 'friday' as DayEnum,\n Saturday: 'saturday' as DayEnum,\n Sunday: 'sunday' as DayEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Skill of a user\n */\nexport interface Skill { \n id?: number;\n description?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Division of total price\n */\nexport interface Split { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SrtOperation { \n code?: string;\n description?: string;\n repairTime?: number;\n partNumber?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SrtSupplierCode { \n id: number;\n code?: string;\n description?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Vehicles\\' Tech Type.\n */\nexport interface TechnicalType { \n /**\n * TT ID.\n */\n id: number;\n /**\n * TT name.\n */\n name?: string;\n /**\n * TT name id.\n */\n idName?: number;\n iceCode?: string;\n code?: string;\n label?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ProductObj } from './productObj';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' Type.\n */\nexport interface Types { \n /**\n * Type ID.\n */\n id: number;\n /**\n * type name.\n */\n name?: string;\n iceCode?: string;\n /**\n * type name id.\n */\n idName?: number;\n nameObj?: Name;\n productList?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * URL to redirect to\n */\nexport interface Url { \n url?: string;\n pdfFileName?: string;\n historyId?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * VehicleData.\n */\nexport interface VehicleData { \n /**\n * dealerCode.\n */\n dealerCode?: string;\n /**\n * dealerName.\n */\n dealerName?: string;\n /**\n * dealerCity.\n */\n dealerCity?: string;\n /**\n * dealerMkt.\n */\n dealerMkt?: string;\n /**\n * servDealCode.\n */\n servDealCode?: string;\n /**\n * servDealName.\n */\n servDealName?: string;\n /**\n * servDealMkt.\n */\n servDealMkt?: string;\n /**\n * retailDate.\n */\n retailDate?: string;\n /**\n * wtyStart.\n */\n wtyStart?: string;\n /**\n * invDate.\n */\n invDate?: string;\n /**\n * buildDate.\n */\n buildDate?: string;\n /**\n * plant.\n */\n plant?: string;\n /**\n * plantDescr.\n */\n plantDescr?: string;\n /**\n * fdpCode.\n */\n fdpCode?: string;\n /**\n * fdpDescEn.\n */\n fdpDescEn?: string;\n /**\n * fdpDescDeal.\n */\n fdpDescDeal?: string;\n /**\n * ldpCode.\n */\n ldpCode?: string;\n /**\n * ldpDescEn.\n */\n ldpDescEn?: string;\n /**\n * ldpDescDeal.\n */\n ldpDescDeal?: string;\n /**\n * searchArea.\n */\n searchArea?: string;\n /**\n * wtyLegalEnt.\n */\n wtyLegalEnt?: string;\n /**\n * regType.\n */\n regType?: string;\n /**\n * drivelSer.\n */\n drivelSer?: string;\n /**\n * engSer.\n */\n engSer?: string;\n /**\n * cabSer.\n */\n cabSer?: string;\n /**\n * commRange.\n */\n commRange?: string;\n /**\n * commRDesc.\n */\n commRDesc?: string;\n /**\n * modelGroup.\n */\n modelGroup?: string;\n /**\n * modelGroupDesc.\n */\n modelGroupDesc?: string;\n /**\n * subProductClass.\n */\n subProductClass?: string;\n /**\n * subProductClassDesc.\n */\n subProductClassDesc?: string;\n /**\n * vehicleClass.\n */\n vehicleClass?: string;\n /**\n * vehiClassDesc.\n */\n vehiClassDesc?: string;\n /**\n * theftCode.\n */\n theftCode?: number;\n /**\n * TheftDescEn.\n */\n TheftDescEn?: string;\n /**\n * TheftDescDeal.\n */\n TheftDescDeal?: string;\n /**\n * owrFlag.\n */\n owrFlag?: string;\n /**\n * busFlag.\n */\n busFlag?: string;\n /**\n * vehicleMkt.\n */\n vehicleMkt?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ResponseData } from './responseData';\nimport { WarrantyServices } from './warrantyServices';\n\n\n/**\n * VehicleDetails.\n */\nexport interface VehicleDetails { \n responseData?: ResponseData;\n activeWarranties?: Array;\n plannedWarranties?: Array;\n expiredWarranties?: Array;\n /**\n * Base Warranty Expiry Date\n */\n baseWarrantyDate?: string;\n /**\n * Extended Warranty Expiry Date\n */\n extendedWarrantyDate?: string;\n /**\n * Maintenance Contract Expiry Date\n */\n maintenanceContractDate?: string;\n /**\n * Engine Value PRP Code\n */\n engineValue?: string;\n /**\n * Current Mileage of the vehicle\n */\n currentMileage?: number;\n /**\n * Warranty start Date\n */\n warrantyStartDate?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * VehicleHistory.\n */\nexport interface VehicleHistory { \n /**\n * vehistDate.\n */\n vehistDate?: string;\n /**\n * vehistActionCode.\n */\n vehistActionCode?: string;\n /**\n * vehistActionDesc.\n */\n vehistActionDesc?: string;\n /**\n * vehistUser.\n */\n vehistUser?: string;\n /**\n * vehistCust.\n */\n vehistCust?: string;\n /**\n * vehistCustname.\n */\n vehistCustname?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Information from EDS for the vehicle\n */\nexport interface VehicleInfo { \n mileage?: number;\n hours?: number;\n averageMileage?: number;\n averageHours?: number;\n hasTelematics?: boolean;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * VehicleParts.\n */\nexport interface VehicleParts { \n /**\n * part.\n */\n part?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * If a VIN is valid or not on eTim\n */\nexport interface VinValidity { \n valid?: boolean;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Claim details for an activity.\n */\nexport interface WarrantyClaimData { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Warranty services.\n */\nexport interface WarrantyServices { \n /**\n * number.\n */\n number?: string;\n /**\n * descriptionEn.\n */\n descriptionEn?: string;\n /**\n * descriptionDeal.\n */\n descriptionDeal?: string;\n /**\n * warrantyType.\n */\n warrantyType?: string;\n /**\n * duration.\n */\n duration?: string;\n /**\n * servStartdate.\n */\n servStartdate?: string;\n /**\n * servEnddate.\n */\n servEnddate?: string;\n /**\n * mileage.\n */\n mileage?: string;\n /**\n * contract.\n */\n contract?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Warranty Type Object\n */\nexport interface WarrantyType { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopSale } from './workshopSale';\nimport { OpeningDay } from './openingDay';\n\n\n/**\n * Data for workshop.\n */\nexport interface Workshop { \n id: number;\n name: string;\n address?: string;\n city?: string;\n country?: string;\n phone?: string;\n email?: string;\n sapCode?: string;\n workshopSalesOrganizations?: Array;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n isImportStaffFromDms?: boolean;\n isTrWorkflow?: boolean;\n dmsAuthenticationPassword?: string;\n openingDays?: Array;\n /**\n * Currency code following ISO 4217\n */\n currencyCode?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n enableSafetyChecklist?: boolean;\n cspsUserId?: string;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n allowedTimePreferred?: string;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n labourCost?: number;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n dmsClockingBehavior?: Workshop.DmsClockingBehaviorEnum;\n dmsProvider?: string;\n addressDMSLimit?: number;\n eWarrantyFieldsMandatory?: boolean;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n selected?: boolean;\n}\nexport namespace Workshop {\n export type DmsClockingBehaviorEnum = 'REPLACE' | 'UPDATE' | 'IGNORE';\n export const DmsClockingBehaviorEnum = {\n REPLACE: 'REPLACE' as DmsClockingBehaviorEnum,\n UPDATE: 'UPDATE' as DmsClockingBehaviorEnum,\n IGNORE: 'IGNORE' as DmsClockingBehaviorEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface WorkshopBay { \n id?: number;\n name?: string;\n type?: string;\n workshopId?: number;\n weight?: number;\n isActive?: boolean;\n leadTechnician?: string;\n bayCode?: string;\n maximumUtilisation?: number;\n technicians?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Workshop } from './workshop';\n\n\n/**\n * Workshop discount\n */\nexport interface WorkshopDiscount { \n id?: number;\n dmsCode?: string;\n name?: string;\n percentage?: number;\n additionalInformation?: string;\n discountType?: string;\n workshop?: Workshop;\n workshopUsers?: Array;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Workshop with Sales organizations\n */\nexport interface WorkshopSale { \n id?: number;\n brand?: string;\n division?: string;\n salesCode?: string;\n}\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Role } from './role';\nimport { Shift } from './shift';\nimport { Skill } from './skill';\nimport { Workshop } from './workshop';\nimport { WorkshopUserUnavailability } from './workshopUserUnavailability';\nimport { WorkshopBay } from './workshopBay';\n\n\nexport interface WorkshopUser { \n id: string;\n views?: WorkshopUser.ViewsEnum;\n isActivityApproval?: WorkshopUser.IsActivityApprovalEnum;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n isActive?: boolean;\n isAdmin?: boolean;\n isManualJobStatusOverride?: boolean;\n role?: Role;\n workshopBay?: WorkshopBay;\n workshopBays?: Array;\n unavailabilities?: Array;\n isTechnicianView?: boolean;\n isAssociateUser?: boolean;\n deviceToken?: string;\n appVersion?: string;\n canEditJobcard?: boolean;\n displayedName?: string;\n skills?: Array;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n shifts?: Array;\n canSeePrice?: boolean;\n isAutomaticApproval?: WorkshopUser.IsAutomaticApprovalEnum;\n leadWorkshopBayId?: number;\n url?: string;\n costRate?: number;\n email?: string;\n canSelfAssign?: boolean;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n workshopList?: Array;\n}\nexport namespace WorkshopUser {\n export type ViewsEnum = 'workshopAgendaView' | 'technicianAgendaView' | 'courtesyVehicleAgendaView' | 'workshopPlanningView' | 'workshopUtilisationView' | 'technicianPlanningView' | 'courtesyVehiclePlanningView';\n export const ViewsEnum = {\n WorkshopAgendaView: 'workshopAgendaView' as ViewsEnum,\n TechnicianAgendaView: 'technicianAgendaView' as ViewsEnum,\n CourtesyVehicleAgendaView: 'courtesyVehicleAgendaView' as ViewsEnum,\n WorkshopPlanningView: 'workshopPlanningView' as ViewsEnum,\n WorkshopUtilisationView: 'workshopUtilisationView' as ViewsEnum,\n TechnicianPlanningView: 'technicianPlanningView' as ViewsEnum,\n CourtesyVehiclePlanningView: 'courtesyVehiclePlanningView' as ViewsEnum\n };\n export type IsActivityApprovalEnum = 'yesToDoStatus' | 'yesNewStatusOnly' | 'outOfHoursNewStatus' | 'outOfHoursNo' | 'nope';\n export const IsActivityApprovalEnum = {\n YesToDoStatus: 'yesToDoStatus' as IsActivityApprovalEnum,\n YesNewStatusOnly: 'yesNewStatusOnly' as IsActivityApprovalEnum,\n OutOfHoursNewStatus: 'outOfHoursNewStatus' as IsActivityApprovalEnum,\n OutOfHoursNo: 'outOfHoursNo' as IsActivityApprovalEnum,\n Nope: 'nope' as IsActivityApprovalEnum\n };\n export type IsAutomaticApprovalEnum = 'yesImmediateAccess' | 'yesDraftOnly' | 'outOfHoursDraftOnly' | 'outOfHoursNo' | 'yesAnytime' | 'yesOffline' | 'nope';\n export const IsAutomaticApprovalEnum = {\n YesImmediateAccess: 'yesImmediateAccess' as IsAutomaticApprovalEnum,\n YesDraftOnly: 'yesDraftOnly' as IsAutomaticApprovalEnum,\n OutOfHoursDraftOnly: 'outOfHoursDraftOnly' as IsAutomaticApprovalEnum,\n OutOfHoursNo: 'outOfHoursNo' as IsAutomaticApprovalEnum,\n YesAnytime: 'yesAnytime' as IsAutomaticApprovalEnum,\n YesOffline: 'yesOffline' as IsAutomaticApprovalEnum,\n Nope: 'nope' as IsAutomaticApprovalEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A technician\\'s GPS position for a specific travel.\n */\nexport interface WorkshopUserTravelPosition { \n id?: number;\n /**\n * Technician\\'s ID.\n */\n workshopUserId?: string;\n /**\n * Travel ID (if attached to a jobcard).\n */\n jobcardTravelId?: number;\n /**\n * Travel ID (if attached to a jobcard item).\n */\n jobcardItemTravelId?: number;\n latitude?: number;\n longitude?: number;\n /**\n * Position date-time\n */\n positionDate?: string;\n /**\n * Position type (start/ongoing/stop)\n */\n positionType?: WorkshopUserTravelPosition.PositionTypeEnum;\n /**\n * Device features\\' status when the position has been sent.\n */\n deviceStatus?: string;\n}\nexport namespace WorkshopUserTravelPosition {\n export type PositionTypeEnum = 'START' | 'ONGOING' | 'STOP';\n export const PositionTypeEnum = {\n START: 'START' as PositionTypeEnum,\n ONGOING: 'ONGOING' as PositionTypeEnum,\n STOP: 'STOP' as PositionTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - ETIM Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailability { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: WorkshopUserUnavailability.TypeEnum;\n}\nexport namespace WorkshopUserUnavailability {\n export type TypeEnum = 'holiday' | 'sickness' | 'training' | 'admin';\n export const TypeEnum = {\n Holiday: 'holiday' as TypeEnum,\n Sickness: 'sickness' as TypeEnum,\n Training: 'training' as TypeEnum,\n Admin: 'admin' as TypeEnum\n };\n}\n\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { Permission } from 'src/app/models/model/models';\nimport { PermissionsGuard } from './core/guards/permissions.guard';\nimport { UserGuard } from './core/user/user.guard';\nimport { ErrorComponent } from './error/error.component';\nimport { MainComponent } from './main/main.component';\nimport { MsalRedirectComponent } from '@azure/msal-angular';\n\nconst routes: Routes = [\n {\n path: '',\n redirectTo: '/planning',\n pathMatch: 'full',\n },\n {\n path: 'jobcard-auth',\n component: MsalRedirectComponent,\n },\n {\n path: '',\n component: MainComponent,\n // canActivate: [UserGuard],\n children: [\n {\n path: 'planning',\n loadChildren: () =>\n import('./planning/planning.module').then(\n (mod) => mod.PlanningModule\n ),\n },\n {\n path: 'workspace',\n loadChildren: () =>\n import('./workspace/workspace.module').then(\n (mod) => mod.WorkspaceModule\n ),\n },\n {\n path: 'admin',\n canActivate: [PermissionsGuard],\n data: {\n permissions: [Permission.Admin],\n },\n loadChildren: () =>\n import('./admin/admin.module').then((mod) => mod.AdminModule),\n },\n {\n path: 'workfile',\n loadChildren: () =>\n import('./workfile/workfile.module').then(\n (mod) => mod.WorkfileModule\n ),\n },\n {\n path: 'reports',\n loadChildren: () =>\n import('./reports/reports.module').then((mod) => mod.ReportsModule),\n },\n {\n path: 'proactive',\n loadChildren: () =>\n import('./proactive/proactive.module').then(\n (mod) => mod.ProactiveModule\n ),\n },\n ],\n },\n {\n path: 'new-appointment',\n canActivate: [UserGuard, PermissionsGuard],\n data: {\n permissions: [Permission.CreateAppointment],\n },\n loadChildren: () =>\n import('./appointment/appointment.module').then(\n (mod) => mod.AppointmentModule\n ),\n },\n {\n path: 'appointment/:id',\n canActivate: [UserGuard, PermissionsGuard],\n data: {\n permissions: [Permission.CreateAppointment],\n },\n loadChildren: () =>\n import('./appointment/appointment.module').then(\n (mod) => mod.AppointmentModule\n ),\n },\n {\n path: 'your-appointment',\n loadChildren: () =>\n import('./summary/summary.module').then((m) => m.SummaryModule),\n },\n {\n path: 'public/your-appointment',\n loadChildren: () =>\n import('./summary/summary.module').then((m) => m.SummaryModule),\n },\n {\n path: 'vehicle-details/:marketId/:vin',\n canActivate: [UserGuard],\n loadChildren: () =>\n import('./vehicle-details/vehicle-details.module').then(\n (mod) => mod.VehicleDetailsModule\n ),\n },\n {\n path: 'error',\n component: ErrorComponent,\n },\n {\n path: 'internal',\n loadChildren: () =>\n import('./internal/internal.module').then((m) => m.InternalModule),\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, Inject, LOCALE_ID, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { NgbDatepickerConfig } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport jwt_decode from 'jwt-decode';\nimport { CookieService } from 'ngx-cookie-service';\nimport { PermissionsService } from './core/permissions/permissions.service';\nimport { COOKIE_HTTP_ONLY, UserService } from './core/user/user.service';\nimport { WebsocketService } from './core/websocket/websocket.service';\nimport {\n DealerBrandStyle,\n Notification,\n NotificationType,\n} from 'src/app/models/model/models';\n\nimport { ToastrService } from 'ngx-toastr';\n// import { DealerBrandService } from '@api-jobcard';\nimport { environment } from 'src/environments/environment';\nimport { DOCUMENT } from '@angular/common';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { MsalService } from '@azure/msal-angular';\nimport { loginRequest } from './msal/auth-config';\nimport { LoginControllerService } from 'src/api/djc-auth-service';\nimport { UserAdminService } from './core/user/user-admin.service';\n\n@Component({\n selector: 'jc-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit, OnDestroy {\n url: string;\n publicUrl: boolean;\n constructor(\n private ngbDatepickerConfig: NgbDatepickerConfig,\n private userService: UserService,\n private userAdminService: UserAdminService,\n private permissionsService: PermissionsService,\n private cookieService: CookieService,\n private websocketService: WebsocketService,\n private toastrService: ToastrService,\n //TODO(Matteo) ignorare RemoveYaml iveco no\n // private breandService: DealerBrandService,\n @Inject(DOCUMENT) private document: Document,\n @Inject(LOCALE_ID) private locale: string,\n private route: ActivatedRoute,\n private authService: MsalService,\n private router: Router,\n private loginControllerService: LoginControllerService,\n private _renderer2: Renderer2\n ) {\n moment.locale(this.locale.toLowerCase(), {\n week: {\n dow: 1, // Setting Monday as the first day of the week for every location\n },\n });\n this.ngbDatepickerConfig.firstDayOfWeek = 1;\n }\n idToken: any;\n accessToken: any;\n appToken: string;\n\n hexToHSL = (H: string) => {\n // Convert hex to RGB first\n let r: any = 0,\n g: any = 0,\n b: any = 0;\n if (H.length == 4) {\n r = '0x' + H[1] + H[1];\n g = '0x' + H[2] + H[2];\n b = '0x' + H[3] + H[3];\n } else if (H.length == 7) {\n r = '0x' + H[1] + H[2];\n g = '0x' + H[3] + H[4];\n b = '0x' + H[5] + H[6];\n }\n // Then to HSL\n r /= 255;\n g /= 255;\n b /= 255;\n let cmin = Math.min(r, g, b),\n cmax = Math.max(r, g, b),\n delta = cmax - cmin,\n h = 0,\n s = 0,\n l = 0;\n\n if (delta == 0) h = 0;\n else if (cmax == r) h = ((g - b) / delta) % 6;\n else if (cmax == g) h = (b - r) / delta + 2;\n else h = (r - g) / delta + 4;\n\n h = Math.round(h * 60);\n\n if (h < 0) h += 360;\n\n l = (cmax + cmin) / 2;\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n\n return {\n hValue: Math.round(h),\n sValue: Math.round(s) + '%',\n lValue: Math.round(l) + '%',\n hslValue: 'hsl(' + h + ',' + s + '%,' + l + '%)',\n };\n };\n\n ngOnInit() {\n this.publicUrl = window.location.pathname.includes('your-appointment') ? true : false;\n if (!this.publicUrl) {\n this.authService.instance.handleRedirectPromise().then((response) => {\n if (response) {\n this.idToken = response.idToken;\n this.accessToken = response.accessToken;\n\n this.authService.instance.setActiveAccount(response.account);\n }\n if (this.idToken && this.accessToken) {\n const decodedTokenId: any = jwt_decode(this.idToken);\n this.userService.changeUserId(decodedTokenId);\n this.userAdminService.changeUserId(decodedTokenId);\n this.userService.accessToken = this.accessToken;\n this.userAdminService.accessToken = this.accessToken;\n this.loginControllerService.login({ userId: decodedTokenId.User_id, authorization: this.accessToken }).subscribe((res: any) => {\n this.userLogged(res);\n });\n } else {\n this.authService.loginRedirect(loginRequest);\n }\n }).catch((error) => {\n console.error(error);\n });\n }\n}\n\n userLogged(res: any){\n const decodedRefreshedToken: any = jwt_decode(res.token);\n if(window.location.href.includes('localhost') || !this.redirectToUserLanguageUrl(decodedRefreshedToken.data.language)){\n this.appToken = res.token;\n sessionStorage.setItem('appTokenSetted', 'true');\n this.userService.changeToken(res.token);\n this.userAdminService.changeToken(res.token);\n this.cookieService.set(\n COOKIE_HTTP_ONLY,\n JSON.stringify(res.token)\n );\n\n\n this.document.body.classList.remove('ag-light-themes');\n this.document.body.classList.remove('ag-secondary-light-themes');\n this.userService.getUser().subscribe((user) => {\n if (user.workshopId) {\n this.permissionsService.getPermissions([]).subscribe();\n }\n // TODO(Marco) removed pending notifications\n // this.initWebsocket(user.id);\n\n // Applying brand theme for AG\n if (!environment.isIveco) {\n this.applyThemes();\n }\n });\n //Add storage listener and reload the taps same url opened tap\n this.removeTempLocal();\n const self = this;\n\n window.addEventListener('storage', () => {\n const refreshedToken = window.sessionStorage.getItem('jc-updateUser');\n if (\n JSON.parse(window.sessionStorage.getItem('userUpdate')) &&\n document.hidden &&\n refreshedToken\n ) {\n window.sessionStorage.removeItem('userUpdate');\n //window.location.reload();\n const cookiesData = self.getToken();\n const decodedRefreshedToken: any = jwt_decode(refreshedToken);\n if (cookiesData) {\n const decodedToken: any = jwt_decode(cookiesData);\n if (decodedToken?.data?.id === decodedRefreshedToken?.data?.id) {\n // self.cookieService.set(\n // COOKIE_HTTP_ONLY,\n // JSON.stringify(refreshedToken)\n // );\n self.userService.updateUser(\n JSON.parse(JSON.stringify(decodedRefreshedToken?.data))\n );\n }\n }\n window.sessionStorage.removeItem('jc-updateUser');\n }\n });\n\n\n }\n }\n removeTempLocal() {\n window.sessionStorage.removeItem('userUpdate');\n window.sessionStorage.removeItem('jc-updateUser');\n }\n\n getToken() {\n return this.cookieService.get(COOKIE_HTTP_ONLY).replace(/\"/g, '');\n }\n /**\n * This function used to to initialize the websocket for notification.\n * @param userId current user id\n */\n initWebsocket(userId: string) {\n this.websocketService.initWebSocket().then(() => {\n this.websocketService.subscribe(\n 'socket/' + userId + '/notifications',\n (event) => {\n // Set the new notification\n this.websocketService.setNotification(event);\n }\n );\n });\n }\n\n /**\n * Applying brand style AGCE\n */\n\n applyThemes() {\n //TODO(Matteo) ignorare RemoveYaml iveco no httpClient.get(`${this.configuration.basePath}/dealer-brand/style\n // this.breandService\n // .getDealerBrandStyle()\n // .subscribe((brand: DealerBrandStyle) => {\n // this.document.body.classList.remove('ag-light-themes');\n // this.document.body.classList.remove('ag-secondary-light-themes');\n // switch (brand?.brandStyleId) {\n // case DealerBrandStyle.BrandStyleIdEnum.CASECE:\n // this.document.body.classList.add('ag-light-themes');\n // break;\n // case DealerBrandStyle.BrandStyleIdEnum.NHCE:\n // this.document.body.classList.add('ag-secondary-light-themes');\n // break;\n\n // case DealerBrandStyle.BrandStyleIdEnum.NHAG:\n // // Add any specific style for NHAG\n // break;\n\n // case DealerBrandStyle.BrandStyleIdEnum.CASEIH:\n // // Add any specific style for CASE IH\n // break;\n\n // default:\n // this.document.body.classList.remove('ag-light-themes');\n // this.document.body.classList.remove('ag-secondary-light-themes');\n // break;\n // }\n\n // if (brand?.brandPrimaryColor) {\n // this.applybrandTheme(brand?.brandPrimaryColor);\n // document.documentElement.style.setProperty(\n // '--brand-primary-bg',\n // brand?.brandBgColor ?? '#f5f9ff'\n // );\n // } else {\n // document.documentElement.style.setProperty(\n // '--brand-primary-bg',\n // '#f5f9ff'\n // );\n // this.applybrandTheme('#005bea'); // Default theme\n // }\n // });\n }\n\n /**\n * This function used to set the global primary based on brand\n * @param colorHex global primary color\n */\n applybrandTheme(colorHex: string) {\n const brandHSL = this.hexToHSL(colorHex);\n document.documentElement.style.setProperty('--blue', brandHSL.hslValue);\n document.documentElement.style.setProperty(\n '--blue-h',\n brandHSL.hValue.toString()\n );\n document.documentElement.style.setProperty('--blue-s', brandHSL.sValue);\n document.documentElement.style.setProperty('--blue-l', brandHSL.lValue);\n }\n\n ngOnDestroy(): void {\n window.removeEventListener('storage', null);\n sessionStorage.removeItem('userUpdate');\n sessionStorage.removeItem('jc-updateUser');\n }\n redirectToUserLanguageUrl(lang: string): boolean {\n const currentUrl = window.location.href;\n if (currentUrl.includes('localhost')) {\n return true;\n }\n const changeLanguage = sessionStorage.getItem('changeLanguage');\n const userLanguage = sessionStorage.getItem('userLanguage') || lang;\n let result=false;\n\n if (changeLanguage !== 'true') {\n const urlParts = currentUrl.split('/');\n const langPosition = 3;\n const urlLang = urlParts[langPosition];\n\n if (\n urlLang !== 'DA' &&\n urlLang !== 'DE' &&\n urlLang !== 'EN' &&\n urlLang !== 'EN-GB' &&\n urlLang !== 'ES' &&\n urlLang !== 'FR' &&\n urlLang !== 'FR-CA' &&\n urlLang !== 'IT' &&\n urlLang !== 'PL' &&\n urlLang !== 'PT-BR'\n ) {\n urlParts.splice(langPosition, 0, userLanguage);\n const newUrl = urlParts.join('/');\n window.location.href = newUrl;\n result = true;\n } else if (urlLang !== userLanguage) {\n urlParts[langPosition] = userLanguage;\n const newUrl = urlParts.join('/');\n window.location.href = newUrl;\n result = true;\n }\n }\n return result;\n }\n\n loadOptanonWrapper(): void {\n // Definisci la funzione OptanonWrapper\n (window as any).OptanonWrapper = function () {\n\n };\n }\n}\n","
\n \n
\n
\n \n
\n","import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport {\n NgbDateAdapter,\n NgbDateNativeAdapter,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { NgChartsModule } from 'ng2-charts';\nimport { ToastrModule } from 'ngx-toastr';\nimport { environment } from 'src/environments/environment';\nimport { NgxGaugeModule } from 'ngx-gauge';\nimport { GaugeModule } from 'angular-gauge';\nimport { NgxMatomoTrackerModule } from '@ngx-matomo/tracker';\nimport {\n ApiModule as ApiModuleJobcard,\n BASE_PATH as BASE_PATH_JOBCARD,\n} from '../api/jobcard/';\nimport {\n ApiModule as ApiModuleSmartview,\n BASE_PATH as BASE_PATH_SMARTVIEW,\n} from '../api/smartview/';\nimport {\n ApiModule as ApiModuleDocument,\n BASE_PATH as BASE_PATH_DOCUMENT,\n} from '../api/document/';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { CoreModule } from './core/core.module';\nimport { LanguagesInterceptor } from './core/languages/languages.interceptor';\nimport { InterceptorService } from './core/services-interceptor/interceptor.service';\nimport { ErrorComponent } from './error/error.component';\nimport { MainComponent } from './main/main.component';\nimport { LoadingScreenInterceptor } from './shared/loading-screen/loading-screen.interceptor';\nimport { SharedModule } from './shared/shared.module';\nimport { SessionTokenInterceptor } from './core/services-interceptor/session-token.interceptor';\nimport { AuthMsalModule } from './msal/auth-msal.module';\nimport { AccessTokenInterceptor } from './msal/access-token.interceptor';\nimport { ApplicationTokenInterceptor } from './core/services-interceptor/application-token.interceptor';\n\n@NgModule({\n declarations: [AppComponent, MainComponent, ErrorComponent],\n imports: [\n FormsModule,\n BrowserModule,\n AppRoutingModule,\n CoreModule,\n SharedModule,\n HttpClientModule,\n ApiModuleSmartview,\n ApiModuleJobcard,\n ApiModuleDocument,\n BrowserAnimationsModule,\n NgChartsModule,\n NgxGaugeModule,\n ToastrModule.forRoot({\n positionClass: 'toast-top-center',\n timeOut: 10000,\n extendedTimeOut: 5000,\n closeButton: true,\n tapToDismiss: false,\n preventDuplicates: true,\n countDuplicates: true,\n }),\n GaugeModule.forRoot(),\n AuthMsalModule,\n NgxMatomoTrackerModule.forRoot({\n siteId: environment.matomoSiteId,\n trackerUrl: environment.matomoUrl,\n }),\n ],\n providers: [\n { provide: BASE_PATH_JOBCARD, useValue: environment.apiBasePathJobcard },\n {\n provide: BASE_PATH_SMARTVIEW,\n useValue: environment.apiBasePathSmartview,\n },\n {\n provide: BASE_PATH_DOCUMENT,\n useValue: environment.apiBasePathSmartview,\n },\n {\n provide: NgbDateAdapter,\n useClass: NgbDateNativeAdapter,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: LoadingScreenInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: LanguagesInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: InterceptorService,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: SessionTokenInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AccessTokenInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApplicationTokenInterceptor,\n multi: true,\n }\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n// import {\n// ApiAppointmentService,\n// CreateAppointmentStatusRequestParams,\n// EmailService,\n// ListAppointmentsByVehicleRequestParams,\n// NotificationService,\n// } from '@api-jobcard';\nimport {\n GetMaintenanceOperationByCouponRequestParams,\n MaintenanceService,\n} from '@api-smartview';\nimport {\n ApiError,\n Appointment,\n AppointmentStatus,\n JobcardItem,\n JobcardItemStatus,\n PaymentType,\n Workshop,\n WorkshopUser,\n} from 'src/app/models/model/models';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, Subscription } from 'rxjs';\nimport { PaymentsService } from 'src/app/core/payments/payments.service';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { JobcardItemCollapsable } from 'src/app/shared/activities/activities.component';\nimport { ConfirmModalComponent } from 'src/app/shared/confirm-modal/confirm-modal.component';\nimport { DeleteAppointmentModalComponent } from 'src/app/shared/delete-appointment-modal/delete-appointment-modal.component';\nimport { environment } from 'src/environments/environment';\nimport { PermissionsService } from 'src/app/core/permissions/permissions.service';\nimport { Permission } from 'src/app/models/model/permission';\nimport { AppointmentService } from '../appointment.service';\nimport { BreakdownNotifyService } from '../breakdown-notification.service';\nimport { EmailConfirmModalComponent } from '../email-confirm-modal/email-confirm-modal.component';\nimport { FeedbackModalComponent } from 'src/app/shared/feedback-modal/feedback-modal.component';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { WorkshopDto } from 'src/api/djc-admin-service';\nimport { AppointmentsService, CustomerAppointmentDto, GetVehiclesRequestParams, PaymentTypeDto, RetriveAppointmentsCountByVehicleIdRequestParams, UpdateAppointmentRequestParams, VehicleService } from 'src/api/djc-booking-service';\nimport { AppointmentInCreation, NewAppointmentService } from '../new-appointment.service';\nimport { PaymentsServiceAdmin } from 'src/app/core/payments/payments.serviceAdmin';\nimport { MappingService } from 'src/app/core/mapping/mapping.service';\nimport { PaymentTypeTypeEnum } from 'src/app/shared/constants/constants';\nexport type EmailTypeEnum = 'NEGOTIATE' | 'FINAL';\nexport const emailType = {\n negotiate: 'NEGOTIATE' as EmailTypeEnum,\n final: 'FINAL' as EmailTypeEnum,\n};\n\n@Component({\n selector: 'jc-appointment-footer',\n templateUrl: './appointment-footer.component.html',\n styleUrls: ['./appointment-footer.component.scss'],\n})\nexport class AppointmentFooterComponent implements OnInit, OnDestroy {\n @Input() back: string;\n @Input() next: string;\n @Input() nextLabel: string;\n @Input() user: WorkshopUser;\n @Input() appointment: Appointment;\n @Input() appointmentInCreation: AppointmentInCreation;\n @Output() onSave = new EventEmitter();\n @Input() customername?: Observable;\n appointmentSubscription: Subscription;\n paymentTypes: PaymentTypeDto[] = [];\n disableSave: boolean;\n appStatusEnum = AppointmentStatus.StatusEnum;\n hasValidTravels: boolean;\n workshop: WorkshopDto;\n currentUser: WorkshopUser;\n createAppointmentEnum = WorkshopUser.IsAutomaticApprovalEnum;\n environment = environment;\n failureSeverityFlag = false;\n onlyFinalEmailType = false;\n negotiationOrFinalEmailType = false;\n vehicles: any;\n\n constructor(\n public appointmentService: AppointmentService,\n private maintenanceService: MaintenanceService,\n // private emailService: EmailService,\n private toastrService: ToastrService,\n private modalService: NgbModal,\n private paymentsService: PaymentsServiceAdmin,\n private userService: UserService,\n private router: Router,\n private breakdownNotifyService: BreakdownNotifyService,\n // private notificationService: NotificationService,\n private workshopService: WorkshopAdminService,\n private activatedRoute: ActivatedRoute,\n private permissionsService: PermissionsService,\n private ngbModal: NgbModal,\n private vehicleService: VehicleService,\n public newAppointmentService: NewAppointmentService,\n private newApiAppointmentsService: AppointmentsService,\n public mappingService: MappingService\n ) {}\n\n ngOnInit(): void {\n this.userService.getUser().subscribe((user) => {\n this.currentUser = user;\n if (!this.appointmentInCreation?.customerCompany?.name?.trim()?.length) {\n this.disableSave = true;\n }\n if (this.customername) {\n this.customername.subscribe((cname) => (this.disableSave = true));\n }\n this.workshopService.getWorkshop().subscribe((w) => {\n this.workshop = w;\n const paramsForVehicle: GetVehiclesRequestParams = {\n workshopId: this.currentUser.workshopId,\n isAdmin: false,\n authorization: this.userService.accessToken,\n vin: this.appointmentInCreation?.vehicle?.vin,\n };\n if (this.appointmentInCreation?.vehicle?.vin) {\n this.vehicleService\n .getVehicles(paramsForVehicle)\n .subscribe((vehicles: any) => {\n const params: RetriveAppointmentsCountByVehicleIdRequestParams = {\n vehicleId: vehicles.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n if (undefined === vehicles.id) {\n this.disableSave = false;\n } else {\n this.newApiAppointmentsService\n .retriveAppointmentsCountByVehicleId(params)\n .subscribe((isInUse: any) => {\n if (isInUse && !vehicles.isActive) {\n this.disableSave = true;\n this.toastrService.error(\n $localize`Vehicle is hidden or deleted , you would not be able to create appointment.`\n );\n }\n });\n }\n });\n }\n });\n this.paymentsService.getPaymentTypes(this.currentUser.workshopId).subscribe((types) => {\n this.paymentTypes.push(...types.filter((type) => type.isVisible));\n this.appointmentInCreation?.jobcard?.jobcardItems.forEach((jobcardItem: any) => {\n let isPtype = jobcardItem?.paymentType;\n //Set the payment type\n if (!isPtype) {\n isPtype = this.paymentTypes.find(\n (ptype: any) =>\n ptype?.id === jobcardItem?.paymentTypeId && ptype?.isVisible\n );\n }\n if (\n isPtype?.type?.toLocaleLowerCase() !== PaymentTypeTypeEnum.Warranty\n ) {\n jobcardItem.installedDate = null;\n jobcardItem.preAuthorizationCode = null;\n jobcardItem.amountUseOnSpareParts = null;\n jobcardItem.sparePartInvoiceNumber = null;\n jobcardItem.failedComponentSerialNumber = null;\n jobcardItem.replacedComponentSerialNumber = null;\n }\n });\n });\n\n if (environment.isIveco && this.appointmentInCreation?.jobcard?.jobcardTravels) {\n this.appointmentInCreation?.jobcard?.jobcardTravels.forEach((t: any) => {\n if (!t.deleted) {\n this.hasValidTravels = true;\n }\n });\n }\n this.paymentsService.getPaymentTypes(this.currentUser.workshopId).subscribe((types) => {\n this.paymentTypes.push(...types.filter((type) => type.isVisible));\n });\n if (this.customername) {\n this.customername?.subscribe((customer: any) => {\n if (\n this.newAppointmentService?.appointmentInCreation?.customerCompany?.name?.trim()\n ?.length\n ) {\n this.disableSave = false;\n }\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n this.appointmentSubscription?.unsubscribe();\n }\n\n failureSeverityRate(next: any) {\n // if (next === '/new-appointment/booking') {\n this.failureSeverityFlag = false;\n if (this.appointmentInCreation?.jobcard.jobcardItems.length > 0) {\n this.appointmentInCreation?.jobcard.jobcardItems.forEach((jobcardItem: any) => {\n if (\n jobcardItem.failureCode &&\n (undefined === jobcardItem.failureSeverity ||\n null === jobcardItem.failureSeverity)\n ) {\n this.failureSeverityFlag = true;\n }\n });\n }\n if (this.failureSeverityFlag) {\n this.toastrService.error(\n $localize`Please select the failure severity rate `,\n '',\n {\n timeOut: 5000,\n }\n );\n } else {\n this.activatedRoute?.queryParams.subscribe((value: any) => {\n this.router.navigate([next], {\n relativeTo: this.activatedRoute,\n queryParams: value,\n queryParamsHandling: 'merge',\n });\n });\n }\n // } else {\n // this.activatedRoute?.queryParams.subscribe((value: any) => {\n // this.router.navigate([next], {\n // relativeTo: this.activatedRoute,\n // queryParams: value,\n // queryParamsHandling: 'merge',\n // });\n // });\n // }\n }\n\n // TODO moved to the header\n // sendEmail() {\n // const hasEmail =\n // this.appointmentInCreation.status.customerCompanyUser.email ||\n // this.appointmentInCreation.customerCompany.email;\n // let type: EmailTypeEnum;\n // let removeNegotiationEmail = false;\n // if (hasEmail) {\n // if (!environment.isIveco) {\n // this.permissionsService\n // .hasPermissions([Permission.RemoveNegotiationEmail])\n // .subscribe((res) => {\n // removeNegotiationEmail = res;\n // });\n // }\n // const modalRef = this.modalService.open(EmailConfirmModalComponent);\n // modalRef.componentInstance.onlyFinalEmailType = removeNegotiationEmail;\n // modalRef.result.then((resp) => {\n // type = resp ? emailType.negotiate : emailType.final;\n // this.newAppointmentService.setItemsWeight(\n // this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems\n // );\n // this.appointmentServiceApi\n // .updateAppointment({\n // id: this.newAppointmentService.appointmentInCreation.id,\n // appointment: this.newAppointmentService.appointmentInCreation,\n // })\n // .subscribe(\n // () => {\n // this.toastrService.success($localize`Appointment edited`);\n // this.emailService\n // .sendAppointmentMailByAppointmentId({\n // appointmentId: this.appointmentInCreation.id,\n // emailType: type,\n // })\n // .subscribe(\n // () => {\n // this.toastrService.success($localize`Email sent`);\n // },\n // () => {\n // this.toastrService.error(\n // $localize`Email has not been sent.`\n // );\n // }\n // );\n // },\n // (error: HttpErrorResponse) => {\n // const apiError: ApiError = error.error;\n // this.toastrService.error(apiError.message);\n // }\n // );\n // });\n // } else {\n // const modalRef = this.modalService.open(ConfirmModalComponent);\n // const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n // confirmModal.title = $localize`Send confirmation email`;\n // confirmModal.message = $localize`Email addresses are empty. Please enter at least one email address.`;\n // confirmModal.action = $localize`OK`;\n // confirmModal.showCancelButton = false;\n // }\n // }\n\n // REMOVED\n // save(event: Event) {\n // if (environment.isIveco) {\n // if (\n // this.appointmentInCreation.customerCompany.creditStatus &&\n // this.workshop.countryId === 69 &&\n // this.appointmentInCreation.customerCompany.creditStatusId === 2\n // ) {\n // const modalRef = this.modalService.open(ConfirmModalComponent);\n // const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n // confirmModal.title = $localize`Alert`;\n // confirmModal.message = $localize`The Customer is currently in Blocked status. You cannot continue to create appointment`;\n // confirmModal.action = $localize`OK`;\n // confirmModal.showCancelButton = true;\n // modalRef.result.then((resp: boolean) => {\n // if (resp === true) {\n // this.router.navigate(['/planning'], {\n // queryParams: {\n // date: moment(\n // this.newAppointmentService.appointmentInCreation.deliveryDate\n // ).format('YYYY-MM-DD'),\n // bok: true, // Booking finished\n // },\n // });\n // }\n // });\n // } else {\n // this.failureSeverityFlag = false;\n // event.stopPropagation();\n // if (this.appointmentInCreation?.jobcard.jobcardItems.length > 0) {\n // this.appointmentInCreation?.jobcard.jobcardItems.forEach((jobcardItem: any) => {\n // if (\n // jobcardItem.failureCode &&\n // (undefined === jobcardItem.failureSeverity ||\n // null === jobcardItem.failureSeverity)\n // ) {\n // this.failureSeverityFlag = true;\n // }\n // });\n // }\n // if (this.failureSeverityFlag) {\n // this.toastrService.error(\n // $localize`Please select the failure severity rate `,\n // '',\n // {\n // timeOut: 5000,\n // }\n // );\n // } else {\n // this.editAppointment();\n // }\n // }\n // } else {\n // this.failureSeverityFlag = false;\n // event.stopPropagation();\n // this.editAppointment();\n // }\n // }\n\n // editAppointment() {\n // this.newAppointmentService.setNewStatus(\n // this.newAppointmentService.appointmentInCreation.status.status,\n // this.newAppointmentService.appointmentInCreation.status.customerCompanyUser\n // );\n // this.newAppointmentService.setItemsWeight(\n // this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems\n // );\n // if (\n // this.currentUser.isAutomaticApproval ===\n // this.createAppointmentEnum.YesImmediateAccess &&\n // this.newAppointmentService.appointmentInCreation?.currentAppointmentstatus?.status ===\n // this.appStatusEnum.Draft\n // ) {\n // const status: AppointmentStatus = JSON.parse(\n // JSON.stringify(this.newAppointmentService.appointmentInCreation.status)\n // );\n // status.status = this.appStatusEnum.AppointmentPrepared;\n // const statusParams: CreateAppointmentStatusRequestParams = {\n // appointmentId: this.newAppointmentService.appointmentInCreation.id,\n // appointmentStatus: status,\n // };\n\n // this.appointmentServiceApi\n // .createAppointmentStatus(statusParams)\n // .subscribe(() => {\n // this.updateAppointment();\n // });\n // } else {\n // this.updateAppointment();\n // }\n // }\n\n // updateAppointment() {\n // this.newAppointmentService.retainLatestStatus();\n // let page;\n // switch (true) {\n // case this.router.url.includes('customer'):\n // page = 'customer';\n // break;\n // case this.router.url.includes('activity'):\n // page = 'activity';\n // break;\n // case this.router.url.includes('operations'):\n // page = 'operations';\n // break;\n // case this.router.url.includes('booking'):\n // page = 'booking';\n // break;\n // }\n // let appDto;\n // if(page === 'customer') {\n // appDto = this.mappingService.mapAppointmentInCreationDtoToCustomerAppointmentDto(this.newAppointmentService.appointmentInCreation);\n // } else if(page === 'operations' || page === 'booking') {\n // appDto = this.mappingService.mapAppointmentInCreationDtoToBookingAppointmentDto(this.newAppointmentService.appointmentInCreation);\n // }\n // const params: UpdateAppointmentRequestParams = {\n // id:this.newAppointmentService.appointmentInCreation.id,\n // authorization: this.userService.accessToken,\n // applicationToken: this.userService.newToken,\n // bookingAppointmentDtoCustomerAppointmentDto: appDto,\n // isComplete: true,\n // // old\n // // appointment: this.newAppointmentService.appointmentInCreation,\n // };\n // this.newApiAppointmentsService.updateAppointment(params).subscribe(\n // (appointment) => {\n // const app = this.mappingService.mapAppointmentViewDtoToAppointmentInCreation(appointment);\n // this.initChecklist(app);\n // app?.jobcard?.jobcardItems.forEach((jobcardItem: any) => {\n // if (jobcardItem.discountTypeId) {\n // jobcardItem.isDiscountAvailable = true;\n // }\n // // To set missing consumables\n // this.getMpOperations(jobcardItem);\n // });\n // this.newAppointmentService.appointmentInCreation = app;\n // this.toastrService.success($localize`Appointment edited`);\n // this.onSave.emit();\n // this.newAppointmentService.refreshJobcardItems(\n // this.paymentTypes,\n // this.workshop\n // );\n // // Send the notification in case of activities approved by the Service Advisor\n // if (\n // this.newAppointmentService.appointmentInCreation?.id &&\n // this.newAppointmentService.newApprovedActivities.length > 0\n // ) {\n // // DA CAMBIARE\n // //TODO(Matteo) change with new service notification\n // // simple\n // // this.notificationService\n // // .createNotification({\n // // notificationDto: {\n // // type: 'ACTIVITY_APPROVED',\n // // appointment: this.appointment.id,\n // // },\n // // noLoader: true,\n // // workshopId: this.user.workshopId,\n // // authorization: this.userService.accessToken,\n // // })\n // // .subscribe();\n // this.notificationService\n // .postNewNotification({\n // notificationCreation: {\n // type: 'ACTIVITY_APPROVED',\n // appointmentId: this.newAppointmentService.appointmentInCreation.id,\n // },\n // noLoader: true,\n // })\n // .subscribe(() => {\n // this.newAppointmentService.newApprovedActivities = [];\n // });\n // }\n // },\n // () => {\n // this.toastrService.error(\n // $localize`Error while editing this appointment`\n // );\n // }\n // );\n // }\n\n // delete() {\n // const modalRef = this.modalService.open(DeleteAppointmentModalComponent);\n // modalRef.componentInstance.appointment = this.appointmentInCreation;\n // modalRef.result.then((success: boolean) => {\n // if (success === true) {\n // this.router.navigate(['/planning'], {\n // queryParams: {\n // date: moment(\n // this.newAppointmentService.appointmentInCreation.deliveryDate\n // ).format('YYYY-MM-DD'),\n // bok: true, // Booking finished\n // },\n // });\n // }\n // });\n // }\n\n sendNotification() {\n this.breakdownNotifyService.sendBreakdownNotification(this.appointmentInCreation);\n }\n\n // openFeedbackMenu() {\n // const feedbackModalData = {\n // id: this.newAppointmentService.user.id,\n // displayedName: this.newAppointmentService?.user?.displayedName,\n // notificationEmail: this.newAppointmentService?.user?.email,\n // sapCode: this.workshop.sapCode,\n // };\n // const modalRef = this.ngbModal.open(FeedbackModalComponent, {\n // size: 'lg',\n // });\n // modalRef.componentInstance.feedbackModalData = feedbackModalData;\n // modalRef.componentInstance.appointmentDto = this.newAppointmentService.appointmentInCreation;\n // }\n\n private initChecklist(appointment: Appointment) {\n // If the jobcard has no checklist, we need to set it an empty one\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n if (!appointment?.checklistInstances) {\n appointment.checklistInstances = [\n {\n id: undefined,\n workshopUserId: user.id,\n type: 'reception',\n checkListResult: [],\n checklistTemplateId: -1,\n },\n ];\n if (!environment.isIveco) {\n appointment.checklistInstances.push({\n id: undefined,\n workshopUserId: user.id,\n type: 'safety',\n checkListResult: [],\n checklistTemplateId: -1,\n });\n }\n } else {\n appointment.checklistInstances.sort((a, b) => (a.id > b.id ? 1 : -1));\n const receptionChecklist = appointment.checklistInstances.find(\n (instance) => instance.type === 'reception'\n );\n if (!receptionChecklist) {\n appointment.checklistInstances.unshift({\n id: undefined,\n workshopUserId: user.id,\n type: 'reception',\n checkListResult: [],\n checklistTemplateId: -1,\n });\n } else {\n appointment.checklistInstances.splice(\n appointment.checklistInstances.indexOf(receptionChecklist),\n 1\n );\n appointment.checklistInstances.unshift(receptionChecklist);\n }\n if (\n !environment.isIveco &&\n (!appointment.checklistInstances[1] ||\n appointment.checklistInstances[1].type !== 'safety')\n ) {\n appointment.checklistInstances.splice(1, 0, {\n id: undefined,\n workshopUserId: user.id,\n type: 'safety',\n checkListResult: [],\n checklistTemplateId: -1,\n });\n }\n }\n });\n }\n\n private getMpOperations(jobcardItem: JobcardItemCollapsable) {\n if (\n jobcardItem.type === JobcardItem.TypeEnum.NextMaintenance ||\n jobcardItem.type === JobcardItem.TypeEnum.ProposedMaintenance\n ) {\n if (!jobcardItem.jobcardItemStatus) {\n jobcardItem.jobcardItemStatus = [];\n jobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n }\n\n if (!jobcardItem.checklistInstances) {\n jobcardItem.checklistInstances = [\n { id: null, checklistTemplateId: null },\n ];\n }\n\n jobcardItem.loading = true;\n const params: GetMaintenanceOperationByCouponRequestParams = {\n couponCode: jobcardItem.code,\n marketId: this.workshop.marketId,\n planId: jobcardItem.mpInfo?.planId,\n vin: this.newAppointmentService.appointmentInCreation.vehicle?.vin,\n country: this.workshop.country,\n appointmentId: this.newAppointmentService.appointmentInCreation.id,\n noLoader: true,\n };\n this.maintenanceService\n .getMaintenanceOperationByCoupon(params)\n .subscribe((operations) => {\n if (jobcardItem.id && jobcardItem.operations) {\n // Retrieve all operations, parts and consumables that already exists in the object.\n // If it exists, then let as it is (keeping the ID in this way)\n // Otherwise, add them into the final object\n operations.forEach((ope) => {\n const existingOpe = jobcardItem.operations.find(\n (o) =>\n (o.code && o.code === ope.code) ||\n (o.label && o.label === ope.label)\n );\n if (existingOpe) {\n existingOpe.isKitComplete = ope.isKitComplete;\n existingOpe.kits = ope.kits;\n existingOpe.useKitPart = ope.useKitPart;\n\n if (ope.parts) {\n ope.parts.forEach((part) => {\n const existingPart = existingOpe.parts.find(\n (pa) => pa.part.code === part.part.code\n );\n if (existingPart) {\n existingPart.part.isKit =\n part.part.isKit === undefined ? false : part.part.isKit;\n existingPart.part.kitPart = part.part.kitPart;\n existingPart.selected = true;\n } else {\n if (!existingOpe.parts) {\n existingOpe.parts = [];\n }\n part.selected = false;\n existingOpe.parts.push(part);\n }\n });\n }\n if (ope.consumables) {\n ope.consumables.forEach((cons) => {\n const c = existingOpe.consumables.find(\n (co) =>\n co.consumable.code === cons.consumable.code &&\n co.quantity === cons.quantity\n );\n if (c) {\n c.consumable.partNumber = cons.consumable.partNumber;\n existingOpe.consumables.splice(\n existingOpe.consumables\n .map((c2) => c2.id)\n .indexOf(c.id),\n 1,\n c\n );\n } else {\n if (!existingOpe.consumables) {\n existingOpe.consumables = [];\n }\n cons.selected = false;\n existingOpe.consumables.push(cons);\n }\n });\n }\n } else {\n if (!jobcardItem.operations) {\n jobcardItem.operations = [];\n }\n jobcardItem.operations.push(ope);\n }\n });\n } else {\n jobcardItem.operations = operations;\n }\n\n if (jobcardItem.operations) {\n jobcardItem.operations.forEach((ope) => {\n if (ope.parts) {\n ope.parts.forEach((opePart) => {\n if (!jobcardItem.causalParts) {\n jobcardItem.causalParts = [];\n jobcardItem.causalParts.push(opePart.part);\n } else if (\n jobcardItem.causalParts\n .map((part) => part.code)\n .indexOf(opePart.part?.code) === -1\n ) {\n jobcardItem.causalParts.push(opePart.part);\n }\n });\n }\n });\n }\n jobcardItem.loading = false;\n });\n }\n }\n}\n","\n -1\"\n >\n \n \n Notify technicians\n \n \n \n\n","import { Injectable } from '@angular/core';\nimport {\n Appointment,\n AppointmentStatus,\n Brand,\n CustomerCompany,\n CustomerCompanyUser,\n Jobcard,\n JobcardItem,\n Model,\n Operation,\n PaymentType,\n Vehicle,\n WorkshopUser,\n Appointment as AppointmentEnum,\n ApiResponseDto,\n Workshop,\n JobcardItemCustomerStatus,\n JobcardItemStatus,\n OperationPartLocation,\n ConsumableAssociation,\n} from 'src/app/models/model/models';\nimport {\n DeleteIuFromBasketRequestParams,\n DocumentService,\n SaveIuInBasketRequestParams,\n} from '@api-document';\nimport * as moment from 'moment';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport * as Moment from 'moment';\nimport { IuLinkBasket } from '@models-document';\nimport { AppointmentGridOld } from '../planning/planning-day-range/planning-day-range.component';\nimport { Util } from '../core/util/util';\nimport { JobcardItemCollapsable } from './../shared/activities/activities.component';\nimport { JobcardItemSelectable } from './smart-view/smart-view.component';\n\ninterface AppointmentCreationData {\n /** The start date (without) to use as reception date for the appointment. */\n startDate?: Date;\n /** The start date/time to use as reception date for the appointment. */\n startDateTime?: Date;\n /** The end date to use as delivery date for the appointment. */\n endDate?: Date;\n /** The end date:time to use as delivery date for the appointment. */\n endDateTime?: Date;\n /** The ID of workshop bay to assign to the appointment. */\n workshopBayId?: number;\n /** The ID of the workshop user to assign as tech lead to the appointment. */\n workshopUserId?: string;\n /** If we are coming from the workspace (AG) then we must pre-assign the new activities */\n assignActivities?: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppointmentService {\n /** Edited appointment. */\n appointment: Appointment;\n basedAppointment: Appointment;\n originalReceptionDate: Date;\n totalPrice = 0;\n customerPrice = 0;\n travelPrice = 0;\n appointmentsByVehicle: Appointment[] = [];\n customers: CustomerCompany[] = [];\n vehicles: Vehicle[] = [];\n users: WorkshopUser[] = [];\n user: WorkshopUser;\n maintenances: JobcardItemSelectable[] = [];\n listBrands: Brand[];\n listModels: Model[];\n thdUrl: string;\n creationData: AppointmentCreationData = {};\n appointmentOrigin: Appointment;\n approvedActivities: JobcardItem[] = [];\n requiredExtraUnit: any = {};\n isDisabled = false;\n hasAccessSmartView = true;\n //TODO: Future will change below org name from API service - MY BEST Authorizer Name\n salesOrginatation = ['G024', 'G079', 'G080', 'G419'];\n //assign pending appointment\n assignPendingFlag: boolean;\n assignPendingSortingFlag: boolean;\n removeAllTechnicationSubject: Subject = new Subject();\n isOperationUpdated = false;\n bypassDeactivate = false;\n private appointmentSubject: BehaviorSubject = new BehaviorSubject(\n null\n );\n\n private consumableAssociationSubject: BehaviorSubject<\n ConsumableAssociation[]\n > = new BehaviorSubject([]);\n\n constructor(private documentService: DocumentService) {}\n\n /**\n * Get the number of added jobcard items minus the manually added operations.\n */\n get nbJobcardItems(): number {\n if (\n this.appointment &&\n this.appointment.jobcard &&\n this.appointment.jobcard.jobcardItems\n ) {\n return this.appointment.jobcard.jobcardItems.filter(\n (i) =>\n i.type !== undefined && i.type !== 'free' && i.type !== 'checklist'\n ).length;\n }\n return 0;\n }\n\n setAppointment(newAppointment: Appointment) {\n this.appointment = newAppointment;\n this.basedAppointment = JSON.parse(JSON.stringify(this.appointment));\n this.appointmentSubject.next(this.appointment);\n this.originalReceptionDate = new Date(newAppointment.receptionDate);\n }\n\n isAppointmentInUse(response: ApiResponseDto) {\n this.isDisabled = response.code === '1';\n }\n\n getAppointment(): Appointment {\n return this.appointment;\n }\n\n /**\n * Recalculate the estimated durations of the jobcard and its child items.\n */\n recalculateGlobalDurations(\n jobcard: Jobcard = this.appointment?.jobcard,\n action?: string\n ) {\n if (jobcard) {\n jobcard.estimatedDuration = 0;\n if (jobcard?.jobcardItems) {\n jobcard.jobcardItems.forEach((jobcardItem) => {\n if (\n jobcardItem.type !== JobcardItem.TypeEnum.NextMaintenance &&\n jobcardItem.type !== JobcardItem.TypeEnum.ProposedMaintenance\n ) {\n if (!jobcardItem.deferred && !jobcardItem.deleted) {\n jobcardItem.estimatedDuration = 0;\n jobcardItem.officialTime = 0;\n let estimatedTime = 0;\n\n jobcardItem.operations?.forEach((operation) => {\n if (operation.selected === undefined || operation.selected) {\n if (!isNaN(operation.durationTime)) {\n estimatedTime += operation.durationTime;\n }\n if (!isNaN(operation.officialTime)) {\n jobcardItem.officialTime += operation.officialTime;\n }\n }\n });\n // Check if spell time is higher than duration time set at Operation level\n // If yes, then maintain the estimated time of the activity to the sum of spell time\n // If no, so adjust the spell times to the sum of operations time (give the time to the first spell)\n if (jobcardItem.jobcardItemSpells?.length > 0) {\n if (environment.isIveco) {\n const spellDuration = jobcardItem.jobcardItemSpells\n .map((sp) => sp.estimatedDuration)\n .reduce((t1, t2) => t1 + t2, 0);\n if (estimatedTime > spellDuration) {\n jobcardItem.jobcardItemSpells[0].estimatedDuration +=\n estimatedTime - spellDuration;\n }\n } else {\n jobcardItem.jobcardItemSpells[0].estimatedDuration = estimatedTime;\n }\n }\n\n if (environment.isIveco) {\n jobcardItem.jobcardItemSpells?.forEach((spell) => {\n if (!isNaN(spell.estimatedDuration)) {\n jobcardItem.estimatedDuration += spell.estimatedDuration;\n }\n });\n } else {\n jobcardItem.estimatedDuration = estimatedTime;\n }\n }\n }\n if (\n jobcardItem.estimatedDuration !== undefined &&\n !isNaN(jobcardItem.estimatedDuration)\n ) {\n jobcard.estimatedDuration += jobcardItem.estimatedDuration;\n }\n });\n }\n }\n }\n\n computeTotalPrice(\n paymentTypes: PaymentType[] = null,\n app: Appointment = null\n ): number {\n if (app) {\n this.appointment = { ...app };\n }\n this.customerPrice = 0;\n this.totalPrice = 0;\n this.travelPrice = 0;\n this.appointment?.jobcard?.jobcardItems.forEach((activity) => {\n let activityPrice = 0;\n let customerPercent = 0;\n if (!activity.deferred && !activity.deleted) {\n // FIXME: Comment choisir le bon split ?\n /*\n if (activity.splits && activity.splits.length > 0) {\n customerPercent = activity.splits[0].customerPercent / 100;\n } else { */\n const isInternalActivity =\n paymentTypes &&\n paymentTypes.find((p) => p.id === activity.paymentTypeId)?.type ===\n PaymentType.TypeEnum.Internal;\n if (\n activity.warrantyCoverage ||\n isInternalActivity ||\n activity.payType === 'WTY'\n ) {\n customerPercent = 0;\n } else {\n customerPercent = 1;\n }\n\n if (activity.operations) {\n activity.operations.forEach((operation) => {\n activityPrice += !isNaN(operation.price) ? operation.price : 0;\n if (operation.parts) {\n operation.parts.forEach((part) => {\n activityPrice += !isNaN(part.price) ? part.price : 0;\n });\n }\n });\n }\n if (activity.extraOperations) {\n activity.extraOperations.forEach((extraOperation) => {\n activityPrice += !isNaN(extraOperation.amount)\n ? extraOperation.amount\n : 0;\n });\n }\n }\n if (activity.isCustomerAgreed) {\n this.totalPrice += activityPrice;\n this.customerPrice += activityPrice * customerPercent;\n }\n });\n\n // big travels (AG)\n if (this.appointment.jobcard.jobcardTravels) {\n this.appointment.jobcard.jobcardTravels\n .filter((travel) => travel.deleted !== true)\n .forEach((travel) => {\n if (\n (travel?.paymentType?.type !== 'warranty' &&\n travel?.paymentType?.type !== 'internal') ||\n travel?.paymentType?.type === undefined\n ) {\n this.travelPrice += !isNaN(travel.price) ? travel.price : 0;\n }\n });\n }\n\n this.customerPrice += this.travelPrice;\n\n return this.customerPrice;\n }\n\n computePrice(appointment: Appointment) {\n this.customerPrice = 0;\n this.totalPrice = 0;\n appointment.jobcard.jobcardItems.forEach((activity) => {\n let activityPrice = 0;\n let customerPercent = 0;\n if (!activity.deferred && !activity.deleted) {\n // FIXME: Comment choisir le bon split ?\n if (activity.splits && activity.splits.length > 0) {\n customerPercent = activity.splits[0].customerPercent / 100;\n } else {\n if (activity.warrantyCoverage || activity.payType === 'WTY') {\n customerPercent = 0;\n } else {\n customerPercent = 1;\n }\n }\n\n if (activity.operations) {\n activity.operations.forEach((operation) => {\n activityPrice += !isNaN(operation.price) ? operation.price : 0;\n if (operation.parts) {\n operation.parts.forEach((part) => {\n activityPrice += !isNaN(part.price) ? part.price : 0;\n });\n }\n });\n }\n\n if (activity.extraOperations) {\n activity.extraOperations.forEach((extraOperation) => {\n activityPrice += !isNaN(extraOperation.amount)\n ? extraOperation.amount\n : 0;\n });\n }\n }\n this.totalPrice += activityPrice;\n this.customerPrice += activityPrice * customerPercent;\n });\n\n return this.customerPrice;\n }\n\n fullOperationPrice(activity: JobcardItem) {\n let totalPrice = 0;\n if (activity.operations) {\n activity.operations.forEach((operation) => {\n totalPrice += !isNaN(operation.price) ? operation.price : 0;\n if (operation.parts) {\n operation.parts.forEach((part) => {\n totalPrice += !isNaN(part.price) ? part.price : 0;\n });\n }\n });\n }\n\n if (activity.extraOperations) {\n activity.extraOperations.forEach((extraOperation) => {\n totalPrice += !isNaN(extraOperation.amount) ? extraOperation.amount : 0;\n });\n }\n\n return totalPrice;\n }\n\n getAppointmentObservable(): Observable {\n return this.appointmentSubject.asObservable();\n }\n refreshJobcardItems(paymentTypes: PaymentType[], workshop: Workshop) {\n this.appointment.jobcard?.jobcardItems?.forEach((jobcardItem) => {\n paymentTypes.forEach((paymentType) => {\n if (paymentType.id === jobcardItem.paymentTypeId) {\n jobcardItem.paymentType = paymentType;\n\n paymentType.paymentSubTypes.forEach((subType) => {\n if (subType.id === jobcardItem.paymentSubTypeId) {\n jobcardItem.paymentSubType = subType;\n if (\n !environment.isIveco &&\n subType.paymentSubSubTypes?.length > 0\n ) {\n const paymentSubtype2 = subType.paymentSubSubTypes.find(\n (subsubtype) =>\n subsubtype.id === jobcardItem.paymentSubType2Id\n );\n const paymentSubtype3 = subType.paymentSubSubTypes.find(\n (subsubtype) =>\n subsubtype.id === jobcardItem.paymentSubType3Id\n );\n if (paymentSubtype2) {\n jobcardItem.paymentSubType2 = paymentSubtype2;\n } else {\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSub2Code = null;\n }\n if (paymentSubtype3) {\n jobcardItem.paymentSubType3 = paymentSubtype3;\n } else {\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSub3Code = null;\n }\n }\n }\n });\n }\n });\n\n this.refreshParts(jobcardItem);\n });\n this.arePartsAvailable(this.appointment.jobcard.jobcardItems, workshop);\n }\n\n arePartsAvailable(\n jobcardItems: JobcardItemCollapsable[],\n workshop: Workshop\n ): JobcardItemCollapsable[] {\n jobcardItems?.forEach((item) => {\n item.isPartAvailable = true;\n item.operations?.forEach((operation) => {\n operation.parts?.forEach((opePart) => {\n if (opePart.quantityInStock !== undefined) {\n item.isPartAvailable =\n item.isPartAvailable &&\n opePart.quantityInStock !== undefined &&\n opePart.quantityInStock >= opePart.quantity;\n }\n\n let quantityOnOtherWorkshop = 0;\n opePart.jobcardItemOperationPartLocationList?.forEach(\n (location: OperationPartLocation) => {\n if (\n location?.locationId &&\n workshop.sapCode.indexOf(location.locationId.toString()) > -1 &&\n location.quantityInStock >= opePart.quantity\n ) {\n opePart.isAvailableAtHomeLocation =\n location.quantityInStock >= opePart.quantity;\n } else {\n quantityOnOtherWorkshop += location.quantityInStock;\n }\n }\n );\n opePart.isAvailableAtOtherLocation =\n !opePart.isAvailableAtHomeLocation && quantityOnOtherWorkshop > 0;\n opePart.isNotAvailable =\n !opePart.isAvailableAtOtherLocation &&\n !opePart.isAvailableAtHomeLocation;\n\n if (!opePart.quantityInStock && opePart.isNotAvailable === true) {\n item.isPartAvailable = false;\n }\n });\n });\n });\n\n return jobcardItems;\n }\n\n setItemsWeight(items: JobcardItem[]) {\n return items.map((item, index) => {\n item.weight = index + 1;\n\n if (item.operations) {\n item.operations = item.operations.map(\n (operation: Operation, i: number) => {\n operation.weight = i + 1;\n return operation;\n }\n );\n }\n\n return item;\n });\n }\n\n refreshParts(jobcardItem: JobcardItem) {\n const item: JobcardItemCollapsable = jobcardItem;\n item.causalParts = [];\n item.inspectionChecklist = [];\n if (item.operations) {\n item.operations.forEach((operation) => {\n if (operation.parts) {\n item.causalParts.push(...operation.parts.map((part) => part.part));\n }\n });\n }\n if (item.checklistInstances) {\n item.checklistInstances.forEach((checklistInstance) => {\n item.inspectionChecklist.push(checklistInstance);\n });\n }\n if (item.causalPartCode) {\n jobcardItem.causalPartId = -1;\n }\n jobcardItem = item;\n }\n\n setNewStatus(\n status: AppointmentStatus.StatusEnum,\n customerCompanyUser: CustomerCompanyUser\n ) {\n this.appointment.status = {\n id: null,\n workshopUser: this.user,\n time: moment(new Date()).toISOString(),\n status,\n customerCompanyUser,\n };\n }\n\n setCreationData(newCreationData: AppointmentCreationData) {\n this.creationData = newCreationData;\n }\n\n getCreationData(): AppointmentCreationData {\n return this.creationData;\n }\n\n clearCreationData() {\n this.creationData = {};\n }\n\n setAppointmentOrigin(newAppointmentOrigin: Appointment) {\n this.appointmentOrigin = newAppointmentOrigin;\n }\n\n getAppointmentOrigin(): Appointment {\n return this.appointmentOrigin;\n }\n\n clearAppointmentOrigin() {\n this.appointmentOrigin = undefined;\n }\n\n getExtraUnitInfoMessage(\n appointment: Appointment,\n requiredUnit: string = null\n ): string {\n let units = [\n {\n id: AppointmentEnum.ManuallyUnitsEnum.EngineHours,\n name: $localize`Engine hours`,\n },\n /*{\n id: AppointmentEnum.ManuallyUnitsEnum.ThreshingHours,\n name: 'Threshing hours',\n },\n { id: AppointmentEnum.ManuallyUnitsEnum.Mileage, name: 'KM/Mileage' },*/\n ];\n\n switch (requiredUnit) {\n case 'bale':\n units.push({\n id: AppointmentEnum.ManuallyUnitsEnum.NumberOfBales,\n name: $localize`No of Bales`,\n });\n break;\n case 'acre':\n units.push({\n id: AppointmentEnum.ManuallyUnitsEnum.NumberOfAcres,\n name: $localize`No of Acres`,\n });\n break;\n }\n\n //TODO : Remove below condition if CV also support to Bales/Acres/Threshing\n if (environment.isIveco) {\n units = [\n {\n id: AppointmentEnum.ManuallyUnitsEnum.EngineHours,\n name: $localize`Engine hours`,\n },\n {\n id: AppointmentEnum.ManuallyUnitsEnum.Mileage,\n name: $localize`KM/Mileage`,\n },\n ];\n }\n const missedUnites: any = [];\n\n units.forEach((item) => {\n if (!appointment[item.id]) {\n missedUnites.push(item.name);\n }\n });\n\n if (missedUnites.length) {\n let message = '';\n if (missedUnites.includes('Engine hours')) {\n message += $localize`Engine hours `;\n const eIndex = missedUnites.findIndex(\n (item: string) => item === 'Engine hours'\n );\n if (eIndex > -1) {\n missedUnites.splice(eIndex, 1);\n }\n }\n if ((message && missedUnites.length) || missedUnites.length > 1) {\n message += message?.length ? '/ ' : ' ';\n message += missedUnites.join('/');\n } else if (missedUnites.length < 2) {\n message += missedUnites.join(' ');\n }\n return Util.stringFormat(\n $localize`Please ensure the [0] are up-to-date, so that the Maintenance proposed to the customer is accurate. Please go back to the Customer tab to update this information.`,\n message\n );\n } else {\n return '';\n }\n }\n\n //To check current activity sales Organization and return default Authorizer Name\n getDefaultAuthorizerName(\n salesOrganizationId: number,\n workshop: Workshop\n ): JobcardItem.AuthorizerNameEnum | null {\n if (salesOrganizationId) {\n const saleOrgDetails = workshop?.workshopSalesOrganizations.find(\n (org) =>\n org.id === this.appointment?.salesOrganizationId &&\n this.salesOrginatation.some(\n (item) => item.toLowerCase() === org.salesCode.toLowerCase()\n )\n );\n if (saleOrgDetails) {\n return JobcardItem.AuthorizerNameEnum.NE;\n }\n }\n return null;\n }\n\n // Check for duplicate or intermediate jobcarditem customer status\n retainLatestStatus() {\n this.appointment?.jobcard?.jobcardItems?.forEach((ji) => {\n if (ji?.jobcardItemCustomerStatus?.length > 1) {\n const existingHistory: JobcardItemCustomerStatus[] = ji?.jobcardItemCustomerStatus.filter(\n (jics) => jics?.id\n );\n const newHistory: JobcardItemCustomerStatus[] = ji?.jobcardItemCustomerStatus.filter(\n (jics) => !jics?.id\n );\n if (newHistory?.length > 0) {\n ji.jobcardItemCustomerStatus = existingHistory;\n ji.jobcardItemCustomerStatus.push(newHistory[newHistory.length - 1]);\n }\n }\n });\n }\n getCurrentItemStatus(jobcardItem: JobcardItem): JobcardItemStatus {\n return jobcardItem?.jobcardItemStatus?.length > 1\n ? jobcardItem.jobcardItemStatus.find((s) => !s.deleted)\n : jobcardItem.jobcardItemStatus?.[0];\n }\n\n /**\n *\n * @param ucrStatus To be check etim machine connected or not\n * @returns return the toaster message based on ucr-status\n */\n getSmartViewConnectedMachineToaster(ucrStatus: number): string | null {\n let message = null;\n switch (ucrStatus) {\n case 1:\n message = $localize`Connected features are unavailable: Subscription is expired.`;\n break;\n case 2:\n message = $localize`Connected features are unavailable: Telematics data cannot be retrieved remotely.`;\n break;\n case 3:\n message = $localize`Connected features are unavailable: Subcription is not activated.`;\n break;\n case 4:\n message = $localize`Connected features are unavailable: Maintenance Plan not found (unavailable, or conflicted configurations).`;\n break;\n default:\n break;\n }\n return message;\n }\n\n clearBookingSelection() {\n const appoinment: AppointmentGridOld = this.appointment;\n appoinment?.jobcard?.jobcardItems?.map((jc: JobcardItem) => {\n jc.selected = false;\n return jc.jobcardItemSpells.forEach((element) => {\n element.selected = false;\n });\n });\n\n if (appoinment?.dragOrigin) {\n delete appoinment.dragOrigin;\n }\n if (appoinment.jobcardItemSpell) {\n delete appoinment.jobcardItemSpell;\n }\n if (appoinment.technician) {\n delete appoinment.technician;\n }\n if (appoinment.displayRemoveAssignment) {\n appoinment.displayRemoveAssignment = false;\n }\n this.setAppointment(appoinment);\n }\n\n getLastClockedOutDateTime(appointment: Appointment): string {\n let lastClockedOut: Moment.Moment = null;\n let currentClockingOut: Moment.Moment;\n appointment?.jobcard?.jobcardItems?.forEach((jobcardItem) => {\n jobcardItem.jobcardItemStatus?.forEach((status) => {\n if (!status.deleted && status.time && status.duration) {\n currentClockingOut = moment(status.time).add(\n status.duration,\n 'seconds'\n );\n if (\n lastClockedOut === null ||\n currentClockingOut.isAfter(lastClockedOut)\n ) {\n lastClockedOut = currentClockingOut.clone();\n }\n }\n });\n });\n if (lastClockedOut === null) {\n return 'no clocking';\n } else {\n return lastClockedOut.format('MMMM Do YYYY, h:mm a');\n }\n }\n\n getDeliveryDate(\n receptionDate: any,\n jobcard: Jobcard,\n periods: any,\n workspaceTimeService: any\n ): Date {\n let deliveryDate: Date;\n let maxDate = moment(receptionDate);\n jobcard?.jobcardItems?.forEach((item) => {\n if (item.jobcardItemSpells?.length > 0) {\n item.jobcardItemSpells.forEach((spell) => {\n if (spell?.technicians?.length > 0) {\n spell.technicians.forEach((tech) => {\n const date = workspaceTimeService.setEndDateOnWeek(\n tech.startDate,\n tech.estimatedDuration,\n periods\n );\n maxDate =\n date && moment(date).isAfter(moment(maxDate), 'minutes')\n ? moment(date)\n : maxDate;\n });\n } else {\n const date = workspaceTimeService.setEndDateOnWeek(\n spell.startDate,\n spell.estimatedDuration,\n periods\n );\n maxDate =\n date && moment(date).isAfter(moment(maxDate), 'minutes')\n ? moment(date)\n : maxDate;\n }\n });\n } else {\n const date = workspaceTimeService.setEndDateOnWeek(\n item.startDate,\n item.estimatedDuration,\n periods\n );\n maxDate =\n date && moment(date).isAfter(moment(maxDate), 'minutes')\n ? moment(date)\n : maxDate;\n }\n });\n\n if (moment(maxDate).isSame(moment(deliveryDate), 'minutes')) {\n deliveryDate = moment(maxDate).toDate();\n deliveryDate.setHours((maxDate.hours() + 1) % 24, 0, 0, 0);\n } else {\n deliveryDate = moment(maxDate).toDate();\n }\n\n return deliveryDate;\n }\n\n setConsumableAssociation(data: ConsumableAssociation[] = []) {\n this.consumableAssociationSubject.next(data);\n }\n\n getConsumableAssociation(): Observable {\n return this.consumableAssociationSubject.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { Appointment, AppointmentStatus, WorkshopUser } from 'src/app/models/model/models';\r\nimport { UserService } from '../core/user/user.service';\r\nimport { Util } from '../core/util/util';\r\nimport { CreateNotificationRequestParams, NotificationService, WorkshopUserDto } from 'src/api/djc-booking-service';\r\nimport { UserAdminService } from '../core/user/user-admin.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreakdownNotifyService {\r\n user: WorkshopUserDto;\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private userService: UserAdminService\r\n ) {}\r\n\r\n sendBreakdownNotification(appointment: Appointment) {\r\n if (\r\n appointment.status.status ===\r\n AppointmentStatus.StatusEnum.AppointmentPrepared ||\r\n appointment.status.status === AppointmentStatus.StatusEnum.Draft\r\n ) {\r\n if (\r\n appointment?.jobcard?.jobcardTravels === undefined ||\r\n appointment?.jobcard?.jobcardTravels.length === 0\r\n ) {\r\n this.constructNotification(appointment);\r\n } else {\r\n let validRecords = false;\r\n if (appointment?.jobcard?.jobcardTravels.length > 0) {\r\n appointment?.jobcard?.jobcardTravels.forEach((travel, index) => {\r\n if (!travel.deleted) {\r\n validRecords = true;\r\n }\r\n if (index === appointment?.jobcard?.jobcardTravels.length - 1) {\r\n if (!validRecords) {\r\n this.constructNotification(appointment);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private constructNotification(appointment: Appointment) {\r\n if (!this.user) {\r\n this.userService.getUser().subscribe((user) => {\r\n this.user = user;\r\n this.constructNotification(appointment);\r\n });\r\n const notifyParams: CreateNotificationRequestParams = {\r\n workshopId: this.user.workshopId,\r\n authorization: this.userService.accessToken,\r\n notificationDto: {\r\n id: -1,\r\n sender: this.user,\r\n type: 'BREAKDOWN',\r\n appointment: appointment.id,\r\n title: Util.stringFormat(\r\n $localize`Appointment [0] Vehicle under Breakdown`,\r\n appointment.id\r\n ),\r\n body: appointment?.repairAddress\r\n ? $localize`A vehicle is under breakdown at this address: ` +\r\n appointment?.repairAddress\r\n : '',\r\n },\r\n profile: 'TECH',\r\n noLoader: false,\r\n };\r\n this.notificationService.createNotification(notifyParams).subscribe();\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { CustomerCompanyUser } from 'src/app/models/model/models';\nimport { AppointmentService } from '../appointment.service';\nimport { NewAppointmentService } from '../new-appointment.service';\nimport { CustomerCompanyUserDto } from 'src/api/djc-admin-service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { CustomerCompanyUserService } from 'src/api/djc-booking-service/api/customerCompanyUser.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerFormService {\n customerUserList: CustomerCompanyUserDto[];\n isTempVehicleRemoved = false;\n constructor(\n private appointmentService: AppointmentService,\n private customerCompanyUserService: CustomerCompanyUserService,\n private newAppointmentService: NewAppointmentService,\n private userService: UserAdminService\n ) {}\n\n getUsersListByCustomerId() {\n this.userService.getUser().subscribe(user => {\n if (this.newAppointmentService.appointmentInCreation?.customerCompany?.id > -1) {\n this.customerCompanyUserService\n .getCustomerCompanyUsers({\n workshopId: user.workshopId,\n customerId: this.newAppointmentService.appointmentInCreation?.customerCompany?.id,\n authorization: this.userService.accessToken,\n })\n .subscribe((users) => {\n this.customerUserList = users;\n });\n }\n });\n }\n\n updateUserlist() {\n if (this.newAppointmentService.appointmentInCreation.customerCompany?.id) {\n if (this.newAppointmentService.appointmentInCreation.vehicle?.customerCompanyUser) {\n this.newAppointmentService.appointmentInCreation.status.customerCompanyUser = this.newAppointmentService.appointmentInCreation.vehicle.customerCompanyUser;\n } else if (\n this.newAppointmentService.appointmentInCreation.customerCompany.users?.length === 1\n ) {\n this.newAppointmentService.appointmentInCreation.status.customerCompanyUser = this.newAppointmentService.appointmentInCreation.customerCompany.users[0];\n }\n } else {\n this.newAppointmentService.appointmentInCreation.status.customerCompanyUser = {\n id: -1,\n };\n }\n }\n\n removeTempVehicle(isRemoved: boolean) {\n this.isTempVehicleRemoved = isRemoved;\n }\n\n checkTempVehicle(): boolean {\n return this.isTempVehicleRemoved;\n }\n}\n","import { Component, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { SmartViewService } from '@api-smartview';\nimport { JobcardItem, Vehicle } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { Util } from 'src/app/core/util/util';\nimport {\n SortableDirective,\n SortEvent,\n} from 'src/app/shared/sortable/sortable.directive';\nimport { environment } from 'src/environments/environment';\nimport { AppointmentService } from '../../appointment.service';\nimport { JobcardItemSelectable } from '../../smart-view/smart-view.component';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { AppointmentsService, GetVehiclesRequestParams, JobcardItemShortDto, RetrieveDeferredVehiclesActivitiesRequestParams, VehicleService, WorkshopDto } from 'src/api/djc-booking-service';\nimport { ToastrService } from 'ngx-toastr';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { NewAppointmentService } from '../../new-appointment.service';\ninterface VehicleItem extends Vehicle {\n lastVisitDate?: Date;\n alerts?: string[];\n pips?: string[];\n faultCodes?: string[];\n maintenance?: string[];\n deferred?: string[];\n}\n\n@Component({\n selector: 'jc-search-vehicle-modal',\n templateUrl: './search-vehicle-modal.component.html',\n styleUrls: ['./search-vehicle-modal.component.scss'],\n})\nexport class SearchVehicleModalComponent implements OnInit {\n @ViewChildren(SortableDirective) headers: QueryList;\n customerId: number;\n workshop: WorkshopDto;\n vehicles: VehicleItem[] = [];\n loading = true;\n environment = environment;\n pips: JobcardItemSelectable[] = [];\n faultCodes: JobcardItemSelectable[] = [];\n\n constructor(\n public activeModal: NgbActiveModal,\n private vehicleService: VehicleService,\n private apiAppointmentService: AppointmentsService,\n private smartViewService: SmartViewService,\n private workshopService: WorkshopAdminService,\n private userService: UserService,\n public appointmentService: NewAppointmentService,\n private toastrService: ToastrService\n ) {}\n\n ngOnInit(): void {\n this.loading = true;\n this.userService.getUser().subscribe((user) => {\n const params: GetVehiclesRequestParams = {\n workshopId: user.workshopId,\n isAdmin: false,\n authorization: this.userService.accessToken,\n customerId: this.customerId,\n view: 'searchVehicleModal',\n };\n this.vehicleService\n .getVehicles(params)\n .pipe(catchError(() => of([])))\n .subscribe(\n (vehicles: VehicleItem[]) => {\n if (vehicles?.length > 0) {\n vehicles.forEach((vehicle) => {\n if (vehicle.appointments?.length > 0) {\n vehicle.appointments.sort((a, b) =>\n moment(a.receptionDate).isBefore(b.receptionDate) ? 1 : -1\n );\n vehicle.lastVisitDate = moment(\n vehicle.appointments[0].receptionDate\n ).toDate();\n }\n });\n this.vehicles = vehicles;\n this.onSort({\n column: 'vin',\n direction: 'asc',\n });\n this.loading = false;\n } else {\n this.vehicles = [];\n this.loading = false;\n }\n },\n () => {\n this.vehicles = [];\n this.loading = false;\n }\n );\n })\n }\n\n onSort(sortEvent: SortEvent) {\n if (this.headers) {\n this.headers.forEach((header) => {\n if (header.jcSortable !== sortEvent.column) {\n header.direction = '';\n }\n });\n Util.sortTable(this.vehicles, sortEvent);\n }\n }\n\n getSmartViewDetails(vehicle: VehicleItem) {\n //Retrieve Alerts\n vehicle.alerts = [];\n this.smartViewService\n .getAlertList({\n vin: vehicle.vin,\n })\n .subscribe((alerts) => {\n alerts?.forEach((alert) => {\n vehicle.alerts.push(alert?.name);\n });\n });\n\n //Retrieve Pips\n this.workshopService.getWorkshop().subscribe((workshop) => {\n this.workshop = workshop;\n vehicle.pips = [];\n this.pips = [];\n this.smartViewService\n .getPIPList({\n vin: vehicle.vin,\n marketId: this.workshop.marketId,\n })\n .subscribe((pips: JobcardItem[]) => {\n pips?.forEach((pip) => {\n if (\n this.pips\n .map((elt) => elt.code)\n .find((code) => code === pip.code) === undefined\n ) {\n const selectedPip: JobcardItemSelectable = pip;\n this.pips.push(selectedPip);\n }\n });\n this.pips?.forEach((pip) => {\n vehicle.pips.push(pip?.name);\n });\n });\n\n //Retrieve Maintenance\n vehicle.maintenance = [];\n this.smartViewService\n .getMaintenanceList({\n vin: vehicle.vin,\n marketId: this.workshop.marketId,\n country: this.workshop.country,\n })\n .subscribe((maintenances) => {\n if (maintenances) {\n //Filter only selected coupons\n /*let selectedMaintenances: JobcardItemSelectable[] = [];\n // detailed coupons will contain the coupons overdue or that need to be done soon.\n const soonCoupons: JobcardItemSelectable[] = [];\n const overdueCoupons: JobcardItemSelectable[] = [];\n const otherCoupons: JobcardItemSelectable[] = [];\n const nextCoupons = maintenances.filter(\n (elt) => elt.type === JobcardItem.TypeEnum.NextMaintenance\n );\n const proposedCoupons = maintenances.filter(\n (elt) => elt.type === JobcardItem.TypeEnum.ProposedMaintenance\n );\n\n // Initialize the lists of coupons by type, and select them if recommanded by eTim\n if (proposedCoupons) {\n proposedCoupons.forEach((coupon) => {\n if (coupon.mpInfo.couponOver) {\n coupon.selected = coupon.mpInfo.couponSelected;\n overdueCoupons.push(coupon);\n } else if (coupon.mpInfo.couponSoon) {\n coupon.selected = coupon.mpInfo.couponSelected;\n // Push the soon coupon to display them after the overdue\n soonCoupons.push(coupon);\n } else {\n coupon.selected = coupon.mpInfo.couponSelected;\n if (coupon.selected) {\n overdueCoupons.push(coupon);\n } else {\n otherCoupons.push(coupon);\n }\n }\n });\n\n const finalCoupons: JobcardItemSelectable[] = [];\n finalCoupons.push(...overdueCoupons);\n finalCoupons.push(...soonCoupons);\n finalCoupons.push(...otherCoupons);\n\n nextCoupons.forEach((next) => {\n const existingCoupon = finalCoupons.find(\n (elt) => elt.code === next.code\n );\n if (existingCoupon) {\n finalCoupons[\n finalCoupons.indexOf(existingCoupon)\n ].additionalDescription = next.description;\n finalCoupons[\n finalCoupons.indexOf(existingCoupon)\n ].priority = 4;\n } else {\n finalCoupons.push(next);\n }\n });\n selectedMaintenances = [...finalCoupons];\n }\n selectedMaintenances?.forEach((maintenance) => {\n if (maintenance.selected) {\n vehicle.maintenance.push(\n maintenance.code + ' - ' + maintenance.name\n );\n }\n });*/\n // To display all coupons - unique code\n const selectedMaintenances: JobcardItemSelectable[] = [];\n const nextCoupons = maintenances.filter(\n (elt) => elt.type === JobcardItem.TypeEnum.NextMaintenance\n );\n const proposedCoupons = maintenances.filter(\n (elt) => elt.type === JobcardItem.TypeEnum.ProposedMaintenance\n );\n proposedCoupons.forEach((proposed) => {\n selectedMaintenances.push(proposed);\n });\n nextCoupons.forEach((next) => {\n const existingCoupon = selectedMaintenances.find(\n (elt) => elt.code === next.code\n );\n if (!existingCoupon) {\n selectedMaintenances.push(next);\n }\n });\n selectedMaintenances?.forEach((maintenance) => {\n vehicle.maintenance.push(\n maintenance.code + ' - ' + maintenance.name\n );\n });\n }\n },\n (error: HttpErrorResponse) => {\n let message: string;\n if (error.status === 417) {\n message = Util.stringFormat($localize`Please initialize the vehicle on eTIM to load the maintenance plans in DJC.`);\n this.toastrService.error(message);\n }\n });\n });\n\n //Retrieve fault codes\n this.faultCodes = [];\n vehicle.faultCodes = [];\n this.smartViewService\n .getFaultCodetList({\n vin: vehicle.vin,\n })\n .subscribe((faultCodes) => {\n faultCodes?.forEach((fc) => {\n if (\n this.faultCodes\n .map((elt) => elt.code)\n .find((code) => code === fc.code) === undefined\n ) {\n const selectedFC: JobcardItemSelectable = fc;\n this.faultCodes.push(selectedFC);\n }\n });\n this.faultCodes?.forEach((fc) => {\n vehicle.faultCodes.push(fc.code);\n });\n });\n\n //Retrieve deferred activities\n vehicle.deferred = [];\n this.userService.getUser().subscribe((user) => {\n const params: RetrieveDeferredVehiclesActivitiesRequestParams = {\n workshopId: user.workshopId,\n vehicleId: vehicle.id,\n authorization: this.userService.accessToken,\n };\n this.apiAppointmentService\n .retrieveDeferredVehiclesActivities(params)\n .subscribe((JobcardItemShort) => {\n const deferredActivities: JobcardItemShortDto[] = JobcardItemShort.filter(\n (item: JobcardItemShortDto) => item.deferred?.valueOf() === true\n );\n deferredActivities?.forEach((activity) => {\n vehicle.deferred.push(activity.name);\n });\n });\n });\n }\n}\n","
\n
\n
\n Vehicles associated with this Customer\n
\n
\n Machines associated with this Customer\n
\n \n ×\n \n
\n
\n \n
\n Loading vehicles...\n
\n
\n Loading machines...\n
\n
\n \n
\n No vehicle found for this customer.\n
\n
\n No machine found for this customer.\n
\n
\n 0\"\n >\n \n \n Serial No.\n \n Stock No.\n \n Brand\n Model\n \n Plate No.\n \n \n Plate No.\n \n \n Last Visit Date\n \n Smartview Information\n \n \n \n \n \n \n {{ vehicle.vin }}\n {{ vehicle.stockNumber }}\n {{ vehicle.brand?.name }}\n {{ vehicle.model?.name }}\n \n {{ vehicle.plate }}\n \n {{ vehicle.plate }}\n {{ vehicle.lastVisitDate | date }}\n \n \n Alert\n 0\">\n
\n \n {{ alertName }}\n
\n
\n
\n
\n \n Product improvement plan\n 0\">\n
\n \n {{ pipName }}\n
\n
\n
\n
\n \n Maintenance\n 0\">\n
\n \n {{ name }}\n
\n
\n
\n
\n \n Active Fault codes\n 0\">\n
\n \n {{ code }}\n
\n
\n
\n
\n \n Deferred Activities\n 0\">\n
\n \n {{ deferredName }}\n
\n
\n
\n
\n \n \n \n \n \n
\n \n 0,\n 'text-muted': !vehicle?.alerts || vehicle?.alerts.length === 0\n }\"\n >\n \n \n \n \n 0,\n 'text-muted': !vehicle?.pips || vehicle?.pips.length === 0\n }\"\n >\n \n \n \n \n 0,\n 'text-muted':\n !vehicle?.faultCodes || vehicle?.faultCodes.length === 0\n }\"\n >\n \n \n \n \n 0,\n 'text-muted':\n !vehicle?.maintenance || vehicle?.maintenance.length === 0\n }\"\n >\n \n \n \n \n 0,\n 'text-muted':\n !vehicle?.deferred || vehicle?.deferred.length === 0\n }\"\n >\n \n \n \n
\n \n \n \n \n \n \n Vehicle Details\n \n Machine Details\n \n \n \n \n Select Vehicle\n Select Machine\n \n \n \n \n \n
\n
\n \n Cancel\n \n
\n
\n","import { Component, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-email-confirm-modal',\n templateUrl: './email-confirm-modal.component.html',\n styleUrls: ['./email-confirm-modal.component.scss'],\n})\nexport class EmailConfirmModalComponent {\n @Input() onlyFinalEmailType = false;\n emailType = true;\n\n constructor(public activeModal: NgbActiveModal) {}\n}\n","
\n
\n

Please select your choice of Email below

\n \n ×\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n Cancel\n \n \n Proceed\n \n
\n
\n
\n
\n

Confirmation

\n \n ×\n \n
\n
\n
\n Are you sure you want to send the Confirmation email?\n \n
\n
\n
\n \n No\n \n \n Yes\n \n
\n
\n","import { Injectable } from '@angular/core';\nimport {\n AppointmentStatus,\n Brand,\n CustomerCompany,\n CustomerCompanyUser,\n Jobcard,\n JobcardItem,\n Model,\n Operation,\n PaymentType,\n Vehicle,\n WorkshopUser,\n ApiResponseDto,\n Workshop,\n JobcardItemCustomerStatus,\n JobcardItemStatus,\n OperationPartLocation,\n ConsumableAssociation,\n Appointment,\n OpeningDayPeriods,\n} from 'src/app/models/model/models';\nimport {\n DeleteIuFromBasketRequestParams,\n DocumentService,\n SaveIuInBasketRequestParams,\n} from '@api-document';\nimport * as moment from 'moment';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport * as Moment from 'moment';\nimport { IuLinkBasket } from '@models-document';\nimport { AppointmentGrid } from '../planning/planning-day-range/planning-day-range.component';\nimport { Util } from '../core/util/util';\nimport { JobcardItemCollapsable } from '../shared/activities/activities.component';\nimport { JobcardItemSelectable } from './smart-view/smart-view.component';\nimport { AppointmentShortDto } from 'src/api/djc-booking-service/model/appointmentShortDto';\nimport { CustomerAppointmentDto } from 'src/api/djc-booking-service/model/customerAppointmentDto';\nimport { JobcardItemStatusDto, PaymentTypeDto, WorkshopDto, WorkshopUserDto } from 'src/api/djc-admin-service';\n import { JobcardItemOperationDto, JobcardItemOperationPartLocationDto } from 'src/api/djc-booking-service';\nimport { AppointmentDto, JobcardDto } from 'src/api/djc-workitem-service';\nimport { JobcardItemCollapsableNew} from '../shared/new-activities/new-activities.component';\nimport { JobcardItemDto } from '../model/jobcardItemDtoFE';\nimport { NgTruncatePipeModule } from 'angular-pipes';\ninterface AppointmentCreationData {\n /** The start date (without) to use as reception date for the appointment. */\n startDate?: Date;\n /** The start date/time to use as reception date for the appointment. */\n startDateTime?: Date;\n /** The end date to use as delivery date for the appointment. */\n endDate?: Date;\n /** The end date:time to use as delivery date for the appointment. */\n endDateTime?: Date;\n /** The ID of workshop bay to assign to the appointment. */\n workshopBayId?: number;\n /** The ID of the workshop user to assign as tech lead to the appointment. */\n workshopUserId?: string;\n /** If we are coming from the workspace (AG) then we must pre-assign the new activities */\n assignActivities?: boolean;\n}\n\nexport interface AppointmentInCreation {\n id: number;\n workshopId?: number;\n workshopBayId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n repairAddress?: string;\n types?: Array;\n mileage?: number;\n engineHours?: number;\n failureEngineHours?: number;\n receptionDate?: string;\n deliveryDate?: string;\n repairCompletionDate?: string;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n plannedDeliveryDate?: string;\n dmsCreationDate?: string;\n // jobcard?: Jobcard;\n jobcard?: any;\n // customerCompany?: CustomerCompany;\n customerCompany?: any;\n // vehicle?: Vehicle;\n vehicle?: any;\n // vehicleCourtesy?: VehicleCourtesy;\n vehicleCourtesy?: any;\n // status?: AppointmentStatus;\n status?: any;\n // unitStatus?: AppointmentUnitStatus;\n unitStatus?: any;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n // checklistInstances?: Array;\n checklistInstances?: Array;\n // checklistDamages?: Array;\n checklistDamages?: Array;\n salesOrganizationId?: number;\n // driver?: CustomerCompanyUser;\n driver?: any;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n // onHoldReason?: OnHoldReason;\n onHoldReason?: any;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n orderTypeHeaderCode?: number;\n // vehicleCourtesyBookingDto?: VehicleCourtesyBooking;\n vehicleCourtesyBookingDto?: any;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n ManuallyUnits?: AppointmentInCreation.ManuallyUnitsEnum;\n // travels?: Array;\n travels?: Array;\n // currentAppointmentstatus?: AppointmentStatus;\n currentAppointmentstatus?: any;\n // cpdAlternateContact?: CpdContactDetails;\n cpdAlternateContact?: any;\n // cpdContactDetails?: CpdContactDetails;\n cpdContactDetails?: any;\n // epartsParts?: Array;\n epartsParts?: Array;\n dmsLogError?: boolean;\n appointmentPriority?: string;\n // priorityType?: PriorityType;\n priorityType?: any;\n // currentStatus?: Appointment.CurrentStatusEnum;\n currentStatus?: AppointmentInCreation.CurrentStatusEnum;\n // iuDocuments?: Array;\n iuDocuments?: Array;\n customerPaymentMode?: string;\n version?: number;\n openedBy?: string;\n openedById?: string;\n src?: AppointmentInCreation.SrcEnum;\n}\nexport namespace AppointmentInCreation {\n export type SrcEnum = 'web' | 'mobile';\n export const SrcEnum = {\n Web: 'web' as SrcEnum,\n Mobile: 'mobile' as SrcEnum\n };\n}\nexport namespace AppointmentInCreation {\n export type ManuallyUnitsEnum = 'numberOfBales' | 'numberOfAcres' | 'threshingHours' | 'mileage' | 'engineHours';\n export const ManuallyUnitsEnum = {\n NumberOfBales: 'numberOfBales' as ManuallyUnitsEnum,\n NumberOfAcres: 'numberOfAcres' as ManuallyUnitsEnum,\n ThreshingHours: 'threshingHours' as ManuallyUnitsEnum,\n Mileage: 'mileage' as ManuallyUnitsEnum,\n EngineHours: 'engineHours' as ManuallyUnitsEnum\n };\n export type CurrentStatusEnum = 'new' | 'draft' | 'schedule' | 'appointmentPrepared' | 'received' | 'reparing' | 'serviceAdvisorValidationPending' | 'clientValidationPending' | 'warrantyValidationPending' | 'sentBackError' | 'workfileValidated' | 'delivered' | 'jobcardFinalised' | 'cancelled';\n export const CurrentStatusEnum = {\n New: 'new' as CurrentStatusEnum,\n Draft: 'draft' as CurrentStatusEnum,\n Schedule: 'schedule' as CurrentStatusEnum,\n AppointmentPrepared: 'appointmentPrepared' as CurrentStatusEnum,\n Received: 'received' as CurrentStatusEnum,\n Reparing: 'reparing' as CurrentStatusEnum,\n ServiceAdvisorValidationPending: 'serviceAdvisorValidationPending' as CurrentStatusEnum,\n ClientValidationPending: 'clientValidationPending' as CurrentStatusEnum,\n WarrantyValidationPending: 'warrantyValidationPending' as CurrentStatusEnum,\n SentBackError: 'sentBackError' as CurrentStatusEnum,\n WorkfileValidated: 'workfileValidated' as CurrentStatusEnum,\n Delivered: 'delivered' as CurrentStatusEnum,\n JobcardFinalised: 'jobcardFinalised' as CurrentStatusEnum,\n Cancelled: 'cancelled' as CurrentStatusEnum\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NewAppointmentService {\n /** Edited appointment. */\n appointment: AppointmentDto;\n appointmentShort: AppointmentShortDto;\n basedAppointment: AppointmentShortDto;\n originalReceptionDate: Date;\n totalPrice = 0;\n customerPrice = 0;\n travelPrice = 0;\n // appointmentsByVehicle: AppointmentShortDto[] = [];\n customers: CustomerCompany[] = [];\n vehicles: Vehicle[] = [];\n users: WorkshopUserDto[] = [];\n user: WorkshopUserDto;\n maintenances: JobcardItemSelectable[] = [];\n listBrands: Brand[];\n listModels: Model[];\n thdUrl: string;\n creationData: AppointmentCreationData = {};\n appointmentOrigin: AppointmentShortDto;\n approvedActivities: JobcardItem[] = [];\n newApprovedActivities: JobcardItemDto[] = [];\n requiredExtraUnit: any = {};\n isDisabled = false;\n hasAccessSmartView = true;\n //TODO: Future will change below org name from API service - MY BEST Authorizer Name\n salesOrginatation = ['G024', 'G079', 'G080', 'G419'];\n //assign pending appointment\n assignPendingFlag: boolean;\n assignPendingSortingFlag: boolean;\n removeAllTechnicationSubject: Subject = new Subject();\n isOperationUpdated = false;\n bypassDeactivate = false;\n customerAppointment: CustomerAppointmentDto;\n appointmentInCreation: AppointmentInCreation;\n defaultAppointmentInCreation: string;\n basedAppointmentInCreation: AppointmentInCreation;\n appointmentInCreationOrigin: AppointmentInCreation;\n appointmentsInCreationByVehicle: AppointmentDto[] = [];\n temporaryId: string;\n appointmentDataChanged: boolean;\n // momentaneo\n appointmentDtoVersion: number;\n deferredInVehicleChecked: any[] = [];\n createAppointmentFromWorkFile: boolean = false;\n // moved from booking\n periods: OpeningDayPeriods;\n minDeliveryDate: Date;\n blockedTooltip: string;\n private appointmentSubject: BehaviorSubject = new BehaviorSubject(\n null\n );\n private appointmentInCreationSubject: BehaviorSubject = new BehaviorSubject(\n null\n );\n\n private consumableAssociationSubject: BehaviorSubject<\n ConsumableAssociation[]\n > = new BehaviorSubject([]);\n\n // keyboard tab event\n public focusPlateSubject = new Subject();\n focusPlate$ = this.focusPlateSubject.asObservable();\n constructor(private documentService: DocumentService) {}\n\n get nbJobcardItems(): number {\n const activities: any = [];\n if(this.appointmentInCreation &&\n this.appointmentInCreation.jobcard &&\n this.appointmentInCreation.jobcard.jobcardItems) {\n this.appointmentInCreation.jobcard.jobcardItems.forEach((ji: any) => {\n if(ji.selected) {\n activities.push(ji);\n }\n });\n }\n if (\n activities\n ) {\n return activities.filter(\n (i: any) =>\n i.type !== undefined && i.type !== 'free' && i.type !== 'checklist'\n ).length;\n }\n return 0;\n }\n getLastClockedOutDateTime(appointment: AppointmentInCreation|AppointmentDto): string {\n let lastClockedOut: Moment.Moment = null;\n let currentClockingOut: Moment.Moment;\n appointment?.jobcard?.jobcardItems?.forEach((jobcardItem: any) => {\n jobcardItem.jobcardItemStatus?.forEach((status: any) => {\n if (!status.deleted && status.time && status.duration) {\n currentClockingOut = moment(status.time).add(\n status.duration,\n 'seconds'\n );\n if (\n lastClockedOut === null ||\n currentClockingOut.isAfter(lastClockedOut)\n ) {\n lastClockedOut = currentClockingOut.clone();\n }\n }\n });\n });\n if (lastClockedOut === null) {\n return 'no clocking';\n } else {\n return lastClockedOut.format('MMMM Do YYYY, h:mm a');\n }\n }\n setAppointment(newAppointment: AppointmentDto) {\n this.appointment = newAppointment;\n this.basedAppointment = JSON.parse(JSON.stringify(this.appointment));\n this.appointmentSubject.next(this.appointment);\n this.originalReceptionDate = new Date(newAppointment.receptionDate);\n }\n\n getAppointmentDto(): AppointmentDto{\n return this.appointment;\n }\n getAppointmentDtoObservable(): Observable {\n return this.appointmentSubject.asObservable();\n }\n\n setAppointmentInCreation(newAppointment: AppointmentInCreation) {\n this.appointmentInCreation = newAppointment;\n this.basedAppointmentInCreation = JSON.parse(JSON.stringify(this.appointmentInCreation));\n this.appointmentInCreationSubject.next(this.appointmentInCreation);\n this.originalReceptionDate = new Date(newAppointment.receptionDate);\n }\n\n getCustomerAppointment(): AppointmentInCreation {\n return this.appointmentInCreation;\n }\n\n setCreationData(newCreationData: AppointmentCreationData) {\n this.creationData = newCreationData;\n }\n\n getCreationData(): AppointmentCreationData {\n return this.creationData;\n }\n\n clearCreationData() {\n this.creationData = {};\n }\n\n clearAppointmentOrigin() {\n this.appointmentInCreationOrigin = undefined;\n }\n\n getCustomenrAppointmentOrigin(): AppointmentInCreation {\n return this.appointmentInCreationOrigin;\n }\n\n getCustomerAppointmentObservable(): Observable {\n return this.appointmentInCreationSubject.asObservable();\n }\n\n getCurrentItemStatus(jobcardItem: JobcardItem): JobcardItemStatus {\n return jobcardItem?.jobcardItemStatus?.length > 1\n ? jobcardItem.jobcardItemStatus.find((s) => !s.deleted)\n : jobcardItem.jobcardItemStatus?.[0];\n }\n\n getCurrentItemStatusNV(jobcardItem: JobcardItemDto): JobcardItemStatusDto {\n return jobcardItem?.jobcardItemStatus?.length > 1\n ? jobcardItem.jobcardItemStatus.find((s) => !s.deleted)\n : jobcardItem.jobcardItemStatus?.[0];\n }\n setTechniciansLinkId(appointment: AppointmentDto): AppointmentDto {\n appointment?.jobcard?.jobcardItems?.forEach((jobItem) => {\n jobItem?.jobcardItemSpells?.forEach((spell) => {\n spell?.technicians?.forEach((tech) => {\n tech.linkId = tech?.id;\n });\n });\n });\n return appointment;\n }\n\n computeTotalPrice(\n paymentTypes: PaymentTypeDto[] = null,\n app: AppointmentInCreation = null\n ): number {\n if (app) {\n this.appointmentInCreation = { ...app };\n }\n this.customerPrice = 0;\n this.totalPrice = 0;\n this.travelPrice = 0;\n this.appointmentInCreation?.jobcard?.jobcardItems.forEach((activity: any) => {\n let activityPrice = 0;\n let customerPercent = 0;\n if (!activity.deferred && !activity.deleted) {\n // FIXME: Comment choisir le bon split ?\n /*\n if (activity.splits && activity.splits.length > 0) {\n customerPercent = activity.splits[0].customerPercent / 100;\n } else { */\n const isInternalActivity =\n paymentTypes &&\n paymentTypes.find((p) => p.id === activity.paymentTypeId)?.type ===\n PaymentType.TypeEnum.Internal;\n if (\n activity.warrantyCoverage ||\n isInternalActivity ||\n activity.payType === 'WTY'\n ) {\n customerPercent = 0;\n } else {\n customerPercent = 1;\n }\n\n if (activity.operations) {\n activity.operations.forEach((operation: any) => {\n activityPrice += !isNaN(operation.price) ? operation.price : 0;\n if (operation.parts) {\n operation.parts.forEach((part: any) => {\n activityPrice += !isNaN(part.price) ? part.price : 0;\n });\n }\n });\n }\n if (activity.extraOperations) {\n activity.extraOperations.forEach((extraOperation: any) => {\n activityPrice += !isNaN(extraOperation.amount)\n ? extraOperation.amount\n : 0;\n });\n }\n }\n if (activity.isCustomerAgreed) {\n this.totalPrice += activityPrice;\n this.customerPrice += activityPrice * customerPercent;\n }\n });\n\n // big travels (AG)\n if (this.appointmentInCreation.jobcard.jobcardTravels) {\n this.appointmentInCreation.jobcard.jobcardTravels\n .filter((travel: any) => travel.deleted !== true)\n .forEach((travel: any) => {\n if (\n (travel?.paymentType?.type !== 'warranty' &&\n travel?.paymentType?.type !== 'internal') ||\n travel?.paymentType?.type === undefined\n ) {\n this.travelPrice += !isNaN(travel.price) ? travel.price : 0;\n }\n });\n }\n\n this.customerPrice += this.travelPrice;\n\n return this.customerPrice;\n }\n\n computeTotalPriceDto(\n paymentTypes: PaymentTypeDto[] = null,\n app: AppointmentDto = null\n ): number {\n if (app) {\n this.appointment = { ...app };\n }\n this.customerPrice = 0;\n this.totalPrice = 0;\n this.travelPrice = 0;\n this.appointment?.jobcard?.jobcardItems.forEach((activity: any) => {\n let activityPrice = 0;\n let customerPercent = 0;\n if (!activity.deferred && !activity.deleted) {\n // FIXME: Comment choisir le bon split ?\n /*\n if (activity.splits && activity.splits.length > 0) {\n customerPercent = activity.splits[0].customerPercent / 100;\n } else { */\n const isInternalActivity =\n paymentTypes &&\n paymentTypes.find((p) => p.id === activity.paymentTypeId)?.type ===\n PaymentType.TypeEnum.Internal;\n if (\n activity.warrantyCoverage ||\n isInternalActivity ||\n activity.payType === 'WTY'\n ) {\n customerPercent = 0;\n } else {\n customerPercent = 1;\n }\n\n if (activity.operations) {\n activity.operations.forEach((operation: any) => {\n activityPrice += !isNaN(operation.price) ? operation.price : 0;\n if (operation.parts) {\n operation.parts.forEach((part: any) => {\n activityPrice += !isNaN(part.price) ? part.price : 0;\n });\n }\n });\n }\n if (activity.extraOperations) {\n activity.extraOperations.forEach((extraOperation: any) => {\n activityPrice += !isNaN(extraOperation.amount)\n ? extraOperation.amount\n : 0;\n });\n }\n }\n if (activity.isCustomerAgreed) {\n this.totalPrice += activityPrice;\n this.customerPrice += activityPrice * customerPercent;\n }\n });\n // big travels (AG)\n if (this.appointment?.jobcard?.jobcardTravels) {\n this.appointment.jobcard.jobcardTravels\n .filter((travel: any) => travel.deleted !== true)\n .forEach((travel: any) => {\n if (\n (travel?.paymentType?.type !== 'warranty' &&\n travel?.paymentType?.type !== 'internal') ||\n travel?.paymentType?.type === undefined\n ) {\n this.travelPrice += !isNaN(travel.price) ? travel.price : 0;\n }\n });\n }\n\n this.customerPrice += this.travelPrice;\n\n return this.customerPrice;\n }\n\n refreshJobcardItems(paymentTypes: PaymentTypeDto[], workshop: WorkshopDto) {\n this.appointmentInCreation.jobcard?.jobcardItems?.forEach((jobcardItem: any) => {\n paymentTypes.forEach((paymentType) => {\n if (paymentType.id === jobcardItem.paymentTypeId) {\n jobcardItem.paymentType = paymentType;\n\n paymentType.paymentSubTypes.forEach((subType) => {\n if (subType.id === jobcardItem.paymentSubTypeId) {\n jobcardItem.paymentSubType = subType;\n if (\n !environment.isIveco &&\n subType.paymentSubSubTypes?.length > 0\n ) {\n const paymentSubtype2 = subType.paymentSubSubTypes.find(\n (subsubtype) =>\n subsubtype.id === jobcardItem.paymentSubType2Id\n );\n const paymentSubtype3 = subType.paymentSubSubTypes.find(\n (subsubtype) =>\n subsubtype.id === jobcardItem.paymentSubType3Id\n );\n if (paymentSubtype2) {\n jobcardItem.paymentSubType2 = paymentSubtype2;\n } else {\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSub2Code = null;\n }\n if (paymentSubtype3) {\n jobcardItem.paymentSubType3 = paymentSubtype3;\n } else {\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSub3Code = null;\n }\n }\n }\n });\n }\n });\n\n this.refreshParts(jobcardItem);\n });\n this.arePartsAvailable(this.appointmentInCreation.jobcard.jobcardItems, workshop);\n }\n\n arePartsAvailable(\n jobcardItems: JobcardItemCollapsable[],\n workshop: WorkshopDto\n ): JobcardItemCollapsable[] {\n jobcardItems?.forEach((item) => {\n item.isPartAvailable = true;\n item.operations?.forEach((operation) => {\n operation.parts?.forEach((opePart) => {\n if (opePart.quantityInStock !== undefined) {\n item.isPartAvailable =\n item.isPartAvailable &&\n opePart.quantityInStock !== undefined &&\n opePart.quantityInStock >= opePart.quantity;\n }\n\n let quantityOnOtherWorkshop = 0;\n opePart.jobcardItemOperationPartLocationList?.forEach(\n (location: OperationPartLocation) => {\n if (\n location?.locationId &&\n workshop.sapCode.indexOf(location.locationId.toString()) > -1 &&\n location.quantityInStock >= opePart.quantity\n ) {\n opePart.isAvailableAtHomeLocation =\n location.quantityInStock >= opePart.quantity;\n } else {\n quantityOnOtherWorkshop += location.quantityInStock;\n }\n }\n );\n opePart.isAvailableAtOtherLocation =\n !opePart.isAvailableAtHomeLocation && quantityOnOtherWorkshop > 0;\n opePart.isNotAvailable =\n !opePart.isAvailableAtOtherLocation &&\n !opePart.isAvailableAtHomeLocation;\n\n if (!opePart.quantityInStock && opePart.isNotAvailable === true) {\n item.isPartAvailable = false;\n }\n });\n });\n });\n\n return jobcardItems;\n }\n arePartsAvailableNV(\n jobcardItems: JobcardItemCollapsableNew[],\n workshop: WorkshopDto\n ): JobcardItemCollapsableNew[] {\n jobcardItems?.forEach((item) => {\n item.isPartAvailable = true;\n item.operations?.forEach((operation) => {\n // CAMBIARE any CON DinamicJobcardItemOperationPartDto\n operation.parts?.forEach((opePart: any) => {\n if (opePart.quantityInStock !== undefined) {\n item.isPartAvailable =\n item.isPartAvailable &&\n opePart.quantityInStock !== undefined &&\n opePart.quantityInStock >= opePart.quantity;\n }\n\n let quantityOnOtherWorkshop = 0;\n opePart.jobcardItemOperationPartLocationList?.forEach(\n (location: JobcardItemOperationPartLocationDto) => {\n if (\n location?.locationId &&\n workshop.sapCode.indexOf(location.locationId.toString()) > -1 &&\n location.quantityInStock >= opePart.quantity\n ) {\n opePart.isAvailableAtHomeLocation =\n location.quantityInStock >= opePart.quantity;\n } else {\n quantityOnOtherWorkshop += location.quantityInStock;\n }\n }\n );\n opePart.isAvailableAtOtherLocation =\n !opePart.isAvailableAtHomeLocation && quantityOnOtherWorkshop > 0;\n opePart.isNotAvailable =\n !opePart.isAvailableAtOtherLocation &&\n !opePart.isAvailableAtHomeLocation;\n\n if (!opePart.quantityInStock && opePart.isNotAvailable === true) {\n item.isPartAvailable = false;\n }\n });\n });\n });\n\n return jobcardItems;\n }\n refreshParts(jobcardItem: JobcardItem) {\n const item: JobcardItemCollapsable = jobcardItem;\n item.causalParts = [];\n item.inspectionChecklist = [];\n if (item.operations) {\n item.operations.forEach((operation) => {\n if (operation.parts) {\n item.causalParts.push(...operation.parts.map((part) => part.part));\n }\n });\n }\n if (item.checklistInstances) {\n item.checklistInstances.forEach((checklistInstance) => {\n item.inspectionChecklist.push(checklistInstance);\n });\n }\n if (item.causalPartCode) {\n jobcardItem.causalPartId = -1;\n }\n jobcardItem = item;\n }\n\n refreshPartsNV(jobcardItem: JobcardItemDto) {\n const item: JobcardItemCollapsableNew = jobcardItem;\n item.causalParts = [];\n item.inspectionChecklist = [];\n if (item.operations) {\n item.operations.forEach((operation) => {\n if (operation.parts) {\n item.causalParts.push(...operation.parts.map((part) => part.part));\n }\n });\n }\n if (item.checklistInstances) {\n item.checklistInstances.forEach((checklistInstance) => {\n item.inspectionChecklist.push(checklistInstance);\n });\n }\n if (item.causalPartCode) {\n jobcardItem.causalPartId = -1;\n }\n jobcardItem = item;\n }\n fullOperationPrice(activity: JobcardItem) {\n let totalPrice = 0;\n if (activity.operations) {\n activity.operations.forEach((operation) => {\n totalPrice += !isNaN(operation.price) ? operation.price : 0;\n if (operation.parts) {\n operation.parts.forEach((part) => {\n totalPrice += !isNaN(part.price) ? part.price : 0;\n });\n }\n });\n }\n\n if (activity.extraOperations) {\n activity.extraOperations.forEach((extraOperation) => {\n totalPrice += !isNaN(extraOperation.amount) ? extraOperation.amount : 0;\n });\n }\n\n return totalPrice;\n }\n\n fullOperationPriceNV(activity: JobcardItemDto) {\n let totalPrice = 0;\n if (activity.operations) {\n activity.operations.forEach((operation) => {\n totalPrice += !isNaN(operation.price) ? operation.price : 0;\n if (operation.parts) {\n operation.parts.forEach((part) => {\n totalPrice += !isNaN(part.price) ? part.price : 0;\n });\n }\n });\n }\n\n if (activity.extraOperations) {\n activity.extraOperations.forEach((extraOperation) => {\n totalPrice += !isNaN(extraOperation.amount) ? extraOperation.amount : 0;\n });\n }\n\n return totalPrice;\n }\n setItemsWeight(items: JobcardItemDto[]) {\n return items.map((item, index) => {\n item.weight = index + 1;\n\n if (item.operations) {\n item.operations = item.operations.map(\n (operation: JobcardItemOperationDto, i: number) => {\n operation.weight = i + 1;\n return operation;\n }\n );\n }\n\n return item;\n });\n }\n\n setItemsWeightNV(items: JobcardItemDto[]) {\n return items.map((item, index) => {\n item.weight = index + 1;\n\n if (item.operations) {\n item.operations = item.operations.map(\n (operation: JobcardItemOperationDto, i: number) => {\n operation.weight = i + 1;\n return operation;\n }\n );\n }\n\n return item;\n });\n }\n\n // Check for duplicate or intermediate jobcarditem customer status\n retainLatestStatus() {\n this.appointmentInCreation?.jobcard?.jobcardItems?.forEach((ji: any) => {\n if (ji?.jobcardItemCustomerStatus?.length > 1) {\n const existingHistory: JobcardItemCustomerStatus[] = ji?.jobcardItemCustomerStatus.filter(\n (jics: any) => jics?.id\n );\n const newHistory: JobcardItemCustomerStatus[] = ji?.jobcardItemCustomerStatus.filter(\n (jics: any) => !jics?.id\n );\n if (newHistory?.length > 0) {\n ji.jobcardItemCustomerStatus = existingHistory;\n ji.jobcardItemCustomerStatus.push(newHistory[newHistory.length - 1]);\n }\n }\n });\n }\n setNewStatus(\n status: AppointmentStatus.StatusEnum,\n customerCompanyUser: CustomerCompanyUser\n ) {\n this.appointmentInCreation.status = {\n id: null,\n workshopUser: this.user,\n time: moment(new Date()).toISOString(),\n status,\n customerCompanyUser,\n };\n }\n /**\n * Recalculate the estimated durations of the jobcard and its child items.\n */\n recalculateGlobalDurations(\n jobcard: JobcardDto = this.appointmentInCreation?.jobcard,\n action?: string\n ) {\n if (jobcard) {\n jobcard.estimatedDuration = 0;\n if (jobcard?.jobcardItems) {\n jobcard.jobcardItems.forEach((jobcardItem) => {\n if (\n jobcardItem.type !== JobcardItem.TypeEnum.NextMaintenance &&\n jobcardItem.type !== JobcardItem.TypeEnum.ProposedMaintenance\n ) {\n if (!jobcardItem.deferred && !jobcardItem.deleted) {\n jobcardItem.estimatedDuration = 0;\n jobcardItem.officialTime = 0;\n let estimatedTime = 0;\n\n jobcardItem.operations?.forEach((operation) => {\n if (operation.selected === undefined || operation.selected) {\n if (!isNaN(operation.durationTime)) {\n estimatedTime += operation.durationTime;\n }\n if (!isNaN(operation.officialTime)) {\n jobcardItem.officialTime += operation.officialTime;\n }\n }\n });\n // Check if spell time is higher than duration time set at Operation level\n // If yes, then maintain the estimated time of the activity to the sum of spell time\n // If no, so adjust the spell times to the sum of operations time (give the time to the first spell)\n if (jobcardItem.jobcardItemSpells?.length > 0) {\n if (environment.isIveco) {\n const spellDuration = jobcardItem.jobcardItemSpells\n .map((sp) => sp.estimatedDuration)\n .reduce((t1, t2) => t1 + t2, 0);\n if (estimatedTime > spellDuration) {\n jobcardItem.jobcardItemSpells[0].estimatedDuration +=\n estimatedTime - spellDuration;\n }\n } else {\n jobcardItem.jobcardItemSpells[0].estimatedDuration = estimatedTime;\n }\n }\n\n if (environment.isIveco) {\n jobcardItem.jobcardItemSpells?.forEach((spell) => {\n if (!isNaN(spell.estimatedDuration)) {\n jobcardItem.estimatedDuration += spell.estimatedDuration;\n }\n });\n } else {\n jobcardItem.estimatedDuration = estimatedTime;\n }\n }\n }\n if (\n jobcardItem.estimatedDuration !== undefined &&\n !isNaN(jobcardItem.estimatedDuration)\n ) {\n jobcard.estimatedDuration += jobcardItem.estimatedDuration;\n }\n });\n }\n }\n if(this.appointmentInCreation?.jobcard){\n this.appointmentInCreation.jobcard.estimatedDuration = jobcard.estimatedDuration;\n }\n }\n\n /**\n *\n * @param ucrStatus To be check etim machine connected or not\n * @returns return the toaster message based on ucr-status\n */\n getSmartViewConnectedMachineToaster(ucrStatus: number): string | null {\n let message = null;\n switch (ucrStatus) {\n case 1:\n message = $localize`Connected features are unavailable: Subscription is expired.`;\n break;\n case 2:\n message = $localize`Connected features are unavailable: Telematics data cannot be retrieved remotely.`;\n break;\n case 3:\n message = $localize`Connected features are unavailable: Subcription is not activated.`;\n break;\n case 4:\n message = $localize`Connected features are unavailable: Maintenance Plan not found (unavailable, or conflicted configurations).`;\n break;\n default:\n break;\n }\n return message;\n }\n\n getExtraUnitInfoMessage(\n appointment: AppointmentInCreation,\n requiredUnit: string = null\n ): string {\n let units = [\n {\n id: AppointmentInCreation.ManuallyUnitsEnum.EngineHours,\n name: $localize`Engine hours`,\n },\n /*{\n id: AppointmentEnum.ManuallyUnitsEnum.ThreshingHours,\n name: 'Threshing hours',\n },\n { id: AppointmentEnum.ManuallyUnitsEnum.Mileage, name: 'KM/Mileage' },*/\n ];\n\n switch (requiredUnit) {\n case 'bale':\n units.push({\n id: AppointmentInCreation.ManuallyUnitsEnum.NumberOfBales,\n name: $localize`No of Bales`,\n });\n break;\n case 'acre':\n units.push({\n id: AppointmentInCreation.ManuallyUnitsEnum.NumberOfAcres,\n name: $localize`No of Acres`,\n });\n break;\n }\n\n //TODO : Remove below condition if CV also support to Bales/Acres/Threshing\n if (environment.isIveco) {\n units = [\n {\n id: AppointmentInCreation.ManuallyUnitsEnum.EngineHours,\n name: $localize`Engine hours`,\n },\n {\n id: AppointmentInCreation.ManuallyUnitsEnum.Mileage,\n name: $localize`KM/Mileage`,\n },\n ];\n }\n const missedUnites: any = [];\n\n units.forEach((item) => {\n if (!appointment[item.id]) {\n missedUnites.push(item.name);\n }\n });\n\n if (missedUnites.length) {\n let message = '';\n if (missedUnites.includes('Engine hours')) {\n message += $localize`Engine hours `;\n const eIndex = missedUnites.findIndex(\n (item: string) => item === 'Engine hours'\n );\n if (eIndex > -1) {\n missedUnites.splice(eIndex, 1);\n }\n }\n if ((message && missedUnites.length) || missedUnites.length > 1) {\n message += message?.length ? '/ ' : ' ';\n message += missedUnites.join('/');\n } else if (missedUnites.length < 2) {\n message += missedUnites.join(' ');\n }\n return Util.stringFormat(\n $localize`Please ensure the [0] are up-to-date, so that the Maintenance proposed to the customer is accurate. Please go back to the Customer tab to update this information.`,\n message\n );\n } else {\n return '';\n }\n }\n getDefaultAuthorizerName(\n salesOrganizationId: number,\n workshop: WorkshopDto\n ): JobcardItem.AuthorizerNameEnum | null {\n if (salesOrganizationId) {\n const saleOrgDetails = workshop?.workshopSalesOrganizations.find(\n (org) =>\n org.id === this.appointmentInCreation?.salesOrganizationId &&\n this.salesOrginatation.some(\n (item) => item.toLowerCase() === org.salesCode.toLowerCase()\n )\n );\n if (saleOrgDetails) {\n return JobcardItem.AuthorizerNameEnum.NE;\n }\n }\n return null;\n }\n\n getDeliveryDate(\n receptionDate: any,\n jobcard: Jobcard,\n periods: any,\n workspaceTimeService: any\n ): Date {\n let deliveryDate: Date;\n let maxDate = moment(receptionDate);\n jobcard?.jobcardItems?.forEach((item) => {\n if (item.jobcardItemSpells?.length > 0) {\n item.jobcardItemSpells.forEach((spell) => {\n if (spell?.technicians?.length > 0) {\n spell.technicians.forEach((tech) => {\n const date = workspaceTimeService.setEndDateOnWeek(\n tech.startDate,\n tech.estimatedDuration,\n periods\n );\n maxDate =\n date && moment(date).isAfter(moment(maxDate), 'minutes')\n ? moment(date)\n : maxDate;\n });\n } else {\n const date = workspaceTimeService.setEndDateOnWeek(\n spell.startDate,\n spell.estimatedDuration,\n periods\n );\n maxDate =\n date && moment(date).isAfter(moment(maxDate), 'minutes')\n ? moment(date)\n : maxDate;\n }\n });\n } else {\n const date = workspaceTimeService.setEndDateOnWeek(\n item.startDate,\n item.estimatedDuration,\n periods\n );\n maxDate =\n date && moment(date).isAfter(moment(maxDate), 'minutes')\n ? moment(date)\n : maxDate;\n }\n });\n\n if (moment(maxDate).isSame(moment(deliveryDate), 'minutes')) {\n deliveryDate = moment(maxDate).toDate();\n deliveryDate.setHours((maxDate.hours() + 1) % 24, 0, 0, 0);\n } else {\n deliveryDate = moment(maxDate).toDate();\n }\n\n return deliveryDate;\n }\n setConsumableAssociation(data: ConsumableAssociation[] = []) {\n this.consumableAssociationSubject.next(data);\n }\n getAppointmentInCreation(): AppointmentInCreation {\n return this.appointmentInCreation;\n }\n setAppointmentOrigin(newAppointmentOrigin: AppointmentInCreation) {\n this.appointmentInCreationOrigin = newAppointmentOrigin;\n }\n\n // keyboard tab event\n triggerFocus() {\n this.focusPlateSubject.next();\n }\n\n clearBookingSelection() {\n const appoinment: AppointmentGrid = this.appointment;\n appoinment?.jobcard?.jobcardItems?.map((jc: JobcardItemDto) => {\n jc.selected = false;\n return jc.jobcardItemSpells.forEach((element) => {\n element.selected = false;\n });\n });\n\n if (appoinment?.dragOrigin) {\n delete appoinment.dragOrigin;\n }\n if (appoinment.jobcardItemSpell) {\n delete appoinment.jobcardItemSpell;\n }\n if (appoinment.technician) {\n delete appoinment.technician;\n }\n if (appoinment.displayRemoveAssignment) {\n appoinment.displayRemoveAssignment = false;\n }\n this.setAppointment(appoinment);\n }\n\n\n isAppointmentInUse(response: ApiResponseDto) {\n this.isDisabled = response.code === '1';\n }\n\n getConsumableAssociation(): Observable {\n return this.consumableAssociationSubject.asObservable();\n }\n\n public resetNewAppointment(){\n this.appointment = undefined;\n this.appointmentShort = undefined;\n this.basedAppointment = undefined;\n this.originalReceptionDate = undefined;\n this.totalPrice = 0;\n this.customerPrice = 0;\n this.travelPrice = 0;\n this.customers = [];\n this.vehicles = [];\n this.users = [];\n this.user = undefined;\n this.maintenances = [];\n this.listBrands = [];\n this.listModels = [];\n this.thdUrl = undefined;\n // this.creationData = {};\n this.appointmentOrigin = undefined;\n this.approvedActivities = [];\n this.newApprovedActivities = [];\n this.requiredExtraUnit = {};\n this.isDisabled = false;\n this.hasAccessSmartView = true;\n this.salesOrginatation = ['G024', 'G079', 'G080', 'G419'];\n this.assignPendingFlag = undefined;\n this.assignPendingSortingFlag = undefined;\n this.removeAllTechnicationSubject = new Subject();\n this.isOperationUpdated = false;\n this.bypassDeactivate = false;\n this.customerAppointment = undefined;\n this.appointmentInCreation = undefined;\n this.basedAppointmentInCreation = undefined;\n this.appointmentsInCreationByVehicle = [];\n this.temporaryId = undefined;\n this.appointmentDataChanged = undefined;\n this.appointmentDtoVersion = undefined;\n if(!this.getCreateAppointmentFromWorkFile){\n this.appointmentInCreationOrigin = undefined;\n this.appointmentInCreation = this.appointmentInCreationOrigin;\n this.createAppointmentFromWorkFile = false;\n }\n }\n setCreateAppointmentFromWorkFile(){\n this.createAppointmentFromWorkFile = true;\n }\n getCreateAppointmentFromWorkFile(): boolean{\n return this.createAppointmentFromWorkFile;\n }\n\n backupInCreation() {\n this.defaultAppointmentInCreation = JSON.stringify(this.appointmentInCreation);\n\n }\n restoreBackupInCreation() {\n // this.appointmentInCreation = JSON.parse(this.defaultAppointmentInCreation);\n const appointmentInCreationTemp = JSON.parse(this.defaultAppointmentInCreation);\n this.appointmentInCreation.jobcard = appointmentInCreationTemp.jobcard;\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { OpeningDayPeriods } from 'src/app/models/model/models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigService {\n defaultOpeningDayPeriods: OpeningDayPeriods = {\n start: '2020-10-27T07:00:00.000',\n end: '2020-10-27T19:00:00.000',\n };\n minutesStep = 15;\n scrollLimit = 50;\n appointmentScrollLimit = 20;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CookieService } from 'ngx-cookie-service';\n\n@NgModule({\n imports: [CommonModule],\n providers: [CookieService],\n})\nexport class CoreModule {\n constructor(@Optional() @SkipSelf() parentModule: CoreModule) {\n if (parentModule) {\n throw new Error(\n 'CoreModule has already been loaded. You should only import Core modules in the AppModule only.'\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router } from '@angular/router';\r\nimport { DmsControllerService, GetEmployeeDataRequestParams } from 'src/api/djc-dms-service/api/dmsController.service';\r\nimport { UserAdminService } from '../user/user-admin.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\nexport class DmsService {\r\n\r\n constructor(\r\n private router: Router,\r\n private toastrService: ToastrService,\r\n private dmsControllerService: DmsControllerService,\r\n private userService: UserAdminService\r\n ) {}\r\n\r\n syncShiftFromDms(workshopId: number) {\r\n // Synchronize Shifts Data\r\n this.dmsControllerService.getShifts(this.getSynchroParams(workshopId)).subscribe(response => {\r\n if (response?.code === '-1') {\r\n // Shifts import failed, do not synchronize Employee Data\r\n const errorMessage = $localize`Error synchronizing the shifts information from the DMS.`;\r\n this.toastrService.error(errorMessage);\r\n } else {\r\n // Shifts imported, continue with Employee Data\r\n this.toastrService.success($localize`Shift Imported.`);\r\n this.syncEmployeeDataFromDms(workshopId);\r\n }\r\n });\r\n }\r\n\r\n private syncEmployeeDataFromDms(workshopId: number) {\r\n this.dmsControllerService.getEmployeeData(this.getSynchroParams(workshopId)).subscribe(response => {\r\n if (response?.code === '-1') {\r\n // Employee Data import failed\r\n const errorMessage = $localize`Error synchronizing the employee data information from the DMS.`;\r\n this.toastrService.error(errorMessage);\r\n } else {\r\n // Employee Data imported\r\n this.toastrService.success($localize`Employee data Imported.`);\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([this.router.url]);\r\n }\r\n });\r\n }\r\n\r\n private getSynchroParams(workshopId: number): GetEmployeeDataRequestParams {\r\n return {\r\n fromDate: moment(new Date()).subtract(0, 'day').format('YYYYMMDD'),\r\n toDate: moment(new Date()).add(5, 'day').format('YYYYMMDD'),\r\n workshopId,\r\n authorization: this.userService.accessToken,\r\n };\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, UrlTree } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, of } from 'rxjs';\nimport { delay, map, switchMap } from 'rxjs/operators';\nimport { PermissionsService } from '../permissions/permissions.service';\nimport { UserAdminService } from '../user/user-admin.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionsGuard implements CanActivate {\n constructor(\n private permissionsService: PermissionsService,\n private toastrService: ToastrService,\n private userService: UserAdminService\n ) {}\n\n canActivate(\n route: ActivatedRouteSnapshot\n ):\n | Observable\n | Promise\n | boolean\n | UrlTree {\n if (!this.userService.accessToken) {\n return of(null).pipe(\n delay(3000),\n switchMap(() => this.permissionsService.hasPermissions(route.data.permissions)),\n map((allowed) => {\n if (allowed) {\n return true;\n } else {\n this.toastrService.error(\n $localize`You are not authorized to access this page.`\n );\n return false;\n }\n })\n );\n } else {\n return this.permissionsService.hasPermissions(route.data.permissions).pipe(\n map((allowed) => {\n if (allowed) {\n return true;\n } else {\n this.toastrService.error(\n $localize`You are not authorized to access this page.`\n );\n return false;\n }\n })\n );\n }\n }\n}\n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n} from '@angular/common/http';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class LanguagesInterceptor implements HttpInterceptor {\n constructor(@Inject(LOCALE_ID) private locale: string) {}\n\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n let language = this.locale.split('-')[0].toUpperCase();\n if (language === 'PT') {\n language = 'PT-BR';\n }\n const clonedRequest = request.clone({\n headers: request.headers.set('Accept-Language', language),\n });\n return next.handle(clonedRequest);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Language } from 'src/app/models/model/models';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { LanguageService } from 'src/api/djc-admin-service';\nimport { UserAdminService } from '../user/user-admin.service';\nimport { LanguageService as BookingLanguageService} from 'src/api/djc-booking-service/api/language.service';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LanguagesService {\n private languages$: Observable;\n\n selectedLanguage = new BehaviorSubject(null);\n constructor(private languageService: LanguageService,\n private bookingLanguageService: BookingLanguageService,\n private userService: UserAdminService,\n private router: Router\n ) {}\n\n getLanguages(): Observable {\n if (!this.languages$) {\n this.languages$ = this.requestLanguages().pipe(shareReplay(1));\n }\n return this.languages$;\n }\n\n private requestLanguages() {\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n return this.languageService.getAllLanguages({authorization: this.userService.accessToken});\n } else {\n return this.bookingLanguageService.getAllLanguages({authorization: this.userService.accessToken});\n }\n }\n setLanguage(language: Language) {\n this.selectedLanguage.next(language);\n }\n\n getSelectedLanguage(): Language {\n return this.selectedLanguage.getValue();\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Brand, JobcardItem, JobcardItemCustomerStatus, JobcardPartsBacklog, JobcardTravel, KitPart, Model, MpInformationDelta, OpeningDay, OpeningDayPeriods, OperationConsumable, OprConsumable, Part, PartAvailability, PaymentSubType, PaymentType, Shift, ShiftPeriods, Skill, Split, WarrantyClaimData, Workshop, WorkshopBay, WorkshopUser, WorkshopUserTravelPosition, WorkshopUserUnavailability } from \"@models-smartview\";\nimport { AppointmentDto, AppointmentStatusDto, BrandDto, CustomerCompanyShortDto, CustomerCompanyUserShortDto, JobcardAttachmentDto, JobcardDto, JobcardItemAttachmentDto, JobcardItemDeletedDto, JobcardItemDto, JobcardItemShortDto, JobcardTravelDto, JobcardVehicleDto, ModelDto, PaymentSubSubTypeDto, PriorityTypeDto, WarrantyClaimDataDto, WorkshopDto, WorkshopUserDto, WorkshopUserTravelPositionDto } from \"src/api/djc-booking-service\";\nimport { AppointmentViewDto } from \"src/api/djc-booking-service/model/appointmentViewDto\";\nimport { BookingAppointmentDto } from \"src/api/djc-booking-service/model/bookingAppointmentDto\";\nimport { CustomerAppointmentDto } from \"src/api/djc-booking-service/model/customerAppointmentDto\";\nimport { JobcardViewDto } from \"src/api/djc-booking-service/model/jobcardViewDto\";\nimport { PaymentSubTypeDto } from \"src/api/djc-booking-service/model/paymentSubTypeDto\";\nimport { PaymentTypeDto } from \"src/api/djc-booking-service/model/paymentTypeDto\";\nimport { CpdContactDetails, CustomerCompanyUser, JobcardAttachment, JobcardItemDeleted, Vehicle } from \"src/api/document\";\n// import { AppointmentDto } from \"src/api/djc-workitem-service/model/models\";\nimport { AppointmentInCreation, NewAppointmentService } from \"src/app/appointment/new-appointment.service\";\nimport { ConsumableDto } from \"src/app/model/consumableDtoFE\";\nimport { JobcardItemOperationConsumableDto } from \"src/app/model/jobcardItemOperationConsumableDtoFE\";\nimport { JobcardItemOperationDto } from \"src/app/model/jobcardItemOperationDtoFE\";\nimport { JobcardItemOperationPartDto } from \"src/app/model/jobcardItemOperationPartDtoFE\";\nimport { JobcardItemOperationPartLocationDto } from \"src/app/model/jobcardItemOperationPartLocationDtoFE\";\nimport { PartDto } from \"src/app/model/partDtoFE\";\nimport { Appointment, AppointmentStatus, ExtraOperation, Operation, PriorityType, Jobcard, JobcardItemSpell, ChecklistDamage, ChecklistResultAttachment, ChecklistResult, WorkshopSale, ChecklistInstance, OperationPart, OperationPartLocation, JobcardItemStatus, JobcardItemTechnician, CustomerCompany, PaymentSubSubType } from \"src/app/models/model/models\";\nimport { AppVersion } from '../../../api/document/model/appVersion';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MappingService {\n constructor(\n public newAppointmentService: NewAppointmentService\n ) {}\n // CREATE/UPDATE CUSTOMER\n mapAppointmentInCreationDtoToCustomerAppointmentDto(appointmentInCreation: AppointmentInCreation): CustomerAppointmentDto {\n return {\n temporaryId: this.newAppointmentService.temporaryId ? this.newAppointmentService.temporaryId : null,\n appointmentType: 'CUSTOMER',\n workshopUserId: appointmentInCreation.workshopUserId,\n workshopId: appointmentInCreation.workshopId,\n customerCompany: {\n id: appointmentInCreation.customerCompany.id,\n dmsId: appointmentInCreation.customerCompany.dmsId,\n displayedName: appointmentInCreation.customerCompany.displayedName,\n name: appointmentInCreation.customerCompany.name,\n email: appointmentInCreation.customerCompany.email,\n phone: appointmentInCreation.customerCompany.phone,\n mobilePhone: appointmentInCreation.customerCompany.mobilePhone,\n cpdContactDetails: Array.isArray(appointmentInCreation.customerCompany && appointmentInCreation.customerCompany.alternateContactDetails) ? appointmentInCreation.customerCompany.alternateContactDetails.map((cpd: any) => ({\n id: cpd.id ? cpd.id : null,\n // absent field in appointmentInCreation\n // customerCompanyId: null,\n customerName: cpd.customerName ? cpd.customerName : null,\n cityName: cpd.cityName ? cpd.cityName : null,\n countryCode: cpd.countryCode ? cpd.countryCode : null,\n address: cpd.address ? cpd.address : null,\n zipCode: cpd.zipCode ? cpd.zipCode : null,\n })) : [],\n customerPaymentMode: appointmentInCreation.customerCompany.customerPaymentMode,\n },\n status:{\n id: appointmentInCreation.status.id,\n customerCompanyUser: {\n id: appointmentInCreation.status.customerCompanyUser.id,\n lastName: appointmentInCreation.status.customerCompanyUser.lastName,\n email: appointmentInCreation.status.customerCompanyUser.email,\n phone: appointmentInCreation.status.customerCompanyUser.phone,\n mobilePhone: appointmentInCreation.status.customerCompanyUser.mobilePhone,\n },\n workshopUserId: appointmentInCreation.status.workshopUserId,\n time: appointmentInCreation.status.time,\n status: appointmentInCreation.status.status,\n version: this.mapVersionField(appointmentInCreation?.status?.version),\n },\n driver: (appointmentInCreation.driver && (appointmentInCreation.driver.customerCompanyId || appointmentInCreation.driver.lastName || appointmentInCreation.driver.email || appointmentInCreation.driver.mobilePhone || appointmentInCreation.driver.phone)) ? {\n id: appointmentInCreation.driver.id ? appointmentInCreation.driver.id : -1,\n lastName: appointmentInCreation.driver.lastName,\n email: appointmentInCreation.driver.email,\n phone: appointmentInCreation.driver.phone,\n mobilePhone: appointmentInCreation.driver.mobilePhone,\n } : null,\n deliveryDate: appointmentInCreation.deliveryDate,\n engineHours: appointmentInCreation.engineHours,\n mileage: appointmentInCreation.mileage,\n priorityTypeId: appointmentInCreation.priorityType?.id,\n jobcard: {\n id: appointmentInCreation.jobcard.id,\n dmsJobOrder: appointmentInCreation.jobcard.dmsJobOrder,\n failureDate: appointmentInCreation.jobcard.failureDate,\n customerOrderNumber: appointmentInCreation.jobcard.customerOrderNumber,\n ansDossier: appointmentInCreation.jobcard.ansDossier,\n jobcardItems: this.mapJobcardItemsShortDto(appointmentInCreation?.jobcard?.jobcardItems),\n jobcardItemDeleted: this.mapJobcardItemsDeleted(appointmentInCreation?.jobcard?.jobcardItemDeleted),\n estimatedDuration: appointmentInCreation.jobcard.estimatedDuration,\n version: this.mapVersionField(appointmentInCreation?.jobcard?.version),\n dmsToStrClaim: appointmentInCreation.jobcard.dmsToStrClaim,\n dmsOrderType: appointmentInCreation.jobcard.dmsOrderType,\n djcOrderType: appointmentInCreation.jobcard.djcOrderType,\n jobcardTravels: appointmentInCreation.jobcard.jobcardTravels ? this.mapJobcardTravelToJobcardTravelDto(appointmentInCreation.jobcard.jobcardTravels) : null,\n jobcardAttachmentDtos: (appointmentInCreation.jobcard.jobcardAttachmentDtos && Array.isArray(appointmentInCreation.jobcard.jobcardAttachmentDtos)) ? appointmentInCreation.jobcard.jobcardAttachmentDtos.map((jad: JobcardAttachmentDto) => ({\n id: jad.id,\n type: jad.type,\n url: jad.url,\n year: jad.year,\n filename: jad.filename,\n jobOrder: jad.jobOrder,\n sapCode: jad.sapCode,\n filesize: jad.filesize,\n creationDate: jad.creationDate,\n isDeleted: jad.isDeleted,\n isSapOk: jad.isSapOk,\n reason: jad.reason,\n description: jad.description,\n workshopUserId: jad.workshopUserId,\n })) : [],\n jobcardEngineHours: this.mapjobcardAttachmentToJobcardAttachmentDto(appointmentInCreation.jobcard.jobcardEngineHours),\n jobcardMileages: this.mapjobcardAttachmentToJobcardAttachmentDto(appointmentInCreation.jobcard.jobcardMileages),\n // MANCANO IN APPOINTMENT.JOBCARD\n // lastUpdatedTimestamp: appointmentInCreation.jobcard.\n // lastUpdatedFields: appointmentInCreation.jobcard.\n // lastSyncTimestamp: appointmentInCreation.jobcard.\n },\n failureEngineHours: appointmentInCreation.failureEngineHours,\n customerNeed: appointmentInCreation.customerNeed,\n isBreakdownAppt: appointmentInCreation.isBreakdownAppt,\n repairAddress: appointmentInCreation.repairAddress,\n unitStatus: {\n date: (appointmentInCreation.unitStatus && appointmentInCreation.unitStatus.date) ? appointmentInCreation.unitStatus.date : null,\n unitDown: (appointmentInCreation.unitStatus && (appointmentInCreation.unitStatus.unitDown || appointmentInCreation.unitStatus.unitDown === false)) ? appointmentInCreation.unitStatus.unitDown : null,\n version: this.mapVersionField(appointmentInCreation?.unitStatus?.version),\n },\n salesOrganizationId: appointmentInCreation.salesOrganizationId,\n orderTypeHeaderCode: appointmentInCreation.orderTypeHeaderCode,\n checklistInstances: this.mapChecklistInstances(appointmentInCreation?.checklistInstances),\n // checklistInstances: (appointmentInCreation?.checklistInstances && Array.isArray(appointmentInCreation?.checklistInstances)) ? appointmentInCreation?.checklistInstances.map((cin: any) => ({\n // version: this.mapVersionField(cin?.version),\n // id: cin.id,\n // summaryUrl: cin.summaryUrl,\n // content: cin.content,\n // appointmentId: cin.appointmentId,\n // checklistTemplateId: cin.checklistTemplateId,\n // checklistTemplateTitle: cin.checklistTemplateTitle,\n // type: cin.type,\n // workshopUserId: cin.workshopUserId,\n // checkListResult: (cin?.checkListResult && Array.isArray(cin?.checkListResult)) ? cin?.checkListResult.map((clr: any) => ({\n // id: clr.id,\n // itemId: clr.itemId,\n // commentResult: clr.commentResult,\n // resultValue: clr.resultValue,\n // timeResult: clr.timeResult,\n // checkListResultAttachment: (clr?.checkListResultAttachment && Array.isArray(clr?.checkListResultAttachment)) ? clr?.checkListResultAttachment.map((clra: any) => ({\n // id: clra.id,\n // url: clra.url,\n // type: clra.type,\n // year: clra.year,\n // jobOrder: clra.jobOrder,\n // filename: clra.filename,\n // sapCode: clra.sapCode,\n // size: clra.size,\n // reason: clra.reason,\n // isDeleted: clra.isDeleted,\n // isSapOk: clra.isSapOk,\n // })) : [],\n // version: this.mapVersionField(clr?.version),\n // // absent field in appointmentInCreation\n // // checklistInstance: ChecklistInstanceDto,\n // })) : [],\n // jobcardItemId: cin.jobcardItemId,\n // submitted: cin.submitted,\n // completionDate: cin.completionDate,\n // appointmentSignature: {\n // id: cin?.checklistSignature?.id,\n // url: cin?.checklistSignature?.url,\n // secretKey: cin?.checklistSignature?.secretKey,\n // secretIV: cin?.checklistSignature?.secretIV,\n // phase: cin?.checklistSignature?.phase,\n // time: cin?.checklistSignature?.time,\n // customerNotPresent: cin?.checklistSignature?.customerNotPresent,\n // appointmentId: cin?.checklistSignature?.appointmentId,\n // customerCompanyUserId: cin?.checklistSignature?.customerCompanyUserId,\n // signatory: cin?.checklistSignature?.signatory,\n // workshopUserId: cin?.checklistSignature?.workshopUserId,\n // isTechnician: cin?.checklistSignature?.isTechnician,\n // version: this.mapVersionField(cin?.checklistSignature?.version ),\n // },\n // })) : [],\n types: appointmentInCreation.types,\n onHoldReason: appointmentInCreation.onHoldReason ? {\n id: appointmentInCreation.onHoldReason.id,\n description: appointmentInCreation.onHoldReason.description,\n workshopId: appointmentInCreation.onHoldReason.workshopId,\n isVisible: appointmentInCreation.onHoldReason.isVisible,\n version: this.mapVersionField(appointmentInCreation?.onHoldReason?.version),\n } : undefined,\n cpdAlternateContact: appointmentInCreation.cpdAlternateContact ? {\n id: appointmentInCreation.cpdAlternateContact.id,\n customerName: appointmentInCreation.cpdAlternateContact.customerName,\n cityName: appointmentInCreation.cpdAlternateContact.cityName,\n address: appointmentInCreation.cpdAlternateContact.address,\n countryCode: appointmentInCreation.cpdAlternateContact.countryCode,\n zipCode: appointmentInCreation.cpdAlternateContact.zipCode,\n } : undefined,\n numberOfBales: appointmentInCreation.numberOfBales,\n numberOfAcres: appointmentInCreation.numberOfAcres,\n threshingHours: appointmentInCreation.threshingHours,\n requiredExtraUnits: appointmentInCreation.requiredExtraUnits,\n vehicle: appointmentInCreation.vehicle ? {\n id: appointmentInCreation.vehicle.id,\n workshopId: appointmentInCreation.vehicle.workshopId,\n vin: appointmentInCreation.vehicle.vin,\n brand: appointmentInCreation.vehicle.brand ? {\n id: appointmentInCreation.vehicle.brand.id,\n name: appointmentInCreation.vehicle.brand.name,\n iceCode: appointmentInCreation.vehicle.brand.iceCode,\n } : undefined,\n model: appointmentInCreation.vehicle.model ? {\n id: appointmentInCreation.vehicle.model.id,\n name: appointmentInCreation.vehicle.model.name,\n brand: appointmentInCreation.vehicle.model.brand ? {\n id: appointmentInCreation.vehicle.model.brand.id,\n name: appointmentInCreation.vehicle.model.brand.name,\n iceCode: appointmentInCreation.vehicle.model.brand.iceCode,\n } : undefined,\n } : undefined,\n plate: appointmentInCreation.vehicle.plate,\n bm: appointmentInCreation.vehicle.bm,\n vcb: appointmentInCreation.vehicle.vcb,\n vp: appointmentInCreation.vehicle.vp,\n wtyStartDate: appointmentInCreation.vehicle.warrantyStartDate,\n customerCompanyId: appointmentInCreation.vehicle.customerCompanyId,\n annualInspectionDate: appointmentInCreation.vehicle.annualInspectionDate,\n tachometerDate: appointmentInCreation.vehicle.tachometerDate,\n isActive: appointmentInCreation.vehicle.isActive,\n customerCompanyName: appointmentInCreation.vehicle.customerCompanyName,\n customerCompanyDisplayedName: appointmentInCreation.vehicle.customerCompanyDisplayedName,\n customerCompanyDmsId: appointmentInCreation.vehicle.customerCompanyDmsId,\n vehicleNote: appointmentInCreation.vehicle.vehicleNote,\n customerCompanyUser: appointmentInCreation.vehicle.customerCompanyUser ? {\n id: appointmentInCreation.vehicle.customerCompanyUser.id,\n customerCompanyId: appointmentInCreation.vehicle.customerCompanyUser.customerCompanyId,\n firstName: appointmentInCreation.vehicle.customerCompanyUser.firstName,\n lastName: appointmentInCreation.vehicle.customerCompanyUser.lastName,\n email: appointmentInCreation.vehicle.customerCompanyUser.email,\n phone: appointmentInCreation.vehicle.customerCompanyUser.phone,\n mobilePhone: appointmentInCreation.vehicle.customerCompanyUser.mobilePhone,\n } : undefined,\n invoiceDate: appointmentInCreation.vehicle.invoiceDate,\n stockNumber: appointmentInCreation.vehicle.stockNumber,\n latestUpdatedGeoStoreTime: appointmentInCreation.vehicle.latestUpdatedGeoStoreTime,\n latitude: appointmentInCreation.vehicle.latitude,\n longitude: appointmentInCreation.vehicle.longitude,\n lastKnownEngineHours: appointmentInCreation.vehicle.lastKnownEngineHours,\n lastKnownMileage: appointmentInCreation.vehicle.lastKnownMileage,\n lastKnownBales: appointmentInCreation.vehicle.lastKnownBales,\n lastKnownAcres: appointmentInCreation.vehicle.lastKnownAcres,\n lastKnownThreshingHours: appointmentInCreation.vehicle.lastKnownThreshingHours,\n epartsBrandName: appointmentInCreation.vehicle.epartsBrandName,\n dmsId: appointmentInCreation.vehicle.dmsId,\n } : undefined,\n version: this.mapVersionField(appointmentInCreation?.version),\n // field not present in customerShortdto\n // customerPaymentMode: appointmentInCreation.customerPaymentMode,\n };\n }\n mapJobcardItemsShortDto(jobcardItems: any): JobcardItemShortDto[] {\n const result =\n (jobcardItems && Array.isArray(jobcardItems)) ? jobcardItems.map((item: any) => ({\n id: item.id,\n estimatedDuration: item.estimatedDuration,\n name: item.name,\n code: item.code,\n description: item.description,\n additionalDescription: item.additionalDescription,\n deferredDate: item.deferredDate,\n weight: item.weight,\n technicians: this.mapTechnicians(item?.technicians),\n operations: (item.operations && Array.isArray(item.operations)) ? item.operations.map((operation: any) => ({\n id: operation.id,\n code: operation.code,\n label: operation.label,\n type: operation.type,\n // absent field in appointmentInCreation\n // description: operation.\n weight: operation.weight,\n officialTime: operation.officialTime,\n durationTime: operation.durationTime,\n compulsory: operation.compulsory,\n selected: operation.selected,\n price: operation.price,\n manufacturer: operation.manufacturer,\n // absent field in appointmentInCreation\n // addOnStatus: operation.\n parts: Array.isArray(operation.parts) ? operation.parts.map((part: any) => ({\n version: this.mapVersionField(part.version),\n id: part.id,\n quantity: part.quantity,\n part: part.part ? {\n id: part.part.id,\n workshopId: part.part.workshopId,\n code: part.part.code,\n description: part.part.description,\n partSuperseedingId: part.part.partSuperseedingId,\n // absent field in appointmentInCreation\n // partDetailId: number,\n quantity: part.part.quantity,\n // absent fields in appointmentInCreation\n // booking: string,\n // visitDate: string,\n // vehPlate: string,\n // customer: string,\n // activity: string,\n manufacturer: part.part.manufacturer,\n isKit: part.part.isKit,\n kitParts: (part.part?.kitPart && Array.isArray(part.part.kitPart)) ? part.part?.kitPart.map((k: any) => ({\n compKitCode: k.compKitCode,\n compPnCode: k.compPnCode,\n compPnLabel: k.compPnLabel,\n compPnQty: k.compPnQty,\n compDate: k.compDate,\n })) : [],\n quantityInStock: part.part.quantityInStock,\n quantityOnOrder: part.part.quantityOnOrder,\n quantityInTransit: part.part.quantityInTransit,\n // absent field in appointmentInCreation\n // jobcardItemOperationPartLocationList: Array,\n // absent field in appointmentInCreation\n // price: number,\n homeLocation: part.part.isHomeLocation,\n } : null,\n jobCardItemOperation: {\n id: part.jobCardItemOperation?.id,\n code: part.jobCardItemOperation?.code,\n label: part.jobCardItemOperation?.label,\n type: part.jobCardItemOperation?.type,\n description: part.jobCardItemOperation?.description,\n weight: part.jobCardItemOperation?.weight,\n officialTime: part.jobCardItemOperation?.officialTime,\n durationTime: part.jobCardItemOperation?.durationTime,\n compulsory: part.jobCardItemOperation?.compulsory,\n selected: part.jobCardItemOperation?.selected,\n price: part.jobCardItemOperation?.price,\n manufacturer: part.jobCardItemOperation?.manufacturer,\n addOnStatus: part.jobCardItemOperation?.addOnStatus,\n parts: Array.isArray(operation.parts) ? operation.parts.map((jiopPart: any) => ({\n version: this.mapVersionField(jiopPart.version),\n id: jiopPart.id,\n quantity: jiopPart.quantity,\n part: jiopPart.part ? {\n id: jiopPart.part.id,\n workshopId: jiopPart.part.workshopId,\n code: jiopPart.part.code,\n description: jiopPart.part.description,\n partSuperseedingId: jiopPart.part.partSuperseedingId,\n quantity: jiopPart.part.quantity,\n manufacturer: jiopPart.part.manufacturer,\n isKit: jiopPart.part.isKit,\n kitParts: (jiopPart.part?.kitPart && Array.isArray(jiopPart.part.kitPart)) ? jiopPart.part?.kitPart.map((k: any) => ({\n compKitCode: k.compKitCode,\n compPnCode: k.compPnCode,\n compPnLabel: k.compPnLabel,\n compPnQty: k.compPnQty,\n compDate: k.compDate,\n })) : [],\n quantityInStock: jiopPart.part.quantityInStock,\n quantityOnOrder: jiopPart.part.quantityOnOrder,\n quantityInTransit: jiopPart.part.quantityInTransit,\n homeLocation: jiopPart.part.isHomeLocation,\n } : null,\n jobCardItemOperation: {\n id: jiopPart.jobCardItemOperation?.id,\n code: jiopPart.jobCardItemOperation?.code,\n label: jiopPart.jobCardItemOperation?.label,\n type: jiopPart.jobCardItemOperation?.type,\n description: jiopPart.jobCardItemOperation?.description,\n weight: jiopPart.jobCardItemOperation?.weight,\n officialTime: jiopPart.jobCardItemOperation?.officialTime,\n durationTime: jiopPart.jobCardItemOperation?.durationTime,\n compulsory: jiopPart.jobCardItemOperation?.compulsory,\n selected: jiopPart.jobCardItemOperation?.selected,\n price: jiopPart.jobCardItemOperation?.price,\n manufacturer: jiopPart.jobCardItemOperation?.manufacturer,\n addOnStatus: jiopPart.jobCardItemOperation?.addOnStatus,\n parts: Array.isArray(jiopPart.jobCardItemOperation?.parts) ? jiopPart.jobCardItemOperation?.parts.map((part2: any) => ({\n version: this.mapVersionField(part2.version),\n id: part2.id,\n quantity: part2.quantity,\n part: part2.part ? {\n id: part2.part.id,\n workshopId: part2.part.workshopId,\n code: part2.part.code,\n description: part2.part.description,\n partSuperseedingId: part2.part.partSuperseedingId,\n quantity: part2.part.quantity,\n manufacturer: part2.part.manufacturer,\n isKit: part2.part.isKit,\n kitParts: (part2.part?.kitPart && Array.isArray(part2.part.kitPart)) ? part2.part?.kitPart.map((k: any) => ({\n compKitCode: k.compKitCode,\n compPnCode: k.compPnCode,\n compPnLabel: k.compPnLabel,\n compPnQty: k.compPnQty,\n compDate: k.compDate,\n })) : [],\n quantityInStock: part2.part.quantityInStock,\n quantityOnOrder: part2.part.quantityOnOrder,\n quantityInTransit: part2.part.quantityInTransit,\n homeLocation: part2.part.isHomeLocation,\n } : null,\n // jobCardItemOperation: {\n // id: part2.jobCardItemOperation?.id,\n // code: part2.jobCardItemOperation?.code,\n // label: part2.jobCardItemOperation?.label,\n // type: part2.jobCardItemOperation?.type,\n // description: part2.jobCardItemOperation?.description,\n // weight: part2.jobCardItemOperation?.weight,\n // officialTime: part2.jobCardItemOperation?.officialTime,\n // durationTime: part2.jobCardItemOperation?.durationTime,\n // compulsory: part2.jobCardItemOperation?.compulsory,\n // selected: part2.jobCardItemOperation?.selected,\n // price: part2.jobCardItemOperation?.price,\n // manufacturer: part2.jobCardItemOperation?.manufacturer,\n // addOnStatus: part2.jobCardItemOperation?.addOnStatus,\n // //parts?: Array;\n // // consumables: Array.isArray(part.jobCardItemOperation?.consumables) ? part.jobCardItemOperation?.consumables.map((consumable: any) => ({\n // // id: consumable.id,\n // // quantity: consumable.quantity,\n // // consumable: {\n // // id: consumable.consumable.id,\n // // code: consumable.consumable.code,\n // // partNumber: consumable.consumable.partNumber,\n // // },\n // // selected: consumable.selected,\n // // ewarrantyCode: consumable.ewarrantyCode,\n // // })) : [],\n // isKitComplete: part2.jobCardItemOperation?.isKitComplete,\n // useKitPart: part2.jobCardItemOperation?.useKitPart,\n // dmsId: part2.jobCardItemOperation?.dmsId,\n // srt: part2.jobCardItemOperation?.srt,\n // isDefault: part2.jobCardItemOperation?.isDefault,\n // lastUpdatedTimestamp: part2.jobCardItemOperation?.lastUpdatedTimestamp,\n // lastUpdatedFields:part2.jobCardItemOperation?.lastUpdatedFields,\n // lastSyncTimestamp: part2.jobCardItemOperation?.lastSyncTimestamp,\n // version: this.mapVersionField(part2.jobCardItemOperation?.version),\n // },\n pickupDate: part.pickupDate,\n tobereturned: part.toBeReturned,\n compulsory: part.compulsory,\n price: part.price,\n cost: part.cost,\n selected: part.selected,\n quantityInStock: part.quantityInStock,\n quantityOnOrder: part.quantityOnOrder,\n quantityInTransit: part.quantityInTransit,\n jobcardItemOperationPartLocationList: (part?.jobcardItemOperationPartLocationList && Array.isArray(part?.jobcardItemOperationPartLocationList)) ? part?.jobcardItemOperationPartLocationList.map((jiopll: any) => ({\n version: this.mapVersionField(jiopll.version),\n id: jiopll.id,\n locationId: jiopll.locationId,\n quantityInStock: jiopll.quantityInStock,\n quantityOnOrder: jiopll.quantityOnOrder,\n quantityInTransit: jiopll.quantityInTransit,\n locationName: jiopll.locationName,\n siteName: jiopll.siteName,\n })) : [],\n ewarrantyCode: part.ewarrantyCode,\n })): [],\n consumables: Array.isArray(jiopPart.jobCardItemOperation?.consumables) ? jiopPart.jobCardItemOperation?.consumables.map((consumable: any) => ({\n id: consumable.id,\n quantity: consumable.quantity,\n consumable: consumable.consumable ? {\n id: consumable.consumable.id,\n code: consumable.consumable.code,\n partNumber: consumable.consumable.partNumber,\n }: undefined,\n selected: consumable.selected,\n ewarrantyCode: consumable.ewarrantyCode,\n })) : [],\n isKitComplete: jiopPart.jobCardItemOperation?.isKitComplete,\n useKitPart: jiopPart.jobCardItemOperation?.useKitPart,\n dmsId: jiopPart.jobCardItemOperation?.dmsId,\n srt: jiopPart.jobCardItemOperation?.srt,\n isDefault: jiopPart.jobCardItemOperation?.isDefault,\n lastUpdatedTimestamp: jiopPart.jobCardItemOperation?.lastUpdatedTimestamp,\n lastUpdatedFields:jiopPart.jobCardItemOperation?.lastUpdatedFields,\n lastSyncTimestamp: jiopPart.jobCardItemOperation?.lastSyncTimestamp,\n // version: this.mapVersionField(jiopPart.jobCardItemOperation?.version),\n },\n pickupDate: jiopPart.pickupDate,\n tobereturned: jiopPart.toBeReturned,\n compulsory: part.compulsory,\n price: part.price,\n cost: part.cost,\n selected: part.selected,\n quantityInStock: part.quantityInStock,\n quantityOnOrder: part.quantityOnOrder,\n quantityInTransit: part.quantityInTransit,\n jobcardItemOperationPartLocationList: (part?.jobcardItemOperationPartLocationList && Array.isArray(part?.jobcardItemOperationPartLocationList)) ? part?.jobcardItemOperationPartLocationList.map((jiopll: any) => ({\n version: this.mapVersionField(jiopll.version),\n id: jiopll.id,\n locationId: jiopll.locationId,\n quantityInStock: jiopll.quantityInStock,\n quantityOnOrder: jiopll.quantityOnOrder,\n quantityInTransit: jiopll.quantityInTransit,\n locationName: jiopll.locationName,\n siteName: jiopll.siteName,\n })) : [],\n ewarrantyCode: jiopPart.ewarrantyCode,\n })): [],\n consumables: Array.isArray(part.jobCardItemOperation?.consumables) ? part.jobCardItemOperation?.consumables.map((consumable: any) => ({\n id: consumable.id,\n quantity: consumable.quantity,\n consumable: consumable.consumable ?{\n id: consumable.consumable.id,\n code: consumable.consumable.code,\n partNumber: consumable.consumable.partNumber,\n }: undefined,\n selected: consumable.selected,\n ewarrantyCode: consumable.ewarrantyCode,\n })) : [], isKitComplete: part.jobCardItemOperation?.isKitComplete,\n useKitPart: part.jobCardItemOperation?.useKitPart,\n dmsId: part.jobCardItemOperation?.dmsId,\n srt: part.jobCardItemOperation?.srt,\n isDefault: part.jobCardItemOperation?.isDefault,\n lastUpdatedTimestamp: part.jobCardItemOperation?.lastUpdatedTimestamp,\n lastUpdatedFields:part.jobCardItemOperation?.lastUpdatedFields,\n lastSyncTimestamp: part.jobCardItemOperation?.lastSyncTimestamp,\n // version: this.mapVersionField(part.jobCardItemOperation?.version),\n },\n // absent field in appointmentInCreation\n // jobCardItemOperation: JobcardItemOperationDto,\n pickupDate: part.pickupDate,\n tobereturned: part.toBeReturned,\n compulsory: part.compulsory,\n price: part.price,\n cost: part.cost,\n selected: part.selected,\n // absent field in appointmentInCreation\n // addOnStatus: string,\n quantityInStock: part.quantityInStock,\n quantityOnOrder: part.quantityOnOrder,\n quantityInTransit: part.quantityInTransit,\n // absent field in appointmentInCreation\n // dmsId: string,\n jobcardItemOperationPartLocationList: (part?.jobcardItemOperationPartLocationList && Array.isArray(part?.jobcardItemOperationPartLocationList)) ? part?.jobcardItemOperationPartLocationList.map((jiopll: any) => ({\n version: this.mapVersionField(jiopll.version),\n id: jiopll.id,\n locationId: jiopll.locationId,\n // absent field in appointmentInCreation\n // jobcardItemOperationPart: JobcardItemOperationPartNumber,\n quantityInStock: jiopll.quantityInStock,\n quantityOnOrder: jiopll.quantityOnOrder,\n quantityInTransit: jiopll.quantityInTransit,\n locationName: jiopll.locationName,\n siteName: jiopll.siteName,\n })) : [],\n ewarrantyCode: part.ewarrantyCode,\n })): [],\n consumables: Array.isArray(operation?.consumables) ? operation?.consumables.map((consumable: any) => ({\n id: consumable.id,\n quantity: consumable.quantity,\n consumable: consumable.consumable ? {\n id: consumable.consumable.id,\n // absent field in appointmentInCreation\n // workshopId: consumable.consumable.,\n code: consumable.consumable.code,\n // absent field in appointmentInCreation\n // description: consumable.consumable.,\n partNumber: consumable.consumable.partNumber,\n // absent field in appointmentInCreation\n // selected: consumable.consumable.,\n }: undefined,\n // absent field in appointmentInCreation\n // compulsory: consumable.,\n // price: consumable.,\n selected: consumable.selected,\n ewarrantyCode: consumable.ewarrantyCode,\n })) : [],\n isKitComplete: operation.isKitComplete,\n useKitPart: operation.useKitPart,\n // absent field in appointmentInCreation\n // dmsId: operation.\n srt: operation.srt,\n isDefault: operation.isDefault,\n version: this.mapVersionField(operation.version),\n })) : [],\n extraOperations: (item.extraOperations && item.extraOperations && Array.isArray(item.extraOperations)) ? item.extraOperations.map((exo: ExtraOperation) => ({\n id: exo.id,\n // typeLabel: exo.\n type: exo.type ? ((\n exo.type === 'all' ||\n exo.type === 'material' ||\n exo.type === 'extraCharges' ||\n exo.type === 'sublet' ||\n exo.type === 'travel' ||\n exo.type === 'freight' ||\n exo.type === 'fictitious_material' ||\n exo.type === 'fm_antifreeze' ||\n exo.type === 'fm_miscellaneous' ||\n exo.type === 'fm_oil' ||\n exo.type === 'fm_refrigerant' ||\n exo.type === 'fm_tyre'\n ) ? exo.type : null) : null,\n description: exo.description,\n code: exo.code,\n supplierName: exo.supplierName,\n level: exo.level,\n distance: exo.distance,\n amount: exo.amount,\n compulsory: exo.compulsory,\n selected: exo.selected,\n dmsId: exo.dmsId,\n invoiceNumber: exo.invoiceNumber,\n manufacturer: exo.manufacturer,\n quantity: exo.quantity,\n deleted: exo.deleted,\n active: exo.active,\n version: this.mapVersionField(exo.version),\n })) : [],\n jobcardItemAttachments: (item?.jobcardItemAttachmentsArray && Array.isArray(item?.jobcardItemAttachmentsArray)) ? item?.jobcardItemAttachmentsArray.map((jiaa: any) => ({\n id: jiaa.id,\n url: jiaa.url,\n type: jiaa.type,\n year: jiaa.year,\n jobOrder: jiaa.jobOrder,\n filename: jiaa.filename,\n sapCode: jiaa.sapCode,\n filesize: jiaa.filesize,\n creationDate: jiaa.creationDate,\n reason: jiaa.reason,\n isDeleted: jiaa.isDeleted,\n isSapOk: jiaa.isSapOk,\n description: jiaa.description,\n workshopUserId: jiaa.workshopUserId,\n })) : [],\n jobcardItemStatus: (item?.jobcardItemStatus && Array.isArray(item?.jobcardItemStatus)) ? item?.jobcardItemStatus.map((jis: any) => ({\n version: this.mapVersionField(jis.version),\n id: jis.id,\n status: jis.status,\n time: jis.time,\n endTime: jis.endTime,\n duration: jis.duration,\n clockingStatus: jis.clockingStatus && (jis.clockingStatus.toString() !=='') ? jis.clockingStatus : null,\n jobcardItemId: jis.jobcardItemId,\n workshopUserId: jis.workshopUserId,\n reason: jis.reason,\n otherReason: jis.otherReason,\n technicianFirstName: jis.technicianFirstName,\n technicianLastName: jis.technicianLastName,\n dmsId: jis.dmsId,\n // absent field in appointmentInCreation\n // hasError: jis.,\n // errorReason: jis.,\n // activityId: jis.,\n // appointmentId: jis.,\n deleted: jis.deleted,\n })) : [],\n deferred: item.deferred,\n isExtraActivity: item.isExtraActivity,\n isCustomerAgreed: item.isCustomerAgreed,\n visible: item.visible,\n failureCode: item.failureCode,\n failureDescription: item.failureDescription,\n supplierCode: item.supplierCode,\n defectCode: item.defectCode,\n failureSeverity: item.failureSeverity,\n warrantyCoverage: item.warrantyCoverage,\n warrantyType: item.warrantyType,\n deleted: item.deleted,\n paymentTypeId: item.paymentTypeId,\n paymentSubTypeId: item.paymentSubTypeId,\n paymentSubType2Id: item.paymentSubType2Id,\n paymentSubType3Id: item.paymentSubType3Id,\n authorizerName: item.authorizerName,\n serviceParticipation: item.serviceParticipation,\n type: item.type,\n causalPartId: item.causalPartId,\n causalPartCode: item.causalPartCode,\n startDate: item.startDate,\n discountTypeId: item.discountTypeId,\n workshopBayId: item.workshopBayId,\n checklistInstances: this.mapChecklistInstances(item?.checklistInstances),\n // checklistInstances: (item?.checklistInstances && Array.isArray(item?.checklistInstances)) ? item?.checklistInstances.map((ci: any) => ({\n // id: ci.id,\n // summaryUrl: ci.summaryUrl,\n // content: ci.content,\n // appointmentId: ci.appointmentId,\n // checklistTemplateId: ci.checklistTemplateId,\n // checklistTemplateTitle: ci.checklistTemplateTitle,\n // type: ci.type,\n // workshopUserId: ci.workshopUserId,\n // checkListResult: (ci?.checkListResult && Array.isArray(ci?.checkListResult)) ? ci?.checkListResult.map((cr: any)=> ({\n // id: cr.id,\n // itemId: cr.itemId,\n // commentResult: cr.commentResult,\n // resultValue: cr.resultValue,\n // timeResult: cr.timeResult,\n // checkListResultAttachment: (cr?.checkListResultAttachment && Array.isArray(cr?.checkListResultAttachment)) ? cr?.checkListResultAttachment.map((cra: any)=>({\n // id: cra.id,\n // url: cra.url,\n // type: cra.type,\n // year: cra.year,\n // jobOrder: cra.jobOrder,\n // filename: cra.filename,\n // sapCode: cra.sapCode,\n // size: cra.size,\n // reason: cra.reason,\n // isDeleted: cra.isDeleted,\n // isSapOk: cra.isSapOk,\n // })) : [],\n // // absent field in appointmentInCreation\n // // checklistInstance: ChecklistInstanceDtoNumber,\n // version: this.mapVersionField(ci.version),\n // })) : [],\n // jobcardItemId: ci.jobcardItemId,\n // submitted: ci.submitted,\n // completionDate: ci.completionDate,\n // appointmentSignature: {\n // id: ci?.checklistSignature?.id,\n // url: ci?.checklistSignature?.url,\n // secretKey: ci?.checklistSignature?.secretKey,\n // secretIV: ci?.checklistSignature?.secretIV,\n // phase: ci?.checklistSignature?.phase,\n // time: ci?.checklistSignature?.time,\n // customerNotPresent: ci?.checklistSignature?.customerNotPresent,\n // appointmentId: ci?.checklistSignature?.appointmentId,\n // customerCompanyUserId: ci?.checklistSignature?.customerCompanyUserId,\n // signatory: ci?.checklistSignature?.signatory,\n // workshopUserId: ci?.checklistSignature?.workshopUserId,\n // isTechnician: ci?.checklistSignature?.isTechnician,\n // version: this.mapVersionField(ci?.checklistSignature?.version),\n // },\n // version: this.mapVersionField(ci?.version),\n // })) : [],\n officialTime: item.officialTime,\n jobcardItemSpells: (item?.jobcardItemSpells && Array.isArray(item?.jobcardItemSpells)) ? item?.jobcardItemSpells.map((jis: any)=> ({\n version: this.mapVersionField(jis.version),\n id: jis.id,\n // absent field in appointmentInCreation\n // name: jis.,\n weight: jis.weight,\n estimatedDuration: jis.estimatedDuration,\n startDate: jis.startDate,\n workshopBayId: jis.workshopBayId,\n technicians: this.mapTechnicians(jis?.technicians),\n })) : [],\n mpInfo: item.mpInfo ?{\n planId: item.mpInfo.planId,\n description: item.mpInfo.description,\n couponOver: item.mpInfo.couponOver,\n couponSoon: item.mpInfo.couponSoon,\n couponSelected: item.mpInfo.couponSelected,\n couponStatus: item.mpInfo.couponStatus,\n couponModifiable: item.mpInfo.couponModifiable,\n couponSavable: item.mpInfo.couponSavable,\n couponIntervalComment: item.mpInfo.couponIntervalComment,\n overdueValues: (item.mpInfo && item.mpInfo?.overdueValues && Array.isArray(item.mpInfo?.overdueValues)) ? item.mpInfo?.overdueValues.map((ov: MpInformationDelta) => ({\n unit: ov.unit,\n value: ov.value,\n })) : [],\n soonValues: (item.mpInfo && item.mpInfo?.soonValues && Array.isArray(item.mpInfo?.soonValues)) ? item.mpInfo?.soonValues.map((sv: MpInformationDelta) => ({\n unit: sv.unit,\n value: sv.value,\n })) : [],\n }: null,\n couponStatus: item.couponStatus,\n activityValidated: item.activityValidated,\n agreementCustomerName: item.agreementCustomerName,\n jobcardItemCustomerStatus: (item.jobcardItemCustomerStatus && Array.isArray(item.jobcardItemCustomerStatus)) ? item.jobcardItemCustomerStatus.map((jics: JobcardItemCustomerStatus) => ({\n id: jics.id,\n jobcardItemId: jics.jobcardItemId,\n action: jics.action ? ((\n jics.action === 'approve' ||\n jics.action === 'decline' ||\n jics.action === 'autoApv' ||\n jics.action === 'autoDec'\n ) ? jics.action : null) : null,\n actionDateTime: jics.actionDateTime,\n actionPerformedBy: jics.actionPerformedBy,\n actionType: jics.actionType ? ((\n jics.actionType === 'online' ||\n jics.actionType === 'offline' ||\n jics.actionType === 'recep' ||\n jics.actionType === 'wty'\n ) ? jics.actionType : null): null,\n })) : [],\n version: this.mapVersionField(item?.version),\n cause: item.cause,\n correction: item.correction,\n generalNote: item.generalNote,\n internalNotes: item.internalNotes,\n })) : [];\n return result;\n }\n mapTechnicians(technicians: any) {\n const result = Array.isArray(technicians) ? technicians.map((tech: any)=> ({\n id: tech.id,\n // THE BE IS BACK ONLY ID AND WE ENHANCE THE ID LINK\n linkId: tech.id,\n workshopUserId: tech.workshopUserId,\n estimatedDuration: tech.estimatedDuration,\n startDate: tech.startDate,\n isDeleted: tech.isDeleted,\n spellLinkId: tech.spellLinkId,\n firstName: tech.firstName,\n lastName: tech.lastName,\n })) : [];\n return result;\n }\n mapAppointmentDtoToCustomerAppointmentDtoFromAppoinmentDto(appointmentInCreation: AppointmentDto): CustomerAppointmentDto {\n return {\n temporaryId: this.newAppointmentService.temporaryId ? this.newAppointmentService.temporaryId : null,\n version: this.mapVersionField(appointmentInCreation?.version),\n appointmentType: 'CUSTOMER',\n workshopUserId: appointmentInCreation.workshopUserId,\n workshopId: appointmentInCreation.workshopId,\n customerCompany: {\n id: appointmentInCreation.customerCompany.id,\n dmsId: appointmentInCreation.customerCompany.dmsId,\n displayedName: appointmentInCreation.customerCompany.displayedName,\n name: appointmentInCreation.customerCompany.name,\n email: appointmentInCreation.customerCompany.email,\n phone: appointmentInCreation.customerCompany.phone,\n mobilePhone: appointmentInCreation.customerCompany.mobilePhone,\n cpdContactDetails: Array.isArray(appointmentInCreation.customerCompany && appointmentInCreation.customerCompany.cpdContactDetails) ? appointmentInCreation.customerCompany.cpdContactDetails.map((cpd: any) => ({\n id: cpd.id ? cpd.id : null,\n // absent field in appointmentInCreation\n // customerCompanyId: null,\n customerName: cpd.customerName ? cpd.customerName : null,\n cityName: cpd.cityName ? cpd.cityName : null,\n countryCode: cpd.countryCode ? cpd.countryCode : null,\n address: cpd.address ? cpd.address : null,\n zipCode: cpd.zipCode ? cpd.zipCode : null,\n })) : [],\n },\n status:{\n id: appointmentInCreation.status.id,\n customerCompanyUser: (appointmentInCreation.status && appointmentInCreation.status.customerCompanyUser) ? {\n id: appointmentInCreation.status.customerCompanyUser.id,\n lastName: appointmentInCreation.status.customerCompanyUser.lastName,\n email: appointmentInCreation.status.customerCompanyUser.email,\n phone: appointmentInCreation.status.customerCompanyUser.phone,\n mobilePhone: appointmentInCreation.status.customerCompanyUser.mobilePhone,\n } : null,\n workshopUserId: appointmentInCreation.status?.workshopUser?.id,\n time: appointmentInCreation.status.time,\n status: appointmentInCreation.status.status,\n version: this.mapVersionField(appointmentInCreation?.status?.version),\n },\n driver: (appointmentInCreation.driver && (appointmentInCreation.driver.customerCompanyId || appointmentInCreation.driver.lastName || appointmentInCreation.driver.email || appointmentInCreation.driver.mobilePhone || appointmentInCreation.driver.phone)) ? {\n id: appointmentInCreation.driver.id ? appointmentInCreation.driver.id : -1,\n customerCompanyId: appointmentInCreation.driver.customerCompanyId,\n lastName: appointmentInCreation.driver.lastName,\n email: appointmentInCreation.driver.email,\n mobilePhone: appointmentInCreation.driver.mobilePhone,\n phone: appointmentInCreation.driver.phone,\n } : null,\n deliveryDate: appointmentInCreation.deliveryDate,\n engineHours: appointmentInCreation.engineHours,\n mileage: appointmentInCreation.mileage,\n priorityTypeId: appointmentInCreation.priorityType?.id,\n jobcard: {\n id: appointmentInCreation.jobcard.id,\n dmsJobOrder: appointmentInCreation.jobcard.dmsJobOrder,\n failureDate: appointmentInCreation.jobcard.failureDate,\n customerOrderNumber: appointmentInCreation.jobcard.customerOrderNumber,\n ansDossier: appointmentInCreation.jobcard.ansDossier,\n jobcardItems: this.mapJobcardItemsShortDto(appointmentInCreation?.jobcard?.jobcardItems),\n jobcardItemDeleted: this.mapJobcardItemsDeleted(appointmentInCreation?.jobcard?.jobcardItemDeleted),\n estimatedDuration: appointmentInCreation.jobcard.estimatedDuration,\n version: this.mapVersionField(appointmentInCreation?.jobcard?.version),\n dmsToStrClaim: appointmentInCreation.jobcard.dmsToStrClaim,\n dmsOrderType: appointmentInCreation.jobcard.dmsOrderType,\n djcOrderType: appointmentInCreation.jobcard.djcOrderType,\n jobcardTravels: appointmentInCreation.jobcard.jobcardTravels,\n jobcardAttachmentDtos: appointmentInCreation.jobcard.jobcardAttachmentDtos,\n lastUpdatedTimestamp: appointmentInCreation.jobcard.lastUpdatedTimestamp,\n lastUpdatedFields: appointmentInCreation.jobcard.lastUpdatedFields,\n lastSyncTimestamp: appointmentInCreation.jobcard.lastSyncTimestamp,\n jobcardEngineHours: appointmentInCreation.jobcard.jobcardEngineHours,\n jobcardMileages: appointmentInCreation.jobcard.jobcardMileages,\n },\n failureEngineHours: appointmentInCreation.failureEngineHours,\n customerNeed: appointmentInCreation.customerNeed,\n isBreakdownAppt: appointmentInCreation.isBreakdownAppt,\n repairAddress: appointmentInCreation.repairAddress,\n unitStatus: appointmentInCreation.unitStatus ? {\n date: appointmentInCreation.unitStatus?.date,\n unitDown: appointmentInCreation.unitStatus?.unitDown,\n version: this.mapVersionField(appointmentInCreation?.unitStatus?.version),\n } : null,\n salesOrganizationId: appointmentInCreation.salesOrganizationId,\n orderTypeHeaderCode: appointmentInCreation.orderTypeHeaderCode,\n checklistInstances: this.mapChecklistInstances(appointmentInCreation?.checklistInstances),\n // checklistInstances: (appointmentInCreation?.checklistInstances && Array.isArray(appointmentInCreation?.checklistInstances)) ? appointmentInCreation?.checklistInstances.map((cin: any) => ({\n // version: (cin.version || cin.version === 0) ? cin.version : null,\n // id: cin.id,\n // summaryUrl: cin.summaryUrl,\n // content: cin.content,\n // appointmentId: cin.appointmentId,\n // checklistTemplateId: cin.checklistTemplateId,\n // checklistTemplateTitle: cin.checklistTemplateTitle,\n // type: cin.type,\n // workshopUserId: cin.workshopUserId,\n // checkListResult: (cin?.checkListResult && Array.isArray(cin?.checkListResult)) ? cin?.checkListResult.map((clr: any) => ({\n // id: clr.id,\n // itemId: clr.itemId,\n // commentResult: clr.commentResult,\n // resultValue: clr.resultValue,\n // timeResult: clr.timeResult,\n // checkListResultAttachment: (clr?.checkListResultAttachment && Array.isArray(clr?.checkListResultAttachment)) ? clr?.checkListResultAttachment.map((clra: any) => ({\n // id: clra.id,\n // url: clra.url,\n // type: clra.type,\n // year: clra.year,\n // jobOrder: clra.jobOrder,\n // filename: clra.filename,\n // sapCode: clra.sapCode,\n // size: clra.size,\n // reason: clra.reason,\n // isDeleted: clra.isDeleted,\n // isSapOk: clra.isSapOk,\n // })) : [],\n // // absent field in appointmentInCreation\n // // checklistInstance: ChecklistInstanceDto,\n // })) : [],\n // jobcardItemId: cin.jobcardItemId,\n // submitted: cin.submitted,\n // completionDate: cin.completionDate,\n // appointmentSignature: {\n // id: cin?.checklistSignature?.id,\n // url: cin?.checklistSignature?.url,\n // secretKey: cin?.checklistSignature?.secretKey,\n // secretIV: cin?.checklistSignature?.secretIV,\n // phase: cin?.checklistSignature?.phase,\n // time: cin?.checklistSignature?.time,\n // customerNotPresent: cin?.checklistSignature?.customerNotPresent,\n // appointmentId: cin?.checklistSignature?.appointmentId,\n // customerCompanyUserId: cin?.checklistSignature?.customerCompanyUserId,\n // signatory: cin?.checklistSignature?.signatory,\n // workshopUserId: cin?.checklistSignature?.workshopUserId,\n // isTechnician: cin?.checklistSignature?.isTechnician,\n // },\n // })) : [],\n types: appointmentInCreation.types,\n onHoldReason: appointmentInCreation.onHoldReason ? {\n id: appointmentInCreation.onHoldReason.id,\n description: appointmentInCreation.onHoldReason.description,\n workshopId: appointmentInCreation.onHoldReason.workshopId,\n isVisible: appointmentInCreation.onHoldReason.isVisible,\n version: this.mapVersionField(appointmentInCreation?.onHoldReason?.version),\n } : undefined,\n cpdAlternateContact: appointmentInCreation.cpdAlternateContact ? {\n id: appointmentInCreation.cpdAlternateContact.id,\n customerName: appointmentInCreation.cpdAlternateContact.customerName,\n cityName: appointmentInCreation.cpdAlternateContact.cityName,\n address: appointmentInCreation.cpdAlternateContact.address,\n countryCode: appointmentInCreation.cpdAlternateContact.countryCode,\n zipCode: appointmentInCreation.cpdAlternateContact.zipCode,\n } : undefined,\n numberOfBales: appointmentInCreation.numberOfBales,\n numberOfAcres: appointmentInCreation.numberOfAcres,\n threshingHours: appointmentInCreation.threshingHours,\n requiredExtraUnits: appointmentInCreation.requiredExtraUnits,\n vehicle: appointmentInCreation.vehicle ? {\n id: appointmentInCreation.vehicle.id,\n workshopId: appointmentInCreation.vehicle.workshopId,\n vin: appointmentInCreation.vehicle.vin,\n brand: appointmentInCreation.vehicle.brand ? {\n id: appointmentInCreation.vehicle.brand.id,\n name: appointmentInCreation.vehicle.brand.name,\n iceCode: appointmentInCreation.vehicle.brand.iceCode,\n } : undefined,\n model: appointmentInCreation.vehicle.model ? {\n id: appointmentInCreation.vehicle.model.id,\n name: appointmentInCreation.vehicle.model.name,\n brand: appointmentInCreation.vehicle.model.brand ? {\n id: appointmentInCreation.vehicle.model.brand.id,\n name: appointmentInCreation.vehicle.model.brand.name,\n iceCode: appointmentInCreation.vehicle.model.brand.iceCode,\n } : undefined,\n } : undefined,\n plate: appointmentInCreation.vehicle.plate,\n bm: appointmentInCreation.vehicle.bm,\n vcb: appointmentInCreation.vehicle.vcb,\n vp: appointmentInCreation.vehicle.vp,\n // wtyStartDate: appointmentInCreation.vehicle.warrantyStartDate,\n customerCompanyId: appointmentInCreation.vehicle.customerCompanyId,\n annualInspectionDate: appointmentInCreation.vehicle.annualInspectionDate,\n tachometerDate: appointmentInCreation.vehicle.tachometerDate,\n isActive: appointmentInCreation.vehicle.isActive,\n customerCompanyName: appointmentInCreation.vehicle.customerCompanyName,\n customerCompanyDisplayedName: appointmentInCreation.vehicle.customerCompanyDisplayedName,\n customerCompanyDmsId: appointmentInCreation.vehicle.customerCompanyDmsId,\n vehicleNote: appointmentInCreation.vehicle.vehicleNote,\n customerCompanyUser: appointmentInCreation.vehicle.customerCompanyUser ? {\n id: appointmentInCreation.vehicle.customerCompanyUser.id,\n customerCompanyId: appointmentInCreation.vehicle.customerCompanyUser.customerCompanyId,\n firstName: appointmentInCreation.vehicle.customerCompanyUser.firstName,\n lastName: appointmentInCreation.vehicle.customerCompanyUser.lastName,\n email: appointmentInCreation.vehicle.customerCompanyUser.email,\n phone: appointmentInCreation.vehicle.customerCompanyUser.phone,\n mobilePhone: appointmentInCreation.vehicle.customerCompanyUser.mobilePhone,\n } : undefined,\n invoiceDate: appointmentInCreation.vehicle.invoiceDate,\n stockNumber: appointmentInCreation.vehicle.stockNumber,\n latestUpdatedGeoStoreTime: appointmentInCreation.vehicle.latestUpdatedGeoStoreTime,\n latitude: appointmentInCreation.vehicle.latitude,\n longitude: appointmentInCreation.vehicle.longitude,\n lastKnownEngineHours: appointmentInCreation.vehicle.lastKnownEngineHours,\n lastKnownMileage: appointmentInCreation.vehicle.lastKnownMileage,\n lastKnownBales: appointmentInCreation.vehicle.lastKnownBales,\n lastKnownAcres: appointmentInCreation.vehicle.lastKnownAcres,\n lastKnownThreshingHours: appointmentInCreation.vehicle.lastKnownThreshingHours,\n epartsBrandName: appointmentInCreation.vehicle.epartsBrandName,\n dmsId: appointmentInCreation.vehicle.dmsId,\n } : undefined,\n };\n }\n // CREATE/UPDATE BOOKING\n mapAppointmentInCreationDtoToBookingAppointmentDto(appointmentInCreation: AppointmentInCreation): BookingAppointmentDto {\n return {\n temporaryId: this.newAppointmentService?.temporaryId ? this.newAppointmentService?.temporaryId : null,\n appointmentType: 'BOOKING',\n workshopBayId: appointmentInCreation.workshopBayId,\n deliveryDate: appointmentInCreation.deliveryDate,\n vehicleCourtesyBookingDto: appointmentInCreation.vehicleCourtesyBookingDto ?{\n id: appointmentInCreation?.vehicleCourtesyBookingDto?.id,\n startDate: appointmentInCreation?.vehicleCourtesyBookingDto?.startDate,\n endDate: appointmentInCreation?.vehicleCourtesyBookingDto?.endDate,\n reason: appointmentInCreation?.vehicleCourtesyBookingDto?.reason,\n vehicleCourtesyId:appointmentInCreation?.vehicleCourtesyBookingDto?.vehicleCourtesy?.id,\n version: this.mapVersionField(appointmentInCreation?.vehicleCourtesyBookingDto?.version),\n } : null,\n receptionDate: appointmentInCreation.receptionDate,\n jobcard: {\n id: appointmentInCreation.jobcard.id,\n dmsJobOrder: appointmentInCreation.jobcard.dmsJobOrder,\n failureDate: appointmentInCreation.jobcard.failureDate,\n customerOrderNumber: appointmentInCreation.jobcard.customerOrderNumber,\n ansDossier: appointmentInCreation.jobcard.ansDossier,\n jobcardItems: this.mapJobcardItemsShortDto(appointmentInCreation?.jobcard?.jobcardItems),\n jobcardItemDeleted: this.mapJobcardItemsDeleted(appointmentInCreation?.jobcard?.jobcardItemDeleted),\n // jobcardItems: (appointmentInCreation.jobcard.jobcardItems && Array.isArray(appointmentInCreation.jobcard.jobcardItems)) ? appointmentInCreation?.jobcard?.jobcardItems.map((item: any) => ({\n // version: this.mapVersionField(item?.version),\n // id: item.id,\n // name: item.name,\n // deferredDate: item.deferredDate,\n // weight: item.weight,\n // operations: (item.operations && Array.isArray(item.operations)) ? item.operations.map((operation: any) => ({\n // id: operation.id,\n // code: operation.code,\n // label: operation.label,\n // type: operation.type,\n // // absent field in appointmentInCreation\n // // description: operation.\n // weight: operation.weight,\n // officialTime: operation.officialTime,\n // durationTime: operation.durationTime,\n // compulsory: operation.compulsory,\n // selected: operation.selected,\n // price: operation.price,\n // manufacturer: operation.manufacturer,\n // // absent field in appointmentInCreation\n // // addOnStatus: operation.\n // parts: Array.isArray(operation.parts) ? operation.parts.map((part: any) => ({\n // id: part.id,\n // quantity: part.quantity,\n // part: {\n // id: part.part.id,\n // workshopId: part.part.workshopId,\n // code: part.part.code,\n // description: part.part.description,\n // partSuperseedingId: part.part.partSuperseedingId,\n // // absent field in appointmentInCreation\n // // partDetailId: number,\n // quantity: part.part.quantity,\n // // absent fields in appointmentInCreation\n // // booking: string,\n // // visitDate: string,\n // // vehPlate: string,\n // // customer: string,\n // // activity: string,\n // manufacturer: part.part.manufacturer,\n // isKit: part.part.isKit,\n // kitParts: (part.part?.kitPart && Array.isArray(part.part.kitPart)) ? part.part?.kitPart.map((k: any) => ({\n // compKitCode: k.compKitCode,\n // compPnCode: k.compPnCode,\n // compPnLabel: k.compPnLabel,\n // compPnQty: k.compPnQty,\n // compDate: k.compDate,\n // })) : [],\n // quantityInStock: part.part.quantityInStock,\n // quantityOnOrder: part.part.quantityOnOrder,\n // quantityInTransit: part.part.quantityInTransit,\n // // absent field in appointmentInCreation\n // // jobcardItemOperationPartLocationList: Array,\n // // absent field in appointmentInCreation\n // // price: number,\n // homeLocation: part.part.isHomeLocation,\n // },\n // // absent field in appointmentInCreation\n // // jobCardItemOperation: JobcardItemOperationDto,\n // pickupDate: part.pickupDate,\n // tobereturned: part.toBeReturned,\n // compulsory: part.compulsory,\n // price: part.price,\n // cost: part.cost,\n // selected: part.selected,\n // // absent field in appointmentInCreation\n // // addOnStatus: string,\n // quantityInStock: part.quantityInStock,\n // quantityOnOrder: part.quantityOnOrder,\n // quantityInTransit: part.quantityInTransit,\n // // absent field in appointmentInCreation\n // // dmsId: string,\n // jobcardItemOperationPartLocationList: (part?.jobcardItemOperationPartLocationList && Array.isArray(part?.jobcardItemOperationPartLocationList)) ? part?.jobcardItemOperationPartLocationList.map((jiopll: any) => ({\n // id: jiopll.id,\n // locationId: jiopll.locationId,\n // // absent field in appointmentInCreation\n // // jobcardItemOperationPart: JobcardItemOperationPartNumber,\n // quantityInStock: jiopll.quantityInStock,\n // quantityOnOrder: jiopll.quantityOnOrder,\n // quantityInTransit: jiopll.quantityInTransit,\n // locationName: jiopll.locationName,\n // siteName: jiopll.siteName,\n // })) : [],\n // ewarrantyCode: part.ewarrantyCode,\n // })): [],\n // consumables: Array.isArray(operation?.consumables) ? operation?.consumables.map((consumable: any) => ({\n // id: consumable.id,\n // quantity: consumable.quantity,\n // consumable: {\n // id: consumable.consumable.id,\n // // absent field in appointmentInCreation\n // // workshopId: consumable.consumable.,\n // code: consumable.consumable.code,\n // // absent field in appointmentInCreation\n // // description: consumable.consumable.,\n // partNumber: consumable.consumable.partNumber,\n // // absent field in appointmentInCreation\n // // selected: consumable.consumable.,\n // },\n // // absent field in appointmentInCreation\n // // compulsory: consumable.,\n // // price: consumable.,\n // selected: consumable.selected,\n // ewarrantyCode: consumable.ewarrantyCode,\n // })) : [],\n // isKitComplete: operation.isKitComplete,\n // useKitPart: operation.useKitPart,\n // // absent field in appointmentInCreation\n // // dmsId: operation.\n // srt: operation.srt,\n // isDefault: operation.isDefault,\n // version: this.mapVersionField(operation?.version),\n // })) : [],\n // extraOperations: (item.extraOperations && item.extraOperations && Array.isArray(item.extraOperations)) ? item.extraOperations.map((exo: ExtraOperation) => ({\n // id: exo.id,\n // // typeLabel: exo.\n // type: exo.type ? ((\n // exo.type === 'all' ||\n // exo.type === 'material' ||\n // exo.type === 'extraCharges' ||\n // exo.type === 'sublet' ||\n // exo.type === 'travel' ||\n // exo.type === 'freight' ||\n // exo.type === 'fictitious_material' ||\n // exo.type === 'fm_antifreeze' ||\n // exo.type === 'fm_miscellaneous' ||\n // exo.type === 'fm_oil' ||\n // exo.type === 'fm_refrigerant' ||\n // exo.type === 'fm_tyre'\n // ) ? exo.type : null) : null,\n // description: exo.description,\n // code: exo.code,\n // supplierName: exo.supplierName,\n // level: exo.level,\n // distance: exo.distance,\n // amount: exo.amount,\n // compulsory: exo.compulsory,\n // selected: exo.selected,\n // dmsId: exo.dmsId,\n // invoiceNumber: exo.invoiceNumber,\n // manufacturer: exo.manufacturer,\n // quantity: exo.quantity,\n // deleted: exo.deleted,\n // active: exo.active,\n // version: this.mapVersionField(exo?.version),\n // })) : [],\n // jobcardItemAttachments: (item?.jobcardItemAttachmentsArray && Array.isArray(item?.jobcardItemAttachmentsArray)) ? item?.jobcardItemAttachmentsArray.map((jiaa: any) => ({\n // id: jiaa.id,\n // url: jiaa.url,\n // type: jiaa.type,\n // year: jiaa.year,\n // jobOrder: jiaa.jobOrder,\n // filename: jiaa.filename,\n // sapCode: jiaa.sapCode,\n // filesize: jiaa.filesize,\n // creationDate: jiaa.creationDate,\n // reason: jiaa.reason,\n // isDeleted: jiaa.isDeleted,\n // isSapOk: jiaa.isSapOk,\n // description: jiaa.description,\n // workshopUserId: jiaa.workshopUserId,\n // })) : [],\n // jobcardItemStatus: (item?.jobcardItemStatus && Array.isArray(item?.jobcardItemStatus)) ? item?.jobcardItemStatus.map((jis: any) => ({\n // id: jis.id,\n // status: jis.status,\n // time: jis.time,\n // endTime: jis.endTime,\n // duration: jis.duration,\n // clockingStatus: jis.clockingStatus,\n // jobcardItemId: jis.jobcardItemId,\n // workshopUserId: jis.workshopUserId,\n // reason: jis.reason,\n // otherReason: jis.otherReason,\n // technicianFirstName: jis.technicianFirstName,\n // technicianLastName: jis.technicianLastName,\n // dmsId: jis.dmsId,\n // // absent field in appointmentInCreation\n // // hasError: jis.,\n // // errorReason: jis.,\n // // activityId: jis.,\n // // appointmentId: jis.,\n // deleted: jis.deleted,\n // })) : [],\n // deferred: item.deferred,\n // isExtraActivity: item.isExtraActivity,\n // isCustomerAgreed: item.isCustomerAgreed,\n // visible: item.visible,\n // failureCode: item.failureCode,\n // failureDescription: item.failureDescription,\n // supplierCode: item.supplierCode,\n // defectCode: item.defectCode,\n // failureSeverity: item.failureSeverity,\n // warrantyCoverage: item.warrantyCoverage,\n // warrantyType: item.warrantyType,\n // deleted: item.deleted,\n // paymentTypeId: item.paymentTypeId,\n // paymentSubTypeId: item.paymentSubTypeId,\n // paymentSubType2Id: item.paymentSubType2Id,\n // paymentSubType3Id: item.paymentSubType3Id,\n // authorizerName: item.authorizerName,\n // serviceParticipation: item.serviceParticipation,\n // type: item.type,\n // causalPartId: item.causalPartId,\n // causalPartCode: item.causalPartCode,\n // startDate: item.startDate,\n // discountTypeId: item.discountTypeId,\n // workshopBayId: item.workshopBayId,\n // checklistInstances: this.mapChecklistInstances(item?.checklistInstances),\n // // checklistInstances: (item?.checklistInstances && Array.isArray(item?.checklistInstances)) ? item?.checklistInstances.map((ci: any) => ({\n // // id: ci.id,\n // // summaryUrl: ci.summaryUrl,\n // // content: ci.content,\n // // appointmentId: ci.appointmentId,\n // // checklistTemplateId: ci.checklistTemplateId,\n // // checklistTemplateTitle: ci.checklistTemplateTitle,\n // // type: ci.type,\n // // workshopUserId: ci.workshopUserId,\n // // checkListResult: (ci?.checkListResult && Array.isArray(ci?.checkListResult)) ? ci?.checkListResult.map((cr: any)=> ({\n // // id: cr.id,\n // // itemId: cr.itemId,\n // // commentResult: cr.commentResult,\n // // resultValue: cr.resultValue,\n // // timeResult: cr.timeResult,\n // // checkListResultAttachment: (cr?.checkListResultAttachment && Array.isArray(cr?.checkListResultAttachment)) ? cr?.checkListResultAttachment.map((cra: any)=>({\n // // id: cra.id,\n // // url: cra.url,\n // // type: cra.type,\n // // year: cra.year,\n // // jobOrder: cra.jobOrder,\n // // filename: cra.filename,\n // // sapCode: cra.sapCode,\n // // size: cra.size,\n // // reason: cra.reason,\n // // isDeleted: cra.isDeleted,\n // // isSapOk: cra.isSapOk,\n // // })) : [],\n // // // absent field in appointmentInCreation\n // // // checklistInstance: ChecklistInstanceDtoNumber,\n // // })) : [],\n // // jobcardItemId: ci.jobcardItemId,\n // // submitted: ci.submitted,\n // // completionDate: ci.completionDate,\n // // appointmentSignature: {\n // // id: ci?.checklistSignature?.id,\n // // url: ci?.checklistSignature?.url,\n // // secretKey: ci?.checklistSignature?.secretKey,\n // // secretIV: ci?.checklistSignature?.secretIV,\n // // phase: ci?.checklistSignature?.phase,\n // // time: ci?.checklistSignature?.time,\n // // customerNotPresent: ci?.checklistSignature?.customerNotPresent,\n // // appointmentId: ci?.checklistSignature?.appointmentId,\n // // customerCompanyUserId: ci?.checklistSignature?.customerCompanyUserId,\n // // signatory: ci?.checklistSignature?.signatory,\n // // workshopUserId: ci?.checklistSignature?.workshopUserId,\n // // isTechnician: ci?.checklistSignature?.isTechnician,\n // // },\n // // version: (ci.version || ci.version === 0) ? ci.version : null,\n // // })) : [],\n // officialTime: item.officialTime,\n // jobcardItemSpells: (item?.jobcardItemSpells && Array.isArray(item?.jobcardItemSpells)) ? item?.jobcardItemSpells.map((jis: any)=> ({\n // id: jis.id,\n // // absent field in appointmentInCreation\n // // name: jis.,\n // weight: jis.weight,\n // estimatedDuration: jis.estimatedDuration,\n // startDate: jis.startDate,\n // workshopBayId: jis.workshopBayId,\n // technicians: this.mapTechnicians(jis?.technicians),\n // })) : [],\n // mpInfo: item.mpInfo ?{\n // planId: item.mpInfo.planId,\n // description: item.mpInfo.description,\n // couponOver: item.mpInfo.couponOver,\n // couponSoon: item.mpInfo.couponSoon,\n // couponSelected: item.mpInfo.couponSelected,\n // couponStatus: item.mpInfo.couponStatus,\n // couponModifiable: item.mpInfo.couponModifiable,\n // couponSavable: item.mpInfo.couponSavable,\n // couponIntervalComment: item.mpInfo.couponIntervalComment,\n // overdueValues: (item.mpInfo && item.mpInfo?.overdueValues && Array.isArray(item.mpInfo?.overdueValues)) ? item.mpInfo?.overdueValues.map((ov: MpInformationDelta) => ({\n // unit: ov.unit,\n // value: ov.value,\n // })) : [],\n // soonValues: (item.mpInfo && item.mpInfo?.soonValues && Array.isArray(item.mpInfo?.soonValues)) ? item.mpInfo?.soonValues.map((sv: MpInformationDelta) => ({\n // unit: sv.unit,\n // value: sv.value,\n // })) : [],\n // }: null,\n // couponStatus: item.couponStatus,\n // activityValidated: item.activityValidated,\n // agreementCustomerName: item.agreementCustomerName,\n // jobcardItemCustomerStatus: (item.jobcardItemCustomerStatus && Array.isArray(item.jobcardItemCustomerStatus)) ? item.jobcardItemCustomerStatus.map((jics: JobcardItemCustomerStatus) => ({\n // id: jics.id,\n // jobcardItemId: jics.jobcardItemId,\n // action: jics.action ? ((\n // jics.action === 'approve' ||\n // jics.action === 'decline' ||\n // jics.action === 'autoApv' ||\n // jics.action === 'autoDec'\n // ) ? jics.action : null) : null,\n // actionDateTime: jics.actionDateTime,\n // actionPerformedBy: jics.actionPerformedBy,\n // actionType: jics.actionType ? ((\n // jics.actionType === 'online' ||\n // jics.actionType === 'offline' ||\n // jics.actionType === 'recep' ||\n // jics.actionType === 'wty'\n // ) ? jics.actionType : null): null,\n // })) : [],\n // })) : [],\n estimatedDuration: appointmentInCreation.jobcard.estimatedDuration,\n version: this.mapVersionField(appointmentInCreation?.jobcard?.version),\n dmsToStrClaim: appointmentInCreation.jobcard.dmsToStrClaim,\n dmsOrderType: appointmentInCreation.jobcard.dmsOrderType,\n djcOrderType: appointmentInCreation.jobcard.djcOrderType,\n jobcardTravels: appointmentInCreation.jobcard.jobcardTravels ? this.mapJobcardTravelToJobcardTravelDto(appointmentInCreation.jobcard.jobcardTravels) : null,\n jobcardAttachmentDtos: (appointmentInCreation.jobcard.jobcardAttachmentDtos && Array.isArray(appointmentInCreation.jobcard.jobcardAttachmentDtos)) ? appointmentInCreation.jobcard.jobcardAttachmentDtos.map((jad: JobcardAttachmentDto) => ({\n id: jad.id,\n type: jad.type,\n url: jad.url,\n year: jad.year,\n filename: jad.filename,\n jobOrder: jad.jobOrder,\n sapCode: jad.sapCode,\n filesize: jad.filesize,\n creationDate: jad.creationDate,\n isDeleted: jad.isDeleted,\n isSapOk: jad.isSapOk,\n reason: jad.reason,\n description: jad.description,\n workshopUserId: jad.workshopUserId,\n })) : [],\n jobcardEngineHours: this.mapjobcardAttachmentToJobcardAttachmentDto(appointmentInCreation.jobcard.jobcardEngineHours),\n jobcardMileages: this.mapjobcardAttachmentToJobcardAttachmentDto(appointmentInCreation.jobcard.jobcardMileages),\n // MANCANO IN APPOINTMENT.JOBCARD\n // lastUpdatedTimestamp: appointmentInCreation.jobcard.\n // lastUpdatedFields: appointmentInCreation.jobcard.\n // lastSyncTimestamp: appointmentInCreation.jobcard.\n },\n version: this.mapVersionField(appointmentInCreation?.version),\n checklistInstances: this.mapChecklistInstances(appointmentInCreation?.checklistInstances)\n };\n }\n\n mapAppointmentDtoToBookingAppointmentDto(appointmentInCreation: AppointmentDto): BookingAppointmentDto {\n return {\n temporaryId: this.newAppointmentService?.temporaryId ? this.newAppointmentService?.temporaryId : null,\n version: this.mapVersionField(appointmentInCreation?.version),\n appointmentType: 'BOOKING',\n workshopBayId: appointmentInCreation.workshopBayId,\n deliveryDate: appointmentInCreation.deliveryDate,\n vehicleCourtesyBookingDto: appointmentInCreation.vehicleCourtesyBookingDto ?{\n id: appointmentInCreation?.vehicleCourtesyBookingDto?.id,\n startDate: appointmentInCreation?.vehicleCourtesyBookingDto?.startDate,\n endDate: appointmentInCreation?.vehicleCourtesyBookingDto?.endDate,\n reason: appointmentInCreation?.vehicleCourtesyBookingDto?.reason,\n vehicleCourtesyId:appointmentInCreation?.vehicleCourtesyBookingDto?.vehicleCourtesy?.id,\n version: this.mapVersionField(appointmentInCreation?.vehicleCourtesyBookingDto?.version),\n }: null,\n receptionDate: appointmentInCreation.receptionDate,\n jobcard: {\n id: appointmentInCreation.jobcard.id,\n dmsJobOrder: appointmentInCreation.jobcard.dmsJobOrder,\n failureDate: appointmentInCreation.jobcard.failureDate,\n customerOrderNumber: appointmentInCreation.jobcard.customerOrderNumber,\n ansDossier: appointmentInCreation.jobcard.ansDossier,\n jobcardItems: this.mapJobcardItemsShortDto(appointmentInCreation?.jobcard?.jobcardItems),\n jobcardItemDeleted: this.mapJobcardItemsDeleted(appointmentInCreation?.jobcard?.jobcardItemDeleted),\n jobcardAttachmentDtos: this.mapJobcardItemsAttachments(appointmentInCreation.jobcard?.jobcardAttachmentDtos),\n // jobcardItems: (appointmentInCreation.jobcard.jobcardItems && Array.isArray(appointmentInCreation.jobcard.jobcardItems)) ? appointmentInCreation?.jobcard?.jobcardItems.map((item: any) => ({\n // version: this.mapVersionField(item?.version),\n // id: item.id,\n // name: item.name,\n // deferredDate: item.deferredDate,\n // weight: item.weight,\n // operations: (item.operations && Array.isArray(item.operations)) ? item.operations.map((operation: any) => ({\n // id: operation.id,\n // code: operation.code,\n // label: operation.label,\n // type: operation.type,\n // // absent field in appointmentInCreation\n // // description: operation.\n // weight: operation.weight,\n // officialTime: operation.officialTime,\n // durationTime: operation.durationTime,\n // compulsory: operation.compulsory,\n // selected: operation.selected,\n // price: operation.price,\n // manufacturer: operation.manufacturer,\n // // absent field in appointmentInCreation\n // // addOnStatus: operation.\n // parts: Array.isArray(operation.parts) ? operation.parts.map((part: any) => ({\n // id: part.id,\n // quantity: part.quantity,\n // part: {\n // id: part.part.id,\n // workshopId: part.part.workshopId,\n // code: part.part.code,\n // description: part.part.description,\n // partSuperseedingId: part.part.partSuperseedingId,\n // // absent field in appointmentInCreation\n // // partDetailId: number,\n // quantity: part.part.quantity,\n // // absent fields in appointmentInCreation\n // // booking: string,\n // // visitDate: string,\n // // vehPlate: string,\n // // customer: string,\n // // activity: string,\n // manufacturer: part.part.manufacturer,\n // isKit: part.part.isKit,\n // kitParts: (part.part?.kitPart && Array.isArray(part.part.kitPart)) ? part.part?.kitPart.map((k: any) => ({\n // compKitCode: k.compKitCode,\n // compPnCode: k.compPnCode,\n // compPnLabel: k.compPnLabel,\n // compPnQty: k.compPnQty,\n // compDate: k.compDate,\n // })) : [],\n // quantityInStock: part.part.quantityInStock,\n // quantityOnOrder: part.part.quantityOnOrder,\n // quantityInTransit: part.part.quantityInTransit,\n // // absent field in appointmentInCreation\n // // jobcardItemOperationPartLocationList: Array,\n // // absent field in appointmentInCreation\n // // price: number,\n // homeLocation: part.part.isHomeLocation,\n // },\n // // absent field in appointmentInCreation\n // // jobCardItemOperation: JobcardItemOperationDto,\n // pickupDate: part.pickupDate,\n // tobereturned: part.toBeReturned,\n // compulsory: part.compulsory,\n // price: part.price,\n // cost: part.cost,\n // selected: part.selected,\n // // absent field in appointmentInCreation\n // // addOnStatus: string,\n // quantityInStock: part.quantityInStock,\n // quantityOnOrder: part.quantityOnOrder,\n // quantityInTransit: part.quantityInTransit,\n // // absent field in appointmentInCreation\n // // dmsId: string,\n // jobcardItemOperationPartLocationList: (part?.jobcardItemOperationPartLocationList && Array.isArray(part?.jobcardItemOperationPartLocationList)) ? part?.jobcardItemOperationPartLocationList.map((jiopll: any) => ({\n // id: jiopll.id,\n // locationId: jiopll.locationId,\n // // absent field in appointmentInCreation\n // // jobcardItemOperationPart: JobcardItemOperationPartNumber,\n // quantityInStock: jiopll.quantityInStock,\n // quantityOnOrder: jiopll.quantityOnOrder,\n // quantityInTransit: jiopll.quantityInTransit,\n // locationName: jiopll.locationName,\n // siteName: jiopll.siteName,\n // })) : [],\n // ewarrantyCode: part.ewarrantyCode,\n // })): [],\n // consumables: Array.isArray(operation?.consumables) ? operation?.consumables.map((consumable: any) => ({\n // id: consumable.id,\n // quantity: consumable.quantity,\n // consumable: {\n // id: consumable.consumable.id,\n // // absent field in appointmentInCreation\n // // workshopId: consumable.consumable.,\n // code: consumable.consumable.code,\n // // absent field in appointmentInCreation\n // // description: consumable.consumable.,\n // partNumber: consumable.consumable.partNumber,\n // // absent field in appointmentInCreation\n // // selected: consumable.consumable.,\n // },\n // // absent field in appointmentInCreation\n // // compulsory: consumable.,\n // // price: consumable.,\n // selected: consumable.selected,\n // ewarrantyCode: consumable.ewarrantyCode,\n // })) : [],\n // isKitComplete: operation.isKitComplete,\n // useKitPart: operation.useKitPart,\n // // absent field in appointmentInCreation\n // // dmsId: operation.\n // srt: operation.srt,\n // isDefault: operation.isDefault,\n // })) : [],\n // estimatedDuration: item.estimatedDuration,\n // jobcardItemAttachments: (item?.jobcardItemAttachmentsArray && Array.isArray(item?.jobcardItemAttachmentsArray)) ? item?.jobcardItemAttachmentsArray.map((jiaa: any) => ({\n // id: jiaa.id,\n // url: jiaa.url,\n // type: jiaa.type,\n // year: jiaa.year,\n // jobOrder: jiaa.jobOrder,\n // filename: jiaa.filename,\n // sapCode: jiaa.sapCode,\n // filesize: jiaa.filesize,\n // creationDate: jiaa.creationDate,\n // reason: jiaa.reason,\n // isDeleted: jiaa.isDeleted,\n // isSapOk: jiaa.isSapOk,\n // description: jiaa.description,\n // workshopUserId: jiaa.workshopUserId,\n // })) : [],\n // jobcardItemStatus: (item?.jobcardItemStatus && Array.isArray(item?.jobcardItemStatus)) ? item?.jobcardItemStatus.map((jis: any) => ({\n // id: jis.id,\n // status: jis.status,\n // time: jis.time,\n // endTime: jis.endTime,\n // duration: jis.duration,\n // clockingStatus: jis.clockingStatus,\n // jobcardItemId: jis.jobcardItemId,\n // workshopUserId: jis.workshopUserId,\n // reason: jis.reason,\n // otherReason: jis.otherReason,\n // technicianFirstName: jis.technicianFirstName,\n // technicianLastName: jis.technicianLastName,\n // dmsId: jis.dmsId,\n // // absent field in appointmentInCreation\n // // hasError: jis.,\n // // errorReason: jis.,\n // // activityId: jis.,\n // // appointmentId: jis.,\n // deleted: jis.deleted,\n // })) : [],\n // deferred: item.deferred,\n // isExtraActivity: item.isExtraActivity,\n // isCustomerAgreed: item.isCustomerAgreed,\n // visible: item.visible,\n // failureCode: item.failureCode,\n // failureDescription: item.failureDescription,\n // supplierCode: item.supplierCode,\n // failureSeverity: item.failureSeverity,\n // warrantyCoverage: item.warrantyCoverage,\n // warrantyType: item.warrantyType,\n // deleted: item.deleted,\n // paymentTypeId: item.paymentTypeId,\n // paymentSubTypeId: item.paymentSubTypeId,\n // paymentSubType2Id: item.paymentSubType2Id,\n // paymentSubType3Id: item.paymentSubType3Id,\n // authorizerName: item.authorizerName,\n // serviceParticipation: item.serviceParticipation,\n // type: item.type,\n // causalPartCode: item.causalPartCode,\n // startDate: item.startDate,\n // discountTypeId: item.discountTypeId,\n // workshopBayId: item.workshopBayId,\n // checklistInstances: this.mapChecklistInstances(item?.checklistInstances),\n // // checklistInstances: (item?.checklistInstances && Array.isArray(item?.checklistInstances)) ? item?.checklistInstances.map((ci: any) => ({\n // // id: ci.id,\n // // summaryUrl: ci.summaryUrl,\n // // content: ci.content,\n // // appointmentId: ci.appointmentId,\n // // checklistTemplateId: ci.checklistTemplateId,\n // // checklistTemplateTitle: ci.checklistTemplateTitle,\n // // type: ci.type,\n // // workshopUserId: ci.workshopUserId,\n // // checkListResult: (ci?.checkListResult && Array.isArray(ci?.checkListResult)) ? ci?.checkListResult.map((cr: any)=> ({\n // // id: cr.id,\n // // itemId: cr.itemId,\n // // commentResult: cr.commentResult,\n // // resultValue: cr.resultValue,\n // // timeResult: cr.timeResult,\n // // checkListResultAttachment: (cr?.checkListResultAttachment && Array.isArray(cr?.checkListResultAttachment)) ? cr?.checkListResultAttachment.map((cra: any)=>({\n // // id: cra.id,\n // // url: cra.url,\n // // type: cra.type,\n // // year: cra.year,\n // // jobOrder: cra.jobOrder,\n // // filename: cra.filename,\n // // sapCode: cra.sapCode,\n // // size: cra.size,\n // // reason: cra.reason,\n // // isDeleted: cra.isDeleted,\n // // isSapOk: cra.isSapOk,\n // // })) : [],\n // // // absent field in appointmentInCreation\n // // // checklistInstance: ChecklistInstanceDtoNumber,\n // // })) : [],\n // // jobcardItemId: ci.jobcardItemId,\n // // submitted: ci.submitted,\n // // completionDate: ci.completionDate,\n // // appointmentSignature: {\n // // id: ci?.checklistSignature?.id,\n // // url: ci?.checklistSignature?.url,\n // // secretKey: ci?.checklistSignature?.secretKey,\n // // secretIV: ci?.checklistSignature?.secretIV,\n // // phase: ci?.checklistSignature?.phase,\n // // time: ci?.checklistSignature?.time,\n // // customerNotPresent: ci?.checklistSignature?.customerNotPresent,\n // // appointmentId: ci?.checklistSignature?.appointmentId,\n // // customerCompanyUserId: ci?.checklistSignature?.customerCompanyUserId,\n // // signatory: ci?.checklistSignature?.signatory,\n // // workshopUserId: ci?.checklistSignature?.workshopUserId,\n // // isTechnician: ci?.checklistSignature?.isTechnician,\n // // },\n // // })) : [],\n // officialTime: item.officialTime,\n // jobcardItemSpells: (item?.jobcardItemSpells && Array.isArray(item?.jobcardItemSpells)) ? item?.jobcardItemSpells.map((jis: any)=> ({\n // id: jis.id,\n // // absent field in appointmentInCreation\n // // name: jis.,\n // weight: jis.weight,\n // estimatedDuration: jis.estimatedDuration,\n // startDate: jis.startDate,\n // workshopBayId: jis.workshopBayId,\n // technicians: this.mapTechnicians(jis?.technicians),\n // })) : [],\n // })) : [],\n estimatedDuration: appointmentInCreation.jobcard.estimatedDuration,\n version: this.mapVersionField(appointmentInCreation.jobcard?.version),\n dmsToStrClaim: appointmentInCreation.jobcard.dmsToStrClaim,\n dmsOrderType: appointmentInCreation.jobcard.dmsOrderType,\n djcOrderType: appointmentInCreation.jobcard.djcOrderType,\n jobcardTravels: appointmentInCreation.jobcard.jobcardTravels,\n lastUpdatedTimestamp: appointmentInCreation.jobcard.lastUpdatedTimestamp,\n lastUpdatedFields: appointmentInCreation.jobcard.lastUpdatedFields,\n lastSyncTimestamp: appointmentInCreation.jobcard.lastSyncTimestamp,\n jobcardEngineHours: appointmentInCreation.jobcard.jobcardEngineHours,\n jobcardMileages: appointmentInCreation.jobcard.jobcardMileages,\n },\n };\n }\n mapJobcardItemsDeleted(jobcardItemDeleted: JobcardItemDeletedDto[]|JobcardItemDeleted[]): JobcardItemDeletedDto[]|JobcardItemDeleted[] {\n const result =\n (jobcardItemDeleted && Array.isArray(jobcardItemDeleted)) ? jobcardItemDeleted.map((item: any) => ({\n id: item.id,\n name: item.name,\n code: item.code,\n type: item.type,\n jobcardId: item.jobcardId,\n })) : [];\n return result;\n }\n mapJobcardItemsAttachments(jobcardItemAttachment: any[]): JobcardItemAttachmentDto[] {\n // jobcardItemAttachments: (item?.jobcardItemAttachmentsArray && Array.isArray(item?.jobcardItemAttachmentsArray)) ? item?.jobcardItemAttachmentsArray\n const result =\n (jobcardItemAttachment && Array.isArray(jobcardItemAttachment)) ? jobcardItemAttachment.map((jiaa: any) => ({\n id: jiaa.id,\n url: jiaa.url,\n type: jiaa.type,\n year: jiaa.year,\n jobOrder: jiaa.jobOrder,\n filename: jiaa.filename,\n sapCode: jiaa.sapCode,\n filesize: jiaa.filesize,\n creationDate: jiaa.creationDate,\n reason: jiaa.reason,\n isDeleted: jiaa.isDeleted,\n isSapOk: jiaa.isSapOk,\n description: jiaa.description,\n workshopUserId: jiaa.workshopUserId,\n })) : [];\n return result;\n }\n\n\n // the commented fields are not in Operation\n mapOperationToJobcardItemOperationDto(operation: Operation): JobcardItemOperationDto {\n return {\n id: operation.id,\n code: operation.code,\n label: operation.label,\n type: operation.type,\n // description\n weight: operation.weight,\n officialTime: operation.officialTime,\n durationTime: operation.durationTime,\n compulsory: operation.compulsory,\n selected: operation.selected,\n price: operation.price,\n manufacturer: operation.manufacturer,\n // addOnStatus\n parts: (operation && operation.parts) ? operation.parts?.map((part: any)=>({\n version: this.mapVersionField(part.version),\n id: part.id,\n quantity: part.quantity,\n part: part.part ? this.mapPartToPartDto(part.part) : undefined,\n // jobCardItemOperation\n pickupDate: part.pickupDate,\n tobereturned: part.toBeReturned,\n compulsory: part.compulsory,\n price: part.price,\n cost: part.cost,\n selected: part.selected,\n // addOnStatus\n quantityInStock: part.quantityInStock,\n quantityOnOrder: part.quantityOnOrder,\n quantityInTransit: part.quantityInTransit,\n dmsId: part.ewarrantyCode as string,\n jobcardItemOperationPartLocationList: part.jobcardItemOperationPartLocationList?.map(this.mapOperationPartLocationToJobcardItemOperationPartLocationDto),\n ewarrantyCode: part.ewarrantyCode as string,\n operationId: part.operationId,\n toBeReturned: part.toBeReturned,\n maxQuantity: part.maxQuantity,\n isHomeLocation: part.isHomeLocation,\n isAvailableAtHomeLocation: part.isAvailableAtHomeLocation,\n isAvailableAtOtherLocation: part.isAvailableAtOtherLocation,\n isNotAvailable: part.isNotAvailable,\n scannedWithMobile: part.scannedWithMobile,\n })): [],\n consumables: (operation && operation.consumables) ? operation.consumables?.map((consumable: any)=>({\n id: consumable.id,\n quantity: consumable.quantity?.toString(),\n consumable: consumable.consumable ? this.mapOprConsumableToConsumableDto(consumable.consumable) : undefined,\n // compulsory\n // price\n selected: consumable.selected,\n ewarrantyCode: consumable.ewarrantyCode as string, // Assumendo che `ewarrantyCode` sia di tipo `string`\n })): [],\n isKitComplete: operation.isKitComplete,\n useKitPart: operation.useKitPart,\n // dmsId\n srt: operation.srt,\n isDefault: operation.isDefault,\n // kits: Array;\n isPartAvailable: operation.isPartAvailable,\n };\n }\n // the commented fields are not in OperationPart\n // the commented fields are not in OperationConsumable\n mapOperationConsumableToJobcardItemOperationConsumableDto(\n consumable: OperationConsumable\n ): JobcardItemOperationConsumableDto {\n return {\n id: consumable.id,\n quantity: consumable.quantity?.toString(),\n consumable: consumable.consumable ? this.mapOprConsumableToConsumableDto(consumable.consumable) : undefined,\n // compulsory\n // price\n selected: consumable.selected,\n ewarrantyCode: consumable.ewarrantyCode as string, // Assumendo che `ewarrantyCode` sia di tipo `string`\n };\n }\n // the commented fields are not in OprConsumable\n mapOprConsumableToConsumableDto(oprConsumable: OprConsumable): ConsumableDto {\n return {\n id: oprConsumable.id,\n // workshopId?: number;\n code: oprConsumable.code,\n // description\n partNumber: oprConsumable.partNumber,\n // selected\n };\n }\n // the commented fields are not in OperationPartLocation\n mapOperationPartLocationToJobcardItemOperationPartLocationDto(location: OperationPartLocation): JobcardItemOperationPartLocationDto {\n return {\n version: this.mapVersionField(location.version),\n id: location.id,\n locationId: location.locationId,\n // jobcardItemOperationPart\n quantityInStock: location.quantityInStock,\n quantityOnOrder: location.quantityOnOrder,\n quantityInTransit: location.quantityInTransit,\n locationName: location.locationName,\n siteName: location.siteName,\n partId: location.partId,\n };\n }\n // the commented fields are not in PART\n mapPartToPartDto(part?: Part): PartDto {\n return part ? {\n id: part.id,\n workshopId: part.workshopId,\n code: part.code,\n description: part.description,\n partSuperseedingId: part.partSuperseedingId,\n // partDetailId\n quantity: part.quantity,\n // booking\n // visitDate\n // vehPlate\n // customer\n // activity\n manufacturer: part.manufacturer,\n isKit: part.isKit,\n quantityInStock: part.quantityInStock,\n quantityOnOrder: part.quantityOnOrder,\n quantityInTransit: part.quantityInTransit,\n // jobcardItemOperationPartLocationList\n // price\n homeLocation: part.isHomeLocation,\n cspsPartDetails: part.cspsPartDetails,\n totalAvailableCspsQty: part.totalAvailableCspsQty,\n isHomeLocation: part.isHomeLocation,\n isValidPart: part.isValidPart,\n kitPart: part.kitPart,\n } : undefined;\n }\n\n // GETID APPOINTMENT\n mapAppointmentViewDtoToAppointmentInCreation(app: AppointmentViewDto): AppointmentInCreation {\n return {\n src: app.src,\n actualReceptionDate: app.actualReceptionDate,\n actualDeliveryDate: app.actualDeliveryDate,\n openedById: app.openedById,\n openedBy: app.openedBy,\n isAppointmentOpened: app.isAppointmentOpened,\n vehicleCourtesyBookingDto: app.vehicleCourtesyBookingShortDto ? {\n id: app.vehicleCourtesyBookingShortDto.id,\n startDate: app.vehicleCourtesyBookingShortDto.startDate,\n endDate: app.vehicleCourtesyBookingShortDto.endDate,\n reason: app.vehicleCourtesyBookingShortDto.reason,\n vehicleCourtesy: app.vehicleCourtesyBookingShortDto.vehicleCourtesyId ? {id: app.vehicleCourtesyBookingShortDto.vehicleCourtesyId} : null,\n // appointment: Appointment;\n } : null,\n workshopId: app.workshopId,\n version: this.mapVersionField(app?.version),\n id: app.id,\n mileage: app.mileage,\n engineHours: app.engineHours,\n workshopBayId: app.workshopBayId,\n currentStatus:\n (app.currentStatus === 'new' ||\n app.currentStatus === 'draft' ||\n app.currentStatus === 'schedule' ||\n app.currentStatus === 'appointmentPrepared' ||\n app.currentStatus === 'received' ||\n app.currentStatus === 'reparing' ||\n app.currentStatus === 'serviceAdvisorValidationPending' ||\n app.currentStatus === 'clientValidationPending' ||\n app.currentStatus === 'warrantyValidationPending' ||\n app.currentStatus === 'sentBackError' ||\n app.currentStatus === 'workfileValidated' ||\n app.currentStatus === 'delivered' ||\n app.currentStatus === 'jobcardFinalised' ||\n app.currentStatus === 'cancelled'\n ) ? app.currentStatus : null,\n onHold: app.onHold,\n onHoldReason: app.onHoldReasonId ? {\n id: app.onHoldReasonId,\n description: app.onHoldReasonDescription ? app.onHoldReasonDescription : null,\n } : null,\n orderTypeHeaderCode: app.orderTypeHeaderCode,\n // orderTypeHeaderDescription: ,\n isBreakdownAppt: app.isBreakdownAppt,\n dmsCreationDate: app.dmsCreationDate,\n receptionDate: app.receptionDate,\n deliveryDate: app.deliveryDate,\n plannedDeliveryDate: app.plannedDeliveryDate,\n vehicle: app.vehicle ? this.mapJobcardVehicleViewDtoConsumableToVehicle(app.vehicle) : undefined,\n customerPaymentMode: app.customerPaymentMode,\n status: app.status ? this.mapAppointmentStatusViewDtoConsumableToAppointmentStatus(app.status) :\n {\n id: null,\n time: null,\n status: null,\n // reason: AppointmentStatus.ReasonEnum;\n customerCompanyUser: {\n id: null,\n customerCompanyId: null,\n firstName: null,\n lastName: null,\n email: null,\n mobilePhone: null,\n phone: null,\n dmsId: null,\n version: 0,\n },\n workshopUser: app.status.workshopUser ? this.mapWorkshopUserDtoToWorkshopUser(app.status.workshopUser) : undefined,\n // displayedName: status.workshopUserDisplayedName,\n version: null,\n },\n customerCompany: app.customerCompany ? this.mapCustomerCompanyShortDtoConsumableToCustomerCompany(app.customerCompany) : undefined,\n cpdAlternateContact: app.cpdAlternateContact,\n driver: app.driver ? this.mapCustomerCompanyUserShortDtoConsumableToCustomerCompanyUser(app.driver) : {\n id: null,\n customerCompanyId: null,\n // firstName: ccu.\n lastName: null,\n email: null,\n mobilePhone: null,\n phone: null,\n // dmsId: ccu.undefined,\n },\n checklistInstances: this.mapChecklistInstances(app.checklistInstances),\n // LA L DI CHECKLISTDAMAGES CAMBIA TRA APPOINTMENTVIEWDTO E APPOINTMENT\n checklistDamages: (app?.checkListDamages && Array.isArray(app?.checkListDamages)) ? app?.checkListDamages.map((cd: ChecklistDamage)=>({\n id: cd.id,\n type: cd.type,\n url: cd.url,\n year: cd.year,\n jobOrder: cd.jobOrder,\n filename: cd.filename,\n sapCode: cd.sapCode,\n size: cd.size,\n zone: cd.zone,\n // creationDate: cd.\n comment: cd.comment,\n isDeleted: cd.isDeleted,\n isSapOk: cd.isSapOk,\n reason: cd.reason,\n version: this.mapVersionField(cd.version),\n })): [],\n jobcard: app.jobcard ? this.mapJobcardViewDtoToJobcard(app.jobcard) : undefined,\n customerNeed: app.customerNeed,\n workshopUserId: app.workshopUserId,\n priorityType: app.priorityType ? {\n id: app.priorityType.id,\n description: app.priorityType.description,\n icon: app.priorityType.icon,\n // value: string;\n status: app.priorityType.status ?\n ((app.priorityType.status === 'High' ||\n app.priorityType.status === 'Medium' ||\n app.priorityType.status === 'Low' ||\n app.priorityType.status === 'NoPriority'\n ) ? app.priorityType.status : null) : null,\n type: app.priorityType.type,\n defaultPriority: app.priorityType.defaultPriority,\n } : null,\n salesOrganizationId: app.salesOrganizationId,\n // lastUpdatedTimestamp: string;\n // lastUpdatedFields: string;\n // lastSyncTimestamp: string;\n unitStatus: app.unitStatus ? {\n id: app.unitStatus.id,\n date: app.unitStatus.date,\n unitDown: app.unitStatus.unitDown,\n } : null,\n vehicleCourtesy: app.vehicleCourtesy ? {\n id: app.vehicleCourtesy.id,\n vin: app.vehicleCourtesy.vin,\n brand: app.vehicleCourtesy.brand ? this.mapBrandDtoToBrand(app.vehicleCourtesy.brand) : undefined,\n // series: Series;\n model: app.vehicleCourtesy.model ? this.mapModelDtoToModel(app.vehicleCourtesy.model) : undefined,\n plate: app.vehicleCourtesy.plate,\n mileage: app.vehicleCourtesy.mileage,\n status: app.vehicleCourtesy.status,\n dmsId: app.vehicleCourtesy.dmsId,\n workshop: app.vehicleCourtesy.workshop ? this.mapWorkshopDtoToWorkshop(app.vehicleCourtesy.workshop): undefined,\n vehicleNote: app.vehicleCourtesy.vehicleNote,\n // TODO not reported because in loop\n // appointments: Array;\n } : null,\n repairAddress: app.repairAddress,\n };\n }\n\n mapChecklistInstances(checklistInstances: any): any[] {\n const result = (checklistInstances && Array.isArray(checklistInstances)) ? checklistInstances.map((ci: any) => ({\n id: ci.id,\n summaryUrl: ci.summaryUrl,\n content: ci.content,\n appointmentId: ci.appointmentId,\n checklistTemplateId: ci.checklistTemplateId,\n checklistTemplateTitle: ci.checklistTemplateTitle,\n type: ci.type,\n workshopUserId: ci.workshopUserId,\n checkListResult: (ci?.checkListResult && Array.isArray(ci?.checkListResult)) ? ci?.checkListResult.map((cr: ChecklistResult)=> ({\n id: cr.id,\n itemId: cr.itemId,\n commentResult: cr.commentResult,\n resultValue: cr.resultValue,\n timeResult: cr.timeResult,\n checkListResultAttachment: (cr?.checkListResultAttachment && Array.isArray(cr?.checkListResultAttachment)) ? cr?.checkListResultAttachment.map((cra: any)=>({\n id: cra.id,\n url: cra.url,\n type: cra.type,\n year: cra.year,\n jobOrder: cra.jobOrder,\n filename: cra.filename,\n sapCode: cra.sapCode,\n size: cra.size,\n reason: cra.reason,\n isDeleted: cra.isDeleted,\n isSapOk: cra.isSapOk,\n version: this.mapVersionField(cra.version),\n })) : [],\n // absent field in appointmentInCreation\n // checklistInstance: ChecklistInstanceDtoNumber,\n version: this.mapVersionField(ci?.version),\n })) : [],\n jobcardItemId: ci.jobcardItemId,\n submitted: ci.submitted,\n completionDate: ci.completionDate,\n appointmentSignature: ci?.checklistSignature ? {\n id: ci?.checklistSignature?.id,\n url: ci?.checklistSignature?.url,\n secretKey: ci?.checklistSignature?.secretKey,\n secretIV: ci?.checklistSignature?.secretIV,\n phase: ci?.checklistSignature?.phase,\n time: ci?.checklistSignature?.time,\n customerNotPresent: ci?.checklistSignature?.customerNotPresent,\n appointmentId: ci?.checklistSignature?.appointmentId,\n customerCompanyUserId: ci?.checklistSignature?.customerCompanyUserId,\n signatory: ci?.checklistSignature?.signatory,\n workshopUserId: ci?.checklistSignature?.workshopUserId,\n isTechnician: ci?.checklistSignature?.isTechnician,\n version: this.mapVersionField(ci?.checklistSignature?.version),\n }: null,\n version: this.mapVersionField(ci?.version),\n })) : [];\n return result;\n }\n\n mapChecklistDamages(checkListDamages: any): any[] {\n const result = (checkListDamages && Array.isArray(checkListDamages)) ? checkListDamages.map((cd: any) => ({\n version: this.mapVersionField(cd?.version),\n id: cd.id,\n appointment: cd.appointment,\n url: cd.url,\n zone: cd.zone,\n year: cd.year,\n jobOrder: cd.jobOrder,\n type: cd.type,\n filename: cd.filename,\n sapCode:cd.sapCode,\n size: cd.size,\n comment: cd.comment,\n reason: cd.reason,\n isDeleted:cd.isDeleted,\n isSapOk: cd.isSapOk,\n lastUpdatedTimestamp: cd.lastUpdatedTimestamp,\n lastUpdatedFields: cd.lastUpdatedFields,\n lastSyncTimestamp: cd.lastSyncTimestamp,\n })) : [];\n return result;\n}\n\n mapJobcardVehicleViewDtoConsumableToVehicle(vehicle: JobcardVehicleDto): Vehicle{\n return {\n id: vehicle.id,\n // isDuplicate: vehicle.\n isActive: vehicle.isActive,\n customerCompanyId: vehicle.customerCompanyId,\n customerCompanyName: vehicle.customerCompanyName,\n customerCompanyDisplayedName: vehicle.customerCompanyDisplayedName,\n customerCompanyDmsId: vehicle.customerCompanyDmsId,\n vin: vehicle.vin,\n // serialNumber: vehicle.\n brand: vehicle.brand ? this.mapBrandDtoToBrand(vehicle.brand) : undefined,\n // series: Series;\n model: vehicle.model ? this.mapModelDtoToModel(vehicle.model) : undefined,\n plate: vehicle.plate,\n bm: vehicle.bm,\n vcb: vehicle.vcb,\n vp: vehicle.vp,\n warrantyStartDate: vehicle.wtyStartDate,\n vehicleNote: vehicle.vehicleNote,\n annualInspectionDate: vehicle.annualInspectionDate,\n tachometerDate: vehicle.tachometerDate,\n dmsId: vehicle.dmsId,\n workshopId: vehicle.workshopId,\n customerCompanyUser: {\n id: (vehicle.customerCompanyUser && vehicle.customerCompanyUser.id) ? vehicle.customerCompanyUser.id : null,\n customerCompanyId: (vehicle.customerCompanyUser && vehicle.customerCompanyUser.customerCompanyId) ? vehicle.customerCompanyUser.customerCompanyId : null,\n firstName: (vehicle.customerCompanyUser && vehicle.customerCompanyUser.firstName) ? vehicle.customerCompanyUser.firstName : null,\n lastName: (vehicle.customerCompanyUser && vehicle.customerCompanyUser.lastName) ? vehicle.customerCompanyUser.lastName : null,\n email: (vehicle.customerCompanyUser && vehicle.customerCompanyUser.email) ? vehicle.customerCompanyUser.email : null,\n mobilePhone: (vehicle.customerCompanyUser && vehicle.customerCompanyUser.mobilePhone) ? vehicle.customerCompanyUser.mobilePhone : null,\n phone: (vehicle.customerCompanyUser && vehicle.customerCompanyUser.phone) ? vehicle.customerCompanyUser.phone : null,\n dmsId: (vehicle.customerCompanyUser && vehicle.customerCompanyUser.dmsId) ? vehicle.customerCompanyUser.dmsId : null,\n },\n invoiceDate: vehicle.invoiceDate,\n // TODO not reported because in loop\n // appointments: Array;\n stockNumber: vehicle.stockNumber,\n latestUpdatedGeoStoreTime: vehicle.latestUpdatedGeoStoreTime,\n latitude: vehicle.latitude,\n longitude: vehicle.longitude,\n lastKnownEngineHours: vehicle.lastKnownEngineHours,\n lastKnownMileage: vehicle.lastKnownMileage,\n lastKnownBales: vehicle.lastKnownBales,\n lastKnownAcres: vehicle.lastKnownAcres,\n lastKnownThreshingHours: vehicle.lastKnownThreshingHours,\n epartsBrandName: vehicle.epartsBrandName,\n };\n };\n mapAppointmentStatusViewDtoConsumableToAppointmentStatus(status: AppointmentStatusDto): AppointmentStatus{\n // CAMBIATO IL MODELLO AD APPOINTMENTSTATUSDTO\n return {\n id: status.id,\n time: status.time,\n status: (\n status.status === 'new' ||\n status.status === 'draft' ||\n status.status === 'schedule' ||\n status.status === 'appointmentPrepared' ||\n status.status === 'received' ||\n status.status === 'reparing' ||\n status.status === 'serviceAdvisorValidationPending' ||\n status.status === 'clientValidationPending' ||\n status.status === 'warrantyValidationPending' ||\n status.status === 'sentBackError' ||\n status.status === 'workfileValidated' ||\n status.status === 'delivered' ||\n status.status === 'jobcardFinalised' ||\n status.status === 'cancelled'\n ) ? status.status : null,\n reason: (\n status.reason === 'customerAdvised' ||\n status.reason === 'slotNotAvailable' ||\n status.reason === 'partNotAvailable' ||\n status.reason === 'repairCarriedOut' ||\n status.reason === 'repairAnotherBooking' ||\n status.reason === 'other'\n ) ? status.reason : null,\n customerCompanyUser: {\n id: (status.customerCompanyUser && status.customerCompanyUser.id) ? status.customerCompanyUser.id : null,\n customerCompanyId: (status.customerCompanyUser && status.customerCompanyUser.customerCompanyId) ? status.customerCompanyUser.customerCompanyId : null,\n firstName: (status.customerCompanyUser && status.customerCompanyUser.firstName) ? status.customerCompanyUser.firstName : null,\n lastName: (status.customerCompanyUser && status.customerCompanyUser.lastName) ? status.customerCompanyUser.lastName : null,\n email: (status.customerCompanyUser && status.customerCompanyUser.email) ? status.customerCompanyUser.email : null,\n mobilePhone: (status.customerCompanyUser && status.customerCompanyUser.mobilePhone) ? status.customerCompanyUser.mobilePhone : null,\n phone: (status.customerCompanyUser && status.customerCompanyUser.phone) ? status.customerCompanyUser.phone : null,\n dmsId: (status.customerCompanyUser && status.customerCompanyUser.dmsId) ? status.customerCompanyUser.dmsId : null,\n },\n workshopUser: status.workshopUser ? this.mapWorkshopUserDtoToWorkshopUser(status.workshopUser) : undefined,\n version: this.mapVersionField(status?.version),\n };\n };\n mapCustomerCompanyShortDtoConsumableToCustomerCompany(customer: CustomerCompanyShortDto): CustomerCompany{\n return {\n id: customer.id,\n dmsId: customer.dmsId,\n name: customer.name,\n // city: string;\n // country: string;\n // workshopId: number;\n // isActive: boolean;\n // isTcChecked: boolean;\n // isMrChecked: boolean;\n // isSurveyChecked: boolean;\n // tcCheckedDate: string;\n // mrCheckedDate: string;\n // surveyCheckedDate: string;\n creditStatus: customer.creditStatus,\n creditStatusId: customer.creditStatusId,\n creditAmount: customer.creditAmount ? customer.creditAmount.toString() : null,\n // zipcode: string;\n // address: string;\n displayedName: customer.displayedName,\n mobilePhone: customer.mobilePhone,\n phone: customer.phone,\n email: customer.email,\n customerNote: customer.customerNote,\n // users: Array;\n alternateContactDetails: (customer.cpdContactDetails && Array.isArray(customer.cpdContactDetails))? customer.cpdContactDetails.map((cpd: any)=>({\n id: cpd.id,\n customerName: cpd.customerName,\n cityName: cpd.cityName,\n countryCode: cpd.countryCode,\n address: cpd.address,\n zipCode: cpd.zipCode,\n })): [],\n // isCpd: boolean;\n // isCashCust: boolean;\n customerPaymentMode: customer.customerPaymentMode,\n isTcChecked: customer.isTcChecked,\n isMrChecked: customer.isMrChecked,\n };\n }\n\n mapCustomerCompanyUserShortDtoConsumableToCustomerCompanyUser(ccu: CustomerCompanyUser): CustomerCompanyUserShortDto {\n return {\n id: ccu.id ? ccu.id : null,\n customerCompanyId: ccu.id ? ccu.customerCompanyId : null,\n // firstName: ccu.\n lastName: ccu.id ? ccu.lastName : null,\n email: ccu.id ? ccu.email : null,\n mobilePhone: ccu.id ? ccu.mobilePhone : null,\n phone: ccu.id ? ccu.phone : null,\n // dmsId: ccu.\n };\n }\n\n mapJobcardViewDtoToJobcard(jobcard: JobcardViewDto): Jobcard{\n return {\n id: jobcard.id,\n jobcardAttachmentDtos: this.mapJobcardItemsAttachments(jobcard.jobcardAttachmentDtos),\n jobcardEngineHours: this.mapJobcardItemsAttachments(jobcard.jobcardEngineHours),\n djcOrderType: (\n jobcard.djcOrderType === 'readyToInvoice' ||\n jobcard.djcOrderType === 'Invoice'\n ) ? jobcard.djcOrderType : null,\n dmsOrderType: (\n jobcard.dmsOrderType === 'Quote' ||\n jobcard.dmsOrderType === 'Invoice' ||\n jobcard.dmsOrderType === 'Reservation' ||\n jobcard.dmsOrderType === 'Order'\n ) ? jobcard.dmsOrderType : null,\n dmsJobOrder: jobcard.dmsJobOrder,\n dmsToStrClaim: jobcard.dmsToStrClaim ? jobcard.dmsToStrClaim.toString() : null,\n dealerClaimNumber: jobcard.dealerClaimNumber ? jobcard.dealerClaimNumber.toString() : null,\n jobcardMileages: (jobcard.jobcardMileages && Array.isArray(jobcard.jobcardMileages))? jobcard.jobcardMileages.map((jml: JobcardAttachment)=>({\n id: jml.id,\n type: jml.type,\n url: jml.url,\n year: jml.year,\n filename: jml.filename,\n jobOrder: jml.jobOrder,\n sapCode: jml.sapCode,\n filesize: jml.filesize,\n creationDate: jml.creationDate,\n isDeleted: jml.isDeleted,\n isSapOk: jml.isSapOk,\n reason: jml.reason,\n description: jml.description,\n workshopUserId: jml.workshopUserId,\n })): [],\n jobcardTravels: (jobcard.jobcardTravels && Array.isArray(jobcard.jobcardTravels))? jobcard.jobcardTravels.map((jtr: JobcardTravel)=>({\n id: jtr.id,\n name: jtr.name,\n workshopUserId: jtr.workshopUserId,\n duration: jtr.duration,\n distance: jtr.distance,\n date: jtr.date,\n reason: (\n jtr.reason === 'forgotRecordTravel' ||\n jtr.reason === 'forgotStartStop' ||\n jtr.reason === 'helpingAnotherTechnician' ||\n jtr.reason === 'technicalErrors' ||\n jtr.reason === 'discount' ||\n jtr.reason === 'other'\n ) ? jtr.reason : null,\n otherReason: jtr.otherReason,\n deleted: jtr.deleted,\n positions: (jtr.positions && Array.isArray(jtr.positions))? jtr.positions.map((wutp: WorkshopUserTravelPosition)=>({\n id: wutp.id,\n workshopUserId: wutp.workshopUserId,\n jobcardTravelId: wutp.jobcardTravelId,\n jobcardItemTravelId: null,\n latitude: wutp.latitude,\n longitude: wutp.longitude,\n positionDate: wutp.positionDate,\n positionType: (\n wutp.positionType === 'START' ||\n wutp.positionType === 'ONGOING' ||\n wutp.positionType === 'STOP'\n ) ? wutp.positionType : null,\n deviceStatus: wutp.deviceStatus,\n })): [],\n travelFromAddressLine1: jtr.travelFromAddressLine1,\n travelFromAddressLine2: jtr.travelFromAddressLine2,\n travelFromAddressLine3: jtr.travelFromAddressLine3,\n travelFromAddressLine4: jtr.travelFromAddressLine4,\n travelFromPostalCode: jtr.travelFromPostalCode,\n travelToAddressLine1: jtr.travelToAddressLine1,\n travelToAddressLine2: jtr.travelToAddressLine2,\n travelToAddressLine3: jtr.travelToAddressLine3,\n travelToAddressLine4: jtr.travelToAddressLine4,\n travelToPostalCode: jtr.travelToPostalCode,\n internalNotes: jtr.internalNotes,\n estimatedDistance: jtr.estimatedDistance,\n estimatedDuration: jtr.estimatedDuration,\n paymentType: jtr.paymentType ? this.mapPaymentTypeDtoToPaymentType(jtr.paymentType) : undefined,\n paymentSubType: jtr.paymentSubType ? this.mapPaymentSubTypeDtoToPaymentSubType(jtr.paymentSubType) : undefined,\n // paymentSubSubType2: PaymentSubSubType;\n // paymentSubSubType3: PaymentSubSubType;\n itemCode: jtr.itemCode,\n travelSource: jtr.travelSource,\n travelExtraCode: jtr.travelExtraCode,\n // travelVisible: jtr.;\n price: jtr.price,\n travelFromShowCoordinates: (\n jtr.travelFromShowCoordinates === 'travelFromAddress' ||\n jtr.travelFromShowCoordinates === 'travelFromCoordinates'\n ) ? jtr.travelFromShowCoordinates : null,\n travelToShowCoordinates: (\n jtr.travelToShowCoordinates === 'travelToAddress' ||\n jtr.travelToShowCoordinates === 'travelToCoordinates'\n ) ? jtr.travelToShowCoordinates : null,\n travelFromLatitude: jtr.travelFromLatitude,\n travelFromLongitude: jtr.travelFromLongitude,\n travelToLatitude: jtr.travelToLatitude,\n travelToLongitude: jtr.travelToLongitude,\n travelTypeFrom: jtr.travelTypeFrom,\n travelTypeTo: jtr.travelTypeTo,\n travelFromManualRefreshDate: jtr.travelFromManualRefreshDate,\n travelToManualRefreshDate: jtr.travelToManualRefreshDate,\n travelFromGpsImportedDate: jtr.travelFromGpsImportedDate,\n travelToGpsImportedDate: jtr.travelToGpsImportedDate,\n warrantyClaimNumbers: jtr.warrantyClaimNumbers,\n sapResponse: jtr.sapResponse,\n })): [],\n customerOrderNumber: jobcard.customerOrderNumber,\n estimatedDuration: jobcard.estimatedDuration,\n jobcardItems: (jobcard.jobcardItems && Array.isArray(jobcard.jobcardItems))? jobcard.jobcardItems.map((ji: any)=>({\n version: this.mapVersionField(ji?.version),\n id: ji.id,\n type: ji.type,// JobcardItem.TypeEnum;\n subtype: ji.subtype,\n priority: ji.priority,\n weight: ji.weight,\n name: ji.name,\n description: ji.description,\n additionalDescription: ji.additionalDescription,\n code: ji.code,\n estimatedDuration: ji.estimatedDuration,\n // url: ji.\n // asistUrl: ji.\n checklistInstances: this.mapChecklistInstances(ji?.checklistInstances),\n operations: (ji.operations && Array.isArray(ji.operations))? ji.operations.map((ope: Operation)=>({\n version: this.mapVersionField(ope?.version),\n id: ope.id,\n code: ope.code,\n label: ope.label,\n officialTime: ope.officialTime,\n durationTime: ope.durationTime,\n weight: ope.weight,\n manufacturer: ope.manufacturer,\n parts: (ope.parts && Array.isArray(ope.parts))? ope.parts.map((opar: OperationPart)=>({\n version: this.mapVersionField(opar.version),\n id: opar.id,\n quantity: opar.quantity,\n part: opar.part ?\n {\n id: opar.part.id,\n workshopId: opar.part.workshopId,\n code: opar.part.code,\n description: opar.part.description,\n partSuperseedingId: opar.part.partSuperseedingId,\n // partDetailId: opar.part.\n quantity: opar.part.quantity,\n // booking: opar.part.\n // visitDate: opar.part.\n // vehPlate: opar.part.\n // customer: opar.part.\n // activity: opar.part.\n manufacturer: opar.part.manufacturer,\n isKit: opar.part.isKit,\n // kitParts: Array;\n quantityInStock: opar.part.quantityInStock,\n quantityOnOrder: opar.part.quantityOnOrder,\n quantityInTransit: opar.part.quantityInTransit,\n // jobcardItemOperationPartLocationList: Array;\n // price: opar.part.\n homeLocation: opar.part.isHomeLocation,\n } : null,\n // jobCardItemOperation: JobcardItemOperationDto;\n pickupDate: opar.pickupDate,\n tobereturned: opar.toBeReturned,\n compulsory: opar.compulsory,\n price: opar.price,\n cost: opar.cost,\n selected: opar.selected,\n // addOnStatus: opar.\n quantityInStock: opar.quantityInStock,\n quantityOnOrder: opar.quantityOnOrder,\n quantityInTransit: opar.quantityInTransit,\n // dmsId: opar.\n jobcardItemOperationPartLocationList: (opar.jobcardItemOperationPartLocationList && Array.isArray(opar.jobcardItemOperationPartLocationList))? opar.jobcardItemOperationPartLocationList.map((jiopll: OperationPartLocation)=>({\n version: this.mapVersionField(jiopll.version),\n id: jiopll.id,\n locationId: jiopll.locationId,\n // partId: jiopll.\n quantityInStock: jiopll.quantityInStock,\n quantityOnOrder: jiopll.quantityOnOrder,\n quantityInTransit: jiopll.quantityInTransit,\n siteName: jiopll.siteName,\n locationName: jiopll.locationName,\n })): [],\n ewarrantyCode: opar.ewarrantyCode,\n })): [],\n consumables: (ope.consumables && Array.isArray(ope.consumables))? ope.consumables.map((cons: OperationConsumable)=>({\n id: cons.id,\n quantity: cons.quantity,\n consumable: cons.consumable ?{\n id: cons.consumable.id,\n // workshopId: number;\n code: cons.consumable.code,\n // description: string;\n partNumber: cons.consumable.partNumber,\n // selected: boolean;\n }: undefined,\n // compulsory\n // price\n selected: cons.selected,\n ewarrantyCode: cons.ewarrantyCode,\n })): [],\n // kits: Array;\n price: ope.price,\n compulsory: ope.compulsory,\n selected: ope.selected,\n isKitComplete: ope.isKitComplete,\n useKitPart: ope.useKitPart,\n // isPartAvailable: ope.\n srt: ope.srt,\n type: ope.type,\n isDefault: ope.isDefault,\n })): [],\n jobcardItemStatus: (ji.jobcardItemStatus && Array.isArray(ji.jobcardItemStatus))? ji.jobcardItemStatus.map((jis: JobcardItemStatus)=>({\n version: this.mapVersionField(jis.version),\n id: jis.id,\n time: jis.time,\n endTime: jis.endTime,\n status: (\n jis.status === 'new' ||\n jis.status === 'todo' ||\n jis.status === 'inProgress' ||\n jis.status === 'pending' ||\n jis.status === 'invoiced' ||\n jis.status === 'done' ||\n jis.status === 'inProgressProductive' ||\n jis.status === 'doneProductive' ||\n jis.status === 'pendingProductive' ||\n jis.status === 'doneNotWithinPlannedTime'\n ) ? jis.status : null,\n duration: jis.duration,\n clockingStatus: (\n jis.clockingStatus === 'CLOCKING_START' ||\n jis.clockingStatus === 'CLOCKING_ONGOING' ||\n jis.clockingStatus === 'CLOCKING_STOP'\n ) ? jis.clockingStatus : null,\n appointmentPriority: (\n jis.appointmentPriority === 'high' ||\n jis.appointmentPriority === 'medium' ||\n jis.appointmentPriority === 'low' ||\n jis.appointmentPriority === 'nopriority'\n ) ? jis.appointmentPriority : null,\n jobcardItemId: jis.jobcardItemId,\n workshopUserId: jis.workshopUserId,\n reason: (\n jis.reason === 'forgotClockOn' ||\n jis.reason === 'forgotClockOff' ||\n jis.reason === 'helpingAnotherTechnician' ||\n jis.reason === 'forgotClockInOut' ||\n jis.reason === 'technicalErrors' ||\n jis.reason === 'discount' ||\n jis.reason === 'other'\n ) ? jis.reason : null,\n otherReason: jis.otherReason,\n deleted: jis.deleted,\n // currentChangeActivity: jis.\n technicianFirstName: jis.technicianFirstName,\n technicianLastName: jis.technicianLastName,\n dmsId: jis.dmsId,\n })): [],\n jobcardPartsBacklog: (ji.jobcardPartsBacklog && Array.isArray(ji.jobcardPartsBacklog))? ji.jobcardPartsBacklog.map((jpb: JobcardPartsBacklog)=>({\n id: jpb.id,\n appointmentId: jpb.appointmentId,\n jobcardItemId: jpb.jobcardItemId,\n quantity: jpb.quantity,\n partId: jpb.partId,\n customerCompanyId: jpb.customerCompanyId,\n part: jpb.part ? this.mapPartToPartDto(jpb.part) : undefined,\n // view: jpb.\n workshopId: jpb.workshopId,\n cspsOrderId: jpb.cspsOrderId,\n orderSimulationId: jpb.orderSimulationId,\n partStatus: jpb.partStatus,\n basicDiscount: jpb.basicDiscount,\n promoDiscount: jpb.promoDiscount,\n grossPrice: jpb.grossPrice,\n netPrice: jpb.netPrice,\n customerName: jpb.customerName,\n partCode: jpb.partCode,\n description: jpb.description,\n operation: jpb.operation,\n orderSimulationDate: jpb.orderSimulationDate,\n expectedDeliveryDate: jpb.expectedDeliveryDate,\n details: jpb.details,\n addedDate: jpb.addedDate,\n })): [],\n jobcardItemAttachments: (ji?.jobcardItemAttachments && Array.isArray(ji?.jobcardItemAttachments)) ? ji?.jobcardItemAttachments.map((jiaa: any) => ({\n id: jiaa.id,\n url: jiaa.url,\n type: jiaa.type,\n year: jiaa.year,\n jobOrder: jiaa.jobOrder,\n filename: jiaa.filename,\n sapCode: jiaa.sapCode,\n filesize: jiaa.filesize,\n creationDate: jiaa.creationDate,\n reason: jiaa.reason,\n isDeleted: jiaa.isDeleted,\n isSapOk: jiaa.isSapOk,\n description: jiaa.description,\n workshopUserId: jiaa.workshopUserId,\n })) : [],\n workshopUserId: ji.workshopUserId,\n comment: ji.comment,\n deferred: ji.deferred,\n deferredDate: ji.deferredDate,\n deferredToDate: ji.deferredToDate,\n reason: ji.reason,\n isExtraActivity: ji.isExtraActivity,\n isCustomerAgreed: ji.isCustomerAgreed,\n // CONTROLLARE SE IL CAMPO é CORRETTO\n agreementSignatureUrl: ji.customerSignatureUrl,\n agreementCustomerName: ji.agreementCustomerName,\n // travels: Array;\n visible: ji.visible,\n supplierCode: ji.supplierCode,\n defectCode: ji.defectCode,\n failureCode: ji.failureCode,\n failureDescription: ji.failureDescription,\n failureSeverity: ji.failureSeverity,\n warrantyCoverage: ji.warrantyCoverage,\n warrantyContract: ji.warrantyContract,\n contractNumber: ji.contractNumber,\n warrantyType: ji.warrantyType,\n causalPartId: ji.causalPartId,\n extraOperations: (ji?.extraOperations && Array.isArray(ji?.extraOperations)) ? ji?.extraOperations.map((eo: ExtraOperation) => ({\n version: this.mapVersionField(eo?.version),\n id: eo.id,\n // typeLabel: eo.\n type: eo.type,\n description: eo.description,\n code: eo.code,\n supplierName: eo.supplierName,\n level: eo.level,\n distance: eo.distance,\n amount: eo.amount,\n compulsory: eo.compulsory,\n selected: eo.selected,\n dmsId: eo.dmsId,\n invoiceNumber: eo.invoiceNumber,\n manufacturer: eo.manufacturer,\n quantity: eo.quantity,\n deleted: eo.deleted,\n active: eo.active,\n })) : [],\n deleted: ji.deleted,\n // loading: ji.\n paymentCode: ji.paymentCode,\n paymentTypeId: ji.paymentTypeId,\n payType: ji.payType,\n paymentSubcode: ji.paymentSubcode,\n paymentSubTypeId: ji.paymentSubTypeId,\n paymentSub2Code: ji.paymentSub2Code,\n paymentSubType2Id: ji.paymentSubType2Id,\n paymentSub3Code: ji.paymentSub3Code,\n paymentSubType3Id: ji.paymentSubType3Id,\n // defectDescription: ji.\n // supplierDescription: ji.\n causalPartCode: ji.causalPartCode,\n splits: (ji?.splits && Array.isArray(ji?.splits)) ? ji?.splits.map((s: Split) => ({\n id: s.id,\n customerPercent: s.customerPercent,\n warrantyPercent: s.warrantyPercent,\n internalPercent: s.internalPercent,\n typeCode: s.typeCode,\n })) : [],\n mpInfo: {\n planId: (ji.mpInfo && ji.mpInfo.planId) ? ji.mpInfo.planId : null,\n description: (ji.mpInfo && ji.mpInfo.description) ? ji.mpInfo.description : null,\n couponOver: (ji.mpInfo && ji.mpInfo.couponOver) ? ji.mpInfo.couponOver : null,\n couponSoon: (ji.mpInfo && ji.mpInfo.couponSoon) ? ji.mpInfo.couponSoon : null,\n couponSelected: (ji.mpInfo && ji.mpInfo.couponSelected) ? ji.mpInfo.couponSelected : null,\n couponStatus: (ji.mpInfo && ji.mpInfo.couponStatus) ? ji.mpInfo.couponStatus : null,\n couponModifiable: (ji.mpInfo && ji.mpInfo.couponModifiable) ? ji.mpInfo.couponModifiable : null,\n couponSavable: (ji.mpInfo && ji.mpInfo.couponSavable) ? ji.mpInfo.couponSavable : null,\n couponIntervalComment: (ji.mpInfo && ji.mpInfo.planId) ? ji.mpInfo.couponIntervalComment : null,\n overdueValues: (ji.mpInfo && ji.mpInfo?.overdueValues && Array.isArray(ji.mpInfo?.overdueValues)) ? ji.mpInfo?.overdueValues.map((ov: MpInformationDelta) => ({\n unit: ov.unit,\n value: ov.value,\n })) : [],\n soonValues: (ji.mpInfo && ji.mpInfo?.soonValues && Array.isArray(ji.mpInfo?.soonValues)) ? ji.mpInfo?.soonValues.map((sv: MpInformationDelta) => ({\n unit: sv.unit,\n value: sv.value,\n })) : [],\n },\n couponStatus: ji.couponStatus,\n status: ji.status,\n // totalPrice: ji.\n generalNote: ji.generalNote,\n cause: ji.cause,\n correction: ji.correction,\n internalNotes: ji.internalNotes,\n paymentType: ji.paymentType ? this.mapPaymentTypeDtoToPaymentType(ji.paymentType) : undefined,\n paymentSubType: ji.paymentSubType ? this.mapPaymentSubTypeDtoToPaymentSubType(ji.paymentSubType) : undefined,\n paymentSubType2: ji.paymentSubType2 ? {\n id: ji.paymentSubType2.id,\n code:ji.paymentSubType2.code,\n description:ji.paymentSubType2.description,\n // subLevel: ji.paymentSubType2.\n categoryType:ji.paymentSubType2.categoryType,\n isVisible: ji.paymentSubType2.isVisible,\n weight: ji.paymentSubType2.weight,\n } : null,\n paymentSubType3: ji.paymentSubType3 ? {\n id: ji.paymentSubType3.id,\n code:ji.paymentSubType3.code,\n description:ji.paymentSubType3.description,\n // subLevel: ji.paymentSubType3.\n categoryType:ji.paymentSubType3.categoryType,\n isVisible: ji.paymentSubType3.isVisible,\n weight: ji.paymentSubType3.weight,\n } : null,\n paymentWarrantyType: ji.paymentWarrantyType ? {\n id: (ji.paymentWarrantyType && ji.paymentWarrantyType.id) ? ji.paymentWarrantyType.id : null,\n warranty: (ji.paymentWarrantyType && ji.paymentWarrantyType.warranty) ? ji.paymentWarrantyType.warranty : null,\n language: (ji.paymentWarrantyType && ji.paymentWarrantyType.language) ? ji.paymentWarrantyType.language : null,\n description: (ji.paymentWarrantyType && ji.paymentWarrantyType.description) ? ji.paymentWarrantyType.description : null,\n region: (ji.paymentWarrantyType && ji.paymentWarrantyType.region) ? ji.paymentWarrantyType.region : null,\n }: null,\n // isPaymentTypeDisabled: ji.\n // isCausalPartDisabled: ji.\n startDate: ji.startDate,\n percentage: ji.percentage,\n discountTypeId: ji.discountTypeId,\n technicians: (ji.technicians && Array.isArray(ji.technicians))? ji.technicians.map((jit: JobcardItemTechnician)=>({\n id: jit.id,\n // THE BE IS BACK ONLY ID AND WE ENHANCE THE ID LINK\n linkId: jit.id,\n workshopUserId: jit.workshopUserId,\n estimatedDuration: jit.estimatedDuration,\n startDate: jit.startDate,\n // endDate: jit.\n spellLinkId: jit.spellLinkId,\n // available: jit.\n firstName: jit.firstName,\n lastName: jit.lastName,\n isDeleted: jit.isDeleted,\n })): [],\n installedDate: ji.installedDate,\n amountUseOnSpareParts: ji.amountUseOnSpareParts,\n sparePartInvoiceNumber: ji.sparePartInvoiceNumber,\n failedComponentSerialNumber: ji.failedComponentSerialNumber,\n replacedComponentSerialNumber: ji.replacedComponentSerialNumber,\n preAuthorizationCode: ji.preAuthorizationCode,\n authorizerName: (\n ji.authorizerName === 'NE' ||\n ji.authorizerName === 'CE'\n ) ? ji.authorizerName : null,\n groupReplaced: (\n ji.groupReplaced === 'N' ||\n ji.groupReplaced === 'R'\n ) ? ji.groupReplaced : null,\n serviceParticipation: ji.serviceParticipation,\n warrantyClaimData: ji.warrantyClaimData ? this.mapWarrantyClaimDataDtoToWarrantyClaimData(ji.warrantyClaimData) : undefined,\n selected: ji.selected,\n inspectionActivity: ji.inspectionActivity,\n sapResponse: ji.sapResponse,\n workshopBayId: ji.workshopBayId,\n officialTime: ji.officialTime,\n disabled: ji.disabled,\n docId: ji.docId,\n // etimDocLink: ji.\n jobcardItemSpells: (ji?.jobcardItemSpells && Array.isArray(ji?.jobcardItemSpells)) ? ji?.jobcardItemSpells.map((jis: JobcardItemSpell)=>({\n version: this.mapVersionField(jis.version),\n id: jis.id,\n workshopBayId: jis.workshopBayId,\n estimatedDuration: jis.estimatedDuration,\n startDate: jis.startDate,\n weight: jis.weight,\n selected: jis.selected,\n technicians: (ji?.technicians && Array.isArray(ji?.technicians)) ? ji?.technicians.map((jit: JobcardItemTechnician)=>({\n id: jit.id,\n // THE BE IS BACK ONLY ID AND WE ENHANCE THE ID LINK\n linkId: jit.id,\n workshopUserId: jit.workshopUserId,\n estimatedDuration: jit.estimatedDuration,\n startDate: jit.startDate,\n // endDate: jit.\n spellLinkId: jit.spellLinkId,\n // available: jit.\n firstName: jit.firstName,\n lastName: jit.lastName,\n isDeleted: jit.isDeleted,\n })): [],\n })): [],\n // remainingDays: ji.\n jobcardItemCustomerStatus: (ji?.jobcardItemCustomerStatus && Array.isArray(ji?.jobcardItemCustomerStatus)) ? ji?.jobcardItemCustomerStatus.map((jics: JobcardItemCustomerStatus)=>({\n id: jics.id,\n jobcardItemId: jics.jobcardItemId,\n action: (\n jics.action === 'approve' ||\n jics.action === 'decline' ||\n jics.action === 'autoApv' ||\n jics.action === 'autoDec'\n ) ? jics.action : null,\n actionDateTime: jics.actionDateTime,\n actionPerformedBy: jics.actionPerformedBy,\n actionType: (\n jics.actionType === 'online' ||\n jics.actionType === 'offline' ||\n jics.actionType === 'recep' ||\n jics.actionType === 'wty'\n ) ? jics.actionType : null,\n })): [],\n activityValidated: ji.activityValidated,\n // discounts: Array;\n // selectedDiscount: ji.\n // isDiscountAvailable: ji.\n tempJId: ji.tempJId,\n defferDeleteReason: ji.defferDeleteReason,\n // jobcardItemIuDocuments: Array;\n duration: ji.duration,\n })): [],\n jobcardItemDeleted: this.mapJobcardItemsDeleted(jobcard?.jobcardItemDeleted),\n version: this.mapVersionField(jobcard?.version),\n failureDate: jobcard.failureDate,\n };\n };\n\n mapPaymentTypeDtoToPaymentType(paymentType: PaymentTypeDto): PaymentType{\n return {\n id: paymentType.id,\n code: paymentType.code,\n type:(\n paymentType.type === 'retail' ||\n paymentType.type === 'warranty' ||\n paymentType.type === 'internal' ||\n paymentType.type === 'otherWarranty'\n ) ? paymentType.type : null,\n name: paymentType.name,\n isVisible: paymentType.isVisible,\n paymentSubTypes: paymentType.paymentSubTypes,\n weight: paymentType.weight,\n };\n };\n\n mapPaymentSubTypeDtoToPaymentSubType(paymentSubType: PaymentSubTypeDto): PaymentSubType {\n return {\n id: paymentSubType.id,\n code: paymentSubType.code,\n type: paymentSubType.type,\n categoryType: paymentSubType.categoryType,\n description: paymentSubType.description,\n isVisible: paymentSubType.isVisible,\n weight: paymentSubType.weight,\n paymentSubSubTypes: paymentSubType.paymentSubSubTypes\n };\n };\n\n mapWarrantyClaimDataDtoToWarrantyClaimData(warranty: WarrantyClaimDataDto): WarrantyClaimData{\n return {\n id: warranty.id,\n claimStatus: warranty.claimStatus,\n claimNumber: warranty.claimNumber,\n claimDate: warranty.claimDate,\n invoiceNumber: warranty.invoiceNumber,\n };\n }\n mapBrandDtoToBrand(brand: BrandDto): Brand{\n return {\n id: brand.id,\n name: brand.name,\n iceCode: brand.iceCode,\n // image: string;\n models: (brand.modelDtos && Array.isArray(brand.modelDtos))? brand.modelDtos.map((model: Model)=>({\n id: model.id,\n name: model.name,\n // idName: number;\n // iceCode: string;\n // nameObj: Name;\n // TODO not reported because in loop\n // brand: Brand;\n // series: Series;\n // ttList: Array;\n })): [],\n // series: Array;\n // typeList: Array;\n };\n }\n mapModelDtoToModel(model: ModelDto): Model{\n return {\n id: model.id,\n name: model.name,\n // idName: number;\n // iceCode: string;\n // nameObj: Name;\n // TODO not reported because in loop\n // brand: Brand;\n // series: Series;\n // ttList: Array;\n };\n }\n\n mapWorkshopUserDtoToWorkshopUser(wUser: WorkshopUserDto): WorkshopUser{\n return {\n id: wUser.id,\n views: (\n wUser.views === 'workshopAgendaView' ||\n wUser.views === 'technicianAgendaView' ||\n wUser.views === 'courtesyVehicleAgendaView' ||\n wUser.views === 'workshopPlanningView' ||\n wUser.views === 'workshopUtilisationView' ||\n wUser.views === 'technicianPlanningView' ||\n wUser.views === 'courtesyVehiclePlanningView'\n ) ? wUser.views : null,\n isActivityApproval: (\n wUser.isActivityApproval === 'yesToDoStatus' ||\n wUser.isActivityApproval === 'yesNewStatusOnly' ||\n wUser.isActivityApproval === 'outOfHoursNewStatus' ||\n wUser.isActivityApproval === 'outOfHoursNo' ||\n wUser.isActivityApproval === 'nope'\n ) ? wUser.isActivityApproval : null,\n dmsUserId: wUser.dmsUserId,\n firstName: wUser.firstName,\n lastName: wUser.lastName,\n language: wUser.language,\n workshopId: wUser.workshopId,\n workshopSalesOrganizationId: wUser.workshopSalesOrganizationId,\n isActive: wUser.isActive,\n isAdmin: wUser.isAdmin,\n isManualJobStatusOverride: wUser.isManualJobStatusOverride,\n // role: Role;\n // workshopBay: WorkshopBay;\n workshopBays: (wUser.workshopBays && Array.isArray(wUser.workshopBays))? wUser.workshopBays.map((wbay: any)=>({\n id: wbay.id,\n name: wbay.name,\n type: wbay.type,\n // workshopId: wbay.\n weight: wbay.weight,\n isActive: wbay.isActive,\n leadTechnician: wbay.leadTechnician,\n bayCode: wbay.bayCode,\n maximumUtilisation: wbay.maximumUtilisation,\n // TODO not reported because in loop\n // technicians: Array;\n })): [],\n unavailabilities: (wUser.unavailabilities && Array.isArray(wUser.unavailabilities))? wUser.unavailabilities.map((wuun: WorkshopUserUnavailability)=>({\n id: wuun.id,\n startDate: wuun.startDate,\n endDate: wuun.endDate,\n type: wuun.type,\n })): [],\n isTechnicianView: wUser.isTechnicianView,\n isAssociateUser: wUser.isAssociateUser,\n deviceToken: wUser.deviceToken,\n appVersion: wUser.appVersion,\n canEditJobcard: wUser.canEditJobcard,\n displayedName: wUser.displayedName,\n skills: (wUser.skills && Array.isArray(wUser.skills))? wUser.skills.map((skill: Skill)=>({\n id: skill.id,\n description: skill.description,\n })): [],\n efficiencyStart: wUser.efficiencyStart,\n efficiencyLevel: wUser.efficiencyLevel,\n weeklyHours: wUser.weeklyHours,\n monthlyHours: wUser.monthlyHours,\n shifts: (wUser.shifts && Array.isArray(wUser.shifts))? wUser.shifts.map((shift: Shift)=>({\n id: shift.id,\n userShiftId: shift.userShiftId,\n description: shift.description,\n dmsId: shift.dmsId,\n type: shift.type,\n startDate: shift.startDate,\n endDate: shift.endDate,\n periods: (shift.periods && Array.isArray(shift.periods))? shift.periods.map((shiper: ShiftPeriods)=>({\n id: shiper.id,\n startTime: shiper.startTime,\n endTime: shiper.endTime,\n day: shiper.day,\n })): [],\n // recurrence: Array;\n })): [],\n canSeePrice: wUser.canSeePrice,\n isAutomaticApproval: (\n wUser.isAutomaticApproval === 'yesImmediateAccess' ||\n wUser.isAutomaticApproval === 'yesDraftOnly' ||\n wUser.isAutomaticApproval === 'outOfHoursDraftOnly' ||\n wUser.isAutomaticApproval === 'outOfHoursNo' ||\n wUser.isAutomaticApproval === 'yesAnytime' ||\n wUser.isAutomaticApproval === 'yesOffline' ||\n wUser.isAutomaticApproval === 'nope'\n ) ? wUser.isAutomaticApproval : null,\n leadWorkshopBayId: wUser.leadWorkshopBayId,\n url: wUser.url,\n costRate: Number(wUser.costRate),\n email: wUser.email,\n canSelfAssign: wUser.canSelfAssign,\n isDisplayingOccupancy: wUser.isDisplayingOccupancy,\n clockingLogDate: wUser.clockingLogDate,\n workshopList: (wUser.workshopList && Array.isArray(wUser.workshopList))? wUser.workshopList.map((workshop: any)=>({\n id: workshop.id ? workshop.id : null,\n name: workshop.name ? workshop.name : null,\n address: workshop.address,\n city: workshop.city,\n country: workshop.country,\n phone: workshop.phone,\n email: workshop.email,\n sapCode: workshop.sapCode,\n workshopSalesOrganizations: (workshop.workshopSalesOrganizations && Array.isArray(workshop.workshopSalesOrganizations))? workshop.workshopSalesOrganizations.map((wso: WorkshopSale)=>({\n id: wso.id,\n // TODO Exist field brandDivision\n // brand: wso.\n // division: wso.\n salesCode: wso.salesCode,\n version: this.mapVersionField(wso.version),\n })): [],\n logoUrl: workshop.logoUrl,\n dmsUrl: workshop.dmsUrl,\n dmsAuthenticationId: workshop.dmsAuthenticationId,\n isImportStaffFromDms: workshop.isImportStaffFromDms,\n isTrWorkflow: workshop.isTrWorkflow,\n dmsAuthenticationPassword: workshop.dmsAuthenticationPassword,\n openingDays: (workshop.openingDays && Array.isArray(workshop.openingDays))? workshop.openingDays.map((od: OpeningDay)=>({\n // id?: number;\n weekday: od.weekday,\n periods: (od.periods && Array.isArray(od.periods))? od.periods.map((p: OpeningDayPeriods)=>({\n id: p.id,\n start: p.start,\n end: p.end,\n })): [],\n })): [],\n currencyCode: workshop.currencyCode,\n countryId: workshop.countryId,\n marketId: workshop.marketId,\n isDmsMaster: workshop.isDmsMaster,\n enableSafetyChecklist: workshop.enableSafetyChecklist,\n cspsUserId: workshop.cspsUserId,\n locatedInGB: workshop.locatedInGB,\n enabled: workshop.enabled,\n enableCsps: workshop.enableCsps,\n allowedTimePreferred: workshop.allowedTimePreferred,\n checkInMandatorySign: workshop.checkInMandatorySign,\n completionMandatorySign: workshop.completionMandatorySign,\n labourCost: workshop.labourCost,\n dmsErrorCount: workshop.dmsErrorCount.dmsErrorCount,\n operationId: workshop.operationId,\n standAloneMode: workshop.standAloneMode,\n // dmsClockingBehavior: Workshop.DmsClockingBehaviorEnum;\n dmsProvider: workshop.dmsProvider,\n addressDMSLimit: workshop.addressDMSLimit,\n // eWarrantyFieldsMandatory: workshop.\n enableForceClockStop: workshop.enableForceClockStop,\n forceClockStopEndTime: workshop.forceClockStopEndTime,\n // selected: workshop.\n })): [],\n };\n }\n\n mapJobcardItemDtoToJobcardItem(ji: JobcardItemDto): any{\n return {\n version: this.mapVersionField(ji.version),\n id: ji.id,\n type: ji.type,// JobcardItem.TypeEnum;\n subtype: ji.subtype,\n priority: ji.priority,\n weight: ji.weight,\n name: ji.name,\n description: ji.description,\n additionalDescription: ji.additionalDescription,\n code: ji.code,\n estimatedDuration: ji.estimatedDuration,\n // url: ji.\n // asistUrl: ji.\n operations: (ji.operations && Array.isArray(ji.operations))? ji.operations.map((ope: any)=>({\n id: ope.id,\n code: ope.code,\n label: ope.label,\n officialTime: ope.officialTime,\n durationTime: ope.durationTime,\n weight: ope.weight,\n manufacturer: ope.manufacturer,\n parts: (ope.parts && Array.isArray(ope.parts))? ope.parts.map((opar: OperationPart)=>({\n version: this.mapVersionField(opar.version),\n id: opar.id,\n quantity: opar.quantity,\n part: opar.part ?\n {\n id: opar.part.id,\n workshopId: opar.part.workshopId,\n code: opar.part.code,\n description: opar.part.description,\n partSuperseedingId: opar.part.partSuperseedingId,\n // partDetailId: opar.part.\n quantity: opar.part.quantity,\n // booking: opar.part.\n // visitDate: opar.part.\n // vehPlate: opar.part.\n // customer: opar.part.\n // activity: opar.part.\n manufacturer: opar.part.manufacturer,\n isKit: opar.part.isKit,\n // kitParts: Array;\n quantityInStock: opar.part.quantityInStock,\n quantityOnOrder: opar.part.quantityOnOrder,\n quantityInTransit: opar.part.quantityInTransit,\n // jobcardItemOperationPartLocationList: Array;\n // price: opar.part.\n homeLocation: opar.part.isHomeLocation,\n } : null,\n // jobCardItemOperation: JobcardItemOperationDto;\n pickupDate: opar.pickupDate,\n tobereturned: opar.toBeReturned,\n compulsory: opar.compulsory,\n price: opar.price,\n cost: opar.cost,\n selected: opar.selected,\n // addOnStatus: opar.\n quantityInStock: opar.quantityInStock,\n quantityOnOrder: opar.quantityOnOrder,\n quantityInTransit: opar.quantityInTransit,\n // dmsId: opar.\n jobcardItemOperationPartLocationList: (opar.jobcardItemOperationPartLocationList && Array.isArray(opar.jobcardItemOperationPartLocationList))? opar.jobcardItemOperationPartLocationList.map((jiopll: OperationPartLocation)=>({\n version: this.mapVersionField(jiopll.version),\n id: jiopll.id,\n locationId: jiopll.locationId,\n // partId: jiopll.\n quantityInStock: jiopll.quantityInStock,\n quantityOnOrder: jiopll.quantityOnOrder,\n quantityInTransit: jiopll.quantityInTransit,\n siteName: jiopll.siteName,\n locationName: jiopll.locationName,\n })): [],\n ewarrantyCode: opar.ewarrantyCode,\n })): [],\n consumables: (ope.consumables && Array.isArray(ope.consumables))? ope.consumables.map((cons: OperationConsumable)=>({\n id: cons.id,\n quantity: cons.quantity,\n consumable: cons.consumable ? {\n id: cons.consumable.id,\n // workshopId: number;\n code: cons.consumable.code,\n // description: string;\n partNumber: cons.consumable.partNumber,\n // selected: boolean;\n } : undefined,\n // compulsory\n // price\n selected: cons.selected,\n ewarrantyCode: cons.ewarrantyCode,\n })): [],\n // kits: Array;\n price: ope.price,\n compulsory: ope.compulsory,\n selected: ope.selected,\n isKitComplete: ope.isKitComplete,\n useKitPart: ope.useKitPart,\n // isPartAvailable: ope.\n srt: ope.srt,\n type: ope.type,\n isDefault: ope.isDefault,\n version: this.mapVersionField(ope.version),\n })): [],\n jobcardItemStatus: (ji.jobcardItemStatus && Array.isArray(ji.jobcardItemStatus))? ji.jobcardItemStatus.map((jis: JobcardItemStatus)=>({\n version: this.mapVersionField(jis.version),\n id: jis.id,\n time: jis.time,\n endTime: jis.endTime,\n status: (\n jis.status === 'new' ||\n jis.status === 'todo' ||\n jis.status === 'inProgress' ||\n jis.status === 'pending' ||\n jis.status === 'invoiced' ||\n jis.status === 'done' ||\n jis.status === 'inProgressProductive' ||\n jis.status === 'doneProductive' ||\n jis.status === 'pendingProductive' ||\n jis.status === 'doneNotWithinPlannedTime'\n ) ? jis.status : null,\n duration: jis.duration,\n clockingStatus: (\n jis.clockingStatus === 'CLOCKING_START' ||\n jis.clockingStatus === 'CLOCKING_ONGOING' ||\n jis.clockingStatus === 'CLOCKING_STOP'\n ) ? jis.clockingStatus : null,\n appointmentPriority: (\n jis.appointmentPriority === 'high' ||\n jis.appointmentPriority === 'medium' ||\n jis.appointmentPriority === 'low' ||\n jis.appointmentPriority === 'nopriority'\n ) ? jis.appointmentPriority : null,\n jobcardItemId: jis.jobcardItemId,\n workshopUserId: jis.workshopUserId,\n reason: (\n jis.reason === 'forgotClockOn' ||\n jis.reason === 'forgotClockOff' ||\n jis.reason === 'helpingAnotherTechnician' ||\n jis.reason === 'forgotClockInOut' ||\n jis.reason === 'technicalErrors' ||\n jis.reason === 'discount' ||\n jis.reason === 'other'\n ) ? jis.reason : null,\n otherReason: jis.otherReason,\n deleted: jis.deleted,\n // currentChangeActivity: jis.\n technicianFirstName: jis.technicianFirstName,\n technicianLastName: jis.technicianLastName,\n dmsId: jis.dmsId,\n })): [],\n jobcardPartsBacklog: (ji.jobcardPartsBacklog && Array.isArray(ji.jobcardPartsBacklog))? ji.jobcardPartsBacklog.map((jpb: JobcardPartsBacklog)=>({\n id: jpb.id,\n appointmentId: jpb.appointmentId,\n jobcardItemId: jpb.jobcardItemId,\n quantity: jpb.quantity,\n partId: jpb.partId,\n customerCompanyId: jpb.customerCompanyId,\n part: jpb.part ? this.mapPartToPartDto(jpb.part) : undefined,\n // view: jpb.\n workshopId: jpb.workshopId,\n cspsOrderId: jpb.cspsOrderId,\n orderSimulationId: jpb.orderSimulationId,\n partStatus: jpb.partStatus,\n basicDiscount: jpb.basicDiscount,\n promoDiscount: jpb.promoDiscount,\n grossPrice: jpb.grossPrice,\n netPrice: jpb.netPrice,\n customerName: jpb.customerName,\n partCode: jpb.partCode,\n description: jpb.description,\n operation: jpb.operation,\n orderSimulationDate: jpb.orderSimulationDate,\n expectedDeliveryDate: jpb.expectedDeliveryDate,\n details: jpb.details,\n addedDate: jpb.addedDate,\n })): [],\n jobcardItemAttachments: (ji?.jobcardItemAttachments && Array.isArray(ji?.jobcardItemAttachments)) ? ji?.jobcardItemAttachments.map((jiaa: any) => ({\n id: jiaa.id,\n url: jiaa.url,\n type: jiaa.type,\n year: jiaa.year,\n jobOrder: jiaa.jobOrder,\n filename: jiaa.filename,\n sapCode: jiaa.sapCode,\n filesize: jiaa.filesize,\n creationDate: jiaa.creationDate,\n reason: jiaa.reason,\n isDeleted: jiaa.isDeleted,\n isSapOk: jiaa.isSapOk,\n description: jiaa.description,\n workshopUserId: jiaa.workshopUserId,\n })) : [],\n workshopUserId: ji.workshopUserId,\n comment: ji.comment,\n deferred: ji.deferred,\n deferredDate: ji.deferredDate,\n deferredToDate: ji.deferredToDate,\n reason: ji.reason,\n isExtraActivity: ji.isExtraActivity,\n isCustomerAgreed: ji.isCustomerAgreed,\n // CONTROLLARE SE IL CAMPO é CORRETTO\n agreementSignatureUrl: ji.customerSignatureUrl,\n agreementCustomerName: ji.agreementCustomerName,\n // travels: Array;\n visible: ji.visible,\n supplierCode: ji.supplierCode,\n defectCode: ji.defectCode,\n failureCode: ji.failureCode,\n failureDescription: ji.failureDescription,\n failureSeverity: ji.failureSeverity,\n warrantyCoverage: ji.warrantyCoverage,\n warrantyContract: ji.warrantyContract,\n contractNumber: ji.contractNumber,\n warrantyType: ji.warrantyType,\n causalPartId: ji.causalPartId,\n extraOperations: (ji?.extraOperations && Array.isArray(ji?.extraOperations)) ? ji?.extraOperations.map((eo: ExtraOperation) => ({\n id: eo.id,\n // typeLabel: eo.\n type: eo.type,\n description: eo.description,\n code: eo.code,\n supplierName: eo.supplierName,\n level: eo.level,\n distance: eo.distance,\n amount: eo.amount,\n compulsory: eo.compulsory,\n selected: eo.selected,\n dmsId: eo.dmsId,\n invoiceNumber: eo.invoiceNumber,\n manufacturer: eo.manufacturer,\n quantity: eo.quantity,\n deleted: eo.deleted,\n active: eo.active,\n version: this.mapVersionField(eo?.version),\n })) : [],\n deleted: ji.deleted,\n // loading: ji.\n paymentCode: ji.paymentCode,\n paymentTypeId: ji.paymentTypeId,\n payType: ji.payType,\n paymentSubcode: ji.paymentSubcode,\n paymentSubTypeId: ji.paymentSubTypeId,\n paymentSub2Code: ji.paymentSub2Code,\n paymentSubType2Id: ji.paymentSubType2Id,\n paymentSub3Code: ji.paymentSub3Code,\n paymentSubType3Id: ji.paymentSubType3Id,\n // defectDescription: ji.\n // supplierDescription: ji.\n causalPartCode: ji.causalPartCode,\n splits: (ji?.splits && Array.isArray(ji?.splits)) ? ji?.splits.map((s: Split) => ({\n id: s.id,\n customerPercent: s.customerPercent,\n warrantyPercent: s.warrantyPercent,\n internalPercent: s.internalPercent,\n typeCode: s.typeCode,\n })) : [],\n mpInfo: {\n planId: (ji.mpInfo && ji.mpInfo.planId) ? ji.mpInfo.planId : null,\n description: (ji.mpInfo && ji.mpInfo.description) ? ji.mpInfo.description : null,\n couponOver: (ji.mpInfo && ji.mpInfo.couponOver) ? ji.mpInfo.couponOver : null,\n couponSoon: (ji.mpInfo && ji.mpInfo.couponSoon) ? ji.mpInfo.couponSoon : null,\n couponSelected: (ji.mpInfo && ji.mpInfo.couponSelected) ? ji.mpInfo.couponSelected : null,\n couponStatus: (ji.mpInfo && ji.mpInfo.couponStatus) ? ji.mpInfo.couponStatus : null,\n couponModifiable: (ji.mpInfo && ji.mpInfo.couponModifiable) ? ji.mpInfo.couponModifiable : null,\n couponSavable: (ji.mpInfo && ji.mpInfo.couponSavable) ? ji.mpInfo.couponSavable : null,\n couponIntervalComment: (ji.mpInfo && ji.mpInfo.planId) ? ji.mpInfo.couponIntervalComment : null,\n overdueValues: (ji.mpInfo && ji.mpInfo?.overdueValues && Array.isArray(ji.mpInfo?.overdueValues)) ? ji.mpInfo?.overdueValues.map((ov: MpInformationDelta) => ({\n unit: ov.unit,\n value: ov.value,\n })) : [],\n soonValues: (ji.mpInfo && ji.mpInfo?.soonValues && Array.isArray(ji.mpInfo?.soonValues)) ? ji.mpInfo?.soonValues.map((sv: MpInformationDelta) => ({\n unit: sv.unit,\n value: sv.value,\n })) : [],\n },\n couponStatus: ji.couponStatus,\n status: ji.status,\n // totalPrice: ji.\n generalNote: ji.generalNote,\n cause: ji.cause,\n correction: ji.correction,\n internalNotes: ji.internalNotes,\n paymentType: ji.paymentType ? this.mapPaymentTypeDtoToPaymentType(ji.paymentType) : undefined,\n paymentSubType: ji.paymentSubType ? this.mapPaymentSubTypeDtoToPaymentSubType(ji.paymentSubType) : undefined,\n paymentSubType2: ji.paymentSubType2 ? {\n id: ji.paymentSubType2.id,\n code:ji.paymentSubType2.code,\n description:ji.paymentSubType2.description,\n // subLevel: ji.paymentSubType2.\n categoryType:ji.paymentSubType2.categoryType,\n isVisible: ji.paymentSubType2.isVisible,\n weight: ji.paymentSubType2.weight,\n } : null,\n paymentSubType3: ji.paymentSubType3 ? {\n id: ji.paymentSubType3.id,\n code:ji.paymentSubType3.code,\n description:ji.paymentSubType3.description,\n // subLevel: ji.paymentSubType3.\n categoryType:ji.paymentSubType3.categoryType,\n isVisible: ji.paymentSubType3.isVisible,\n weight: ji.paymentSubType3.weight,\n } : null,\n paymentWarrantyType: ji.paymentWarrantyType ? {\n id: (ji.paymentWarrantyType && ji.paymentWarrantyType.id) ? ji.paymentWarrantyType.id : null,\n warranty: (ji.paymentWarrantyType && ji.paymentWarrantyType.warranty) ? ji.paymentWarrantyType.warranty : null,\n language: (ji.paymentWarrantyType && ji.paymentWarrantyType.language) ? ji.paymentWarrantyType.language : null,\n description: (ji.paymentWarrantyType && ji.paymentWarrantyType.description) ? ji.paymentWarrantyType.description : null,\n region: (ji.paymentWarrantyType && ji.paymentWarrantyType.region) ? ji.paymentWarrantyType.region : null,\n }: null,\n // isPaymentTypeDisabled: ji.\n // isCausalPartDisabled: ji.\n startDate: ji.startDate,\n percentage: ji.percentage,\n discountTypeId: ji.discountTypeId,\n technicians: (ji.technicians && Array.isArray(ji.technicians))? ji.technicians.map((jit: JobcardItemTechnician)=>({\n id: jit.id,\n // THE BE IS BACK ONLY ID AND WE ENHANCE THE ID LINK\n linkId: jit.id,\n workshopUserId: jit.workshopUserId,\n estimatedDuration: jit.estimatedDuration,\n startDate: jit.startDate,\n // endDate: jit.\n spellLinkId: jit.spellLinkId,\n // available: jit.\n firstName: jit.firstName,\n lastName: jit.lastName,\n isDeleted: jit.isDeleted,\n })): [],\n installedDate: ji.installedDate,\n amountUseOnSpareParts: ji.amountUseOnSpareParts,\n sparePartInvoiceNumber: ji.sparePartInvoiceNumber,\n failedComponentSerialNumber: ji.failedComponentSerialNumber,\n replacedComponentSerialNumber: ji.replacedComponentSerialNumber,\n preAuthorizationCode: ji.preAuthorizationCode,\n authorizerName: (\n ji.authorizerName === 'NE' ||\n ji.authorizerName === 'CE'\n ) ? ji.authorizerName : null,\n groupReplaced: (\n ji.groupReplaced === 'N' ||\n ji.groupReplaced === 'R'\n ) ? ji.groupReplaced : null,\n serviceParticipation: ji.serviceParticipation,\n\n warrantyClaimData: ji.warrantyClaimData ? this.mapWarrantyClaimDataDtoToWarrantyClaimData(ji.warrantyClaimData) : undefined,\n selected: ji.selected,\n inspectionActivity: ji.inspectionActivity,\n sapResponse: ji.sapResponse,\n workshopBayId: ji.workshopBayId,\n checklistInstances: this.mapChecklistInstances(ji?.checklistInstances),\n officialTime: ji.officialTime,\n disabled: ji.disabled,\n docId: ji.docId,\n // etimDocLink: ji.\n jobcardItemSpells: (ji?.jobcardItemSpells && Array.isArray(ji?.jobcardItemSpells)) ? ji?.jobcardItemSpells.map((jis: JobcardItemSpell)=>({\n version: this.mapVersionField(jis.version),\n id: jis.id,\n workshopBayId: jis.workshopBayId,\n estimatedDuration: jis.estimatedDuration,\n startDate: jis.startDate,\n weight: jis.weight,\n selected: jis.selected,\n technicians: (ji?.technicians && Array.isArray(ji?.technicians)) ? ji?.technicians.map((jit: JobcardItemTechnician)=>({\n id: jit.id,\n // THE BE IS BACK ONLY ID AND WE ENHANCE THE ID LINK\n linkId: jit.id,\n workshopUserId: jit.workshopUserId,\n estimatedDuration: jit.estimatedDuration,\n startDate: jit.startDate,\n // endDate: jit.\n spellLinkId: jit.spellLinkId,\n // available: jit.\n firstName: jit.firstName,\n lastName: jit.lastName,\n isDeleted: jit.isDeleted,\n })): [],\n })): [],\n // remainingDays: ji.\n jobcardItemCustomerStatus: (ji?.jobcardItemCustomerStatus && Array.isArray(ji?.jobcardItemCustomerStatus)) ? ji?.jobcardItemCustomerStatus.map((jics: JobcardItemCustomerStatus)=>({\n id: jics.id,\n jobcardItemId: jics.jobcardItemId,\n action: (\n jics.action === 'approve' ||\n jics.action === 'decline' ||\n jics.action === 'autoApv' ||\n jics.action === 'autoDec'\n ) ? jics.action : null,\n actionDateTime: jics.actionDateTime,\n actionPerformedBy: jics.actionPerformedBy,\n actionType: (\n jics.actionType === 'online' ||\n jics.actionType === 'offline' ||\n jics.actionType === 'recep' ||\n jics.actionType === 'wty'\n ) ? jics.actionType : null,\n })): [],\n activityValidated: ji.activityValidated,\n // discounts: Array;\n // selectedDiscount: ji.\n // isDiscountAvailable: ji.\n tempJId: ji.tempJId,\n defferDeleteReason: ji.defferDeleteReason,\n // jobcardItemIuDocuments: Array;\n duration: ji.duration,\n };\n }\n\n mapAppointmentDtoToAppointmentInCreation(app: AppointmentDto): any {\n return {\n id: app.id,\n workshopId: app.workshopId,\n workshopBayId: app.workshopBayId,\n workshopUserId: app.workshopUserId,\n createdByUserId: app.createdByUserId,\n customerNeed: app.customerNeed,\n repairAddress: app.repairAddress,\n types: app.types,\n mileage: app.mileage,\n engineHours: app.engineHours,\n failureEngineHours: app.failureEngineHours,\n receptionDate: app.receptionDate,\n deliveryDate: app.deliveryDate,\n // repairCompletionDate: app.\n actualReceptionDate: app.actualReceptionDate,\n actualDeliveryDate: app.actualDeliveryDate,\n plannedDeliveryDate: app.plannedDeliveryDate,\n dmsCreationDate: app.dmsCreationDate,\n jobcard: app.jobcard ? this.mapJobcardDtoToJobcard(app.jobcard) : undefined,\n customerCompany: app.customerCompany ? {\n id: app.customerCompany.id,\n dmsId: app.customerCompany.dmsId,\n name: app.customerCompany.name,\n city: app.customerCompany.city,\n country: app.customerCompany.country,\n workshopId:app.customerCompany.workshopId,\n isActive: app.customerCompany.isActive,\n isTcChecked: app.customerCompany.isTcChecked,\n isMrChecked: app.customerCompany.isMrChecked,\n isSurveyChecked: app.customerCompany.isSurveyChecked,\n tcCheckedDate: app.customerCompany.tcCheckedDate,\n mrCheckedDate: app.customerCompany.mrCheckedDate,\n surveyCheckedDate: app.customerCompany.surveyCheckedDate,\n creditStatus: app.customerCompany.creditStatus,\n creditStatusId:app.customerCompany.creditStatusId,\n creditAmount: app.customerCompany.creditAmount,\n zipcode: app.customerCompany.zipcode,\n address: app.customerCompany.address,\n displayedName: app.customerCompany.displayedName,\n mobilePhone: app.customerCompany.mobilePhone,\n phone: app.customerCompany.phone,\n email: app.customerCompany.email,\n customerNote: app.customerCompany.customerNote,\n users: (app.customerCompany.users && Array.isArray(app.customerCompany.users)) ? app.customerCompany.users.map((user: CustomerCompanyUser) => ({\n id: user.id,\n customerCompanyId: user.customerCompanyId,\n firstName: user.firstName,\n lastName: user.lastName,\n email: user.email,\n mobilePhone: user.mobilePhone,\n phone: user.phone,\n dmsId: user.dmsId,\n })) : [],\n alternateContactDetails: (app?.customerCompany.cpdContactDetails && Array.isArray(app?.customerCompany.cpdContactDetails)) ? app?.customerCompany.cpdContactDetails.map((cpd: CpdContactDetails)=>({\n id: cpd.id,\n customerName: cpd.customerName,\n cityName: cpd.cityName,\n countryCode: cpd.countryCode,\n address: cpd.address,\n zipCode: cpd.zipCode,\n })): [],\n isCpd: app.customerCompany.isCpd,\n isCashCust: app.customerCompany.isCashCust,\n } : null,\n vehicle: app.vehicle ? this.mapJobcardVehicleViewDtoConsumableToVehicle(app.vehicle) : undefined,\n vehicleCourtesy: app.vehicleCourtesy ? {\n id: app.vehicleCourtesy.id,\n vin: app.vehicleCourtesy.vin,\n brand: app.vehicleCourtesy.brand ? this.mapBrandDtoToBrand(app.vehicleCourtesy.brand) : undefined,\n // series: Series;\n model: app.vehicleCourtesy.model ? this.mapModelDtoToModel(app.vehicleCourtesy.model) : undefined,\n plate: app.vehicleCourtesy.plate,\n mileage: app.vehicleCourtesy.mileage,\n status: app.vehicleCourtesy.status,\n dmsId: app.vehicleCourtesy.dmsId,\n workshop: app.vehicleCourtesy.workshop ? this.mapWorkshopDtoToWorkshop(app.vehicleCourtesy.workshop): undefined,\n vehicleNote: app.vehicleCourtesy.vehicleNote,\n // TODO not reported because in loop\n // appointments: Array;\n } : null,\n status: app.status ? {\n id: app.status.id,\n time: app.status.time,\n status: app.status.status,\n reason: app.status.reason,\n version: this.mapVersionField(app?.status?.version),\n customerCompanyUser: app.status.customerCompanyUser ? {\n id: app.status.customerCompanyUser.id,\n customerCompanyId: app.status.customerCompanyUser.customerCompanyId,\n firstName: app.status.customerCompanyUser.firstName,\n lastName: app.status.customerCompanyUser.lastName,\n email: app.status.customerCompanyUser.email,\n mobilePhone: app.status.customerCompanyUser.mobilePhone,\n phone: app.status.customerCompanyUser.phone,\n dmsId: app.status.customerCompanyUser.dmsId,\n } : {\n id: undefined,\n customerCompanyId: undefined,\n firstName: undefined,\n lastName: undefined,\n email: undefined,\n mobilePhone: undefined,\n phone: undefined,\n dmsId: undefined,\n },\n workshopUser: app.status.workshopUser ? this.mapWorkshopUserDtoToWorkshopUser(app.status.workshopUser) : undefined,\n } : { id: undefined,\n time: undefined,\n status: undefined,\n reason: undefined,\n version: undefined,\n customerCompanyUser: undefined,\n },\n unitStatus: app.unitStatus ? {\n id: app.unitStatus.id,\n date: app.unitStatus.date,\n unitDown: app.unitStatus.unitDown,\n version: this.mapVersionField(app?.unitStatus?.version),\n }: null,\n dmsResponseCode: app.dmsResponseCode,\n dmsResponseMessage: app.dmsResponseMessage,\n checklistInstances: (app.checklistInstances && Array.isArray(app.checklistInstances))? app.checklistInstances.map((cli: ChecklistInstance)=>({\n id: cli.id,\n summaryUrl: cli.summaryUrl,\n content: cli.content,\n // checklistGroups\n appointmentId: cli.appointmentId,\n type: cli.type,\n workshopUserId: cli.workshopUserId,\n checkListResult: (cli.checkListResult && Array.isArray(cli.checkListResult))? cli.checkListResult.map((clr: ChecklistResult)=>({\n id: clr.id,\n itemId: clr.itemId,\n commentResult: clr.commentResult,\n resultValue: clr.resultValue,\n timeResult: clr.timeResult,\n version: this.mapVersionField(clr?.version),\n checkListResultAttachment:(clr?.checkListResultAttachment && Array.isArray(clr?.checkListResultAttachment)) ? clr?.checkListResultAttachment.map((cra: ChecklistResultAttachment)=>({\n id: cra.id,\n type: cra.type,\n url: cra.url,\n year: cra.year,\n jobOrder: cra.jobOrder,\n filename: cra.filename,\n sapCode: cra.sapCode,\n size: cra.size,\n // creationDate:\n isDeleted: cra.isDeleted,\n isSapOk: cra.isSapOk,\n reason: cra.reason,\n version: this.mapVersionField(cra.version),\n })): [],\n })): [],\n // checklistSignature\n checklistTemplateId: cli.checklistTemplateId,\n checklistTemplateTitle: cli.checklistTemplateTitle,\n jobcardItemId: cli.jobcardItemId,\n submitted: cli.submitted,\n completionDate: cli.completionDate,\n version: this.mapVersionField(cli.version),\n })): [],\n checklistDamages: (app.checkListDamages && Array.isArray(app.checkListDamages))? app.checkListDamages.map((cld: ChecklistDamage)=>({\n id: cld.id,\n type: cld.type,\n url: cld.url,\n year: cld.year,\n jobOrder: cld.jobOrder,\n filename: cld.filename,\n sapCode: cld.sapCode,\n size: cld.size,\n zone: cld.zone,\n // creationDate: cld.\n comment: cld.comment,\n isDeleted: cld.isDeleted,\n isSapOk: cld.isSapOk,\n reason: cld.reason,\n version: this.mapVersionField(cld.version),\n })): [],\n salesOrganizationId: app.salesOrganizationId,\n driver: app.driver ? {\n id: app.driver.id,\n customerCompanyId: app.driver.customerCompanyId,\n firstName: app.driver.firstName,\n lastName: app.driver.lastName,\n email: app.driver.email,\n mobilePhone: app.driver.mobilePhone,\n phone: app.driver.phone,\n dmsId: app.driver.dmsId,\n } : {\n id: undefined,\n customerCompanyId: undefined,\n firstName: undefined,\n lastName: undefined,\n email: undefined,\n mobilePhone: undefined,\n phone: undefined,\n dmsId: undefined,\n },\n workshopSales: app.workshopSales,\n partSales: app.partSales,\n officialTime: app.officialTime,\n efficiency: app.efficiency,\n onHold: app.onHold,\n onHoldReason: app.onHoldReason ? {\n id: app.onHoldReason.id,\n description: app.onHoldReason.description,\n workshopId: app.onHoldReason.workshopId,\n isVisible: app.onHoldReason.isVisible,\n version: this.mapVersionField(app?.onHoldReason?.version),\n }: null,\n isBreakdownAppt: app.isBreakdownAppt,\n isAppointmentOpened: app.isAppointmentOpened,\n orderTypeHeaderCode: app.orderTypeHeaderCode,\n vehicleCourtesyBookingDto: app.vehicleCourtesyBookingDto ? {\n id: app.vehicleCourtesyBookingDto.id,\n startDate: app.vehicleCourtesyBookingDto.startDate,\n endDate: app.vehicleCourtesyBookingDto.endDate,\n reason: app.vehicleCourtesyBookingDto.reason,\n version: this.mapVersionField(app?.vehicleCourtesyBookingDto?.version),\n // TODO vehiclecourtesy in vehicle ?\n // vehicleCourtesy: Vehicle;\n // TODO not reported because in loop\n // appointment?: Appointment;\n } : null,\n numberOfBales: app.numberOfBales,\n numberOfAcres: app.numberOfAcres,\n threshingHours: app.threshingHours,\n requiredExtraUnits: app.requiredExtraUnits,\n // ManuallyUnits: Appointment.ManuallyUnitsEnum;\n // travels: Array;\n // currentAppointmentstatus: AppointmentStatus;\n cpdAlternateContact: app.cpdAlternateContact ? {\n id: app.cpdAlternateContact.id,\n customerName: app.cpdAlternateContact.customerName,\n cityName: app.cpdAlternateContact.cityName,\n address: app.cpdAlternateContact.address,\n countryCode: app.cpdAlternateContact.countryCode,\n zipCode: app.cpdAlternateContact.zipCode,\n } : undefined,\n // cpdContactDetails: CpdContactDetails;\n // epartsParts: Array;\n dmsLogError: app.dmsLogError,\n // appointmentPriority: app.\n priorityType: app.priorityType ? {\n id: app.priorityType.id ? app.priorityType.id : null,\n description: app.priorityType.description ? app.priorityType.description : null,\n icon: app.priorityType.icon ? app.priorityType.icon : null,\n // value: app.priorityType ? app.priorityType\n status: app.priorityType.status ? ((\n app.priorityType.status === 'High' ||\n app.priorityType.status === 'Medium' ||\n app.priorityType.status === 'Low' ||\n app.priorityType.status === 'NoPriority'\n ) ? app.priorityType.status : null) : null,\n type: app.priorityType.type ? app.priorityType.type : null,\n defaultPriority: app.priorityType.defaultPriority ? app.priorityType.defaultPriority : null\n } : null,\n currentStatus: app.currentStatus ? ((\n app.currentStatus === 'new' ||\n app.currentStatus === 'draft' ||\n app.currentStatus === 'schedule' ||\n app.currentStatus === 'appointmentPrepared' ||\n app.currentStatus === 'received' ||\n app.currentStatus === 'reparing' ||\n app.currentStatus === 'serviceAdvisorValidationPending' ||\n app.currentStatus === 'clientValidationPending' ||\n app.currentStatus === 'warrantyValidationPending' ||\n app.currentStatus === 'sentBackError' ||\n app.currentStatus === 'workfileValidated' ||\n app.currentStatus === 'delivered' ||\n app.currentStatus === 'jobcardFinalised' ||\n app.currentStatus === 'cancelled'\n ) ? app.currentStatus : null) : null,\n // iuDocuments: Array;\n customerPaymentMode: app.customerPaymentMode,\n version: this.mapVersionField(app?.version),\n };\n }\n\n mapVersionField(version?: number){\n //(item?.version || item?.version === 0) ? item?.version : 0\n return (version || version === 0) ? version : 0;\n }\n\n mapJobcardDtoToJobcard(jobcard: JobcardDto): Jobcard {\n return {\n id: jobcard.id,\n dmsJobOrder: jobcard.dmsJobOrder,\n dealerClaimNumber: jobcard.dealerClaimNumber,\n ansDossier: jobcard.ansDossier,\n dmsToStrClaim: jobcard.dmsToStrClaim ? jobcard.dmsToStrClaim.toString() : null,\n claim: jobcard.claim ? jobcard.claim.toString() : null,\n estimatedDuration: jobcard.estimatedDuration,\n startTime: jobcard.startTime,\n endTime: jobcard.endTime,\n failureDate: jobcard.failureDate,\n jobcardItems: (jobcard.jobcardItems && Array.isArray(jobcard.jobcardItems))\n ? jobcard.jobcardItems.map((jid: any) => this.mapJobcardItemDtoToJobcardItem(jid))\n : [],\n jobcardItemDeleted: (jobcard.jobcardItemDeleted && Array.isArray(jobcard.jobcardItemDeleted)) ? jobcard.jobcardItemDeleted.map((jid: JobcardItemDeleted) => ({\n id: jid.id,\n name: jid.name,\n code: jid.code,\n type: jid.type,\n jobcardId: jid.jobcardId,\n })) : [],\n jobcardAttachmentDtos: (jobcard.jobcardAttachmentDtos && Array.isArray(jobcard.jobcardAttachmentDtos)) ? jobcard.jobcardAttachmentDtos.map((jad: JobcardAttachment) => ({\n id: jad.id,\n type: jad.type,\n url: jad.url,\n year: jad.year,\n filename: jad.filename,\n jobOrder: jad.jobOrder,\n sapCode: jad.sapCode,\n filesize: jad.filesize,\n creationDate: jad.creationDate,\n isDeleted: jad.isDeleted,\n isSapOk: jad.isSapOk,\n reason: jad.reason,\n description: jad.description,\n workshopUserId: jad.workshopUserId,\n })) : [],\n customerOrderNumber: jobcard.customerOrderNumber,\n dmsOrderType: jobcard.dmsOrderType ? ((\n jobcard.dmsOrderType === 'Quote' ||\n jobcard.dmsOrderType === 'Invoice' ||\n jobcard.dmsOrderType === 'Reservation' ||\n jobcard.dmsOrderType === 'Order'\n ) ? jobcard.dmsOrderType : null) : null,\n djcOrderType: jobcard.djcOrderType ? ((\n jobcard.djcOrderType === 'readyToInvoice' ||\n jobcard.djcOrderType === 'Invoice'\n ) ? jobcard.djcOrderType : null) : null,\n jobcardTravels: (jobcard.jobcardTravels && Array.isArray(jobcard.jobcardTravels)) ? jobcard.jobcardTravels.map((jt: JobcardTravel) => ({\n id: jt.id,\n name: jt.name,\n workshopUserId: jt.workshopUserId,\n duration: jt.duration,\n distance: jt.distance,\n date: jt.date,\n reason: jt.reason ? ((\n jt.reason === 'forgotRecordTravel' ||\n jt.reason === 'forgotStartStop' ||\n jt.reason === 'helpingAnotherTechnician' ||\n jt.reason === 'technicalErrors' ||\n jt.reason === 'discount' ||\n jt.reason === 'other'\n ) ? jt.reason : null) : null,\n otherReason: jt.otherReason,\n deleted: jt.deleted,\n positions: (jt.positions && Array.isArray(jt.positions)) ? jt.positions.map((pos: WorkshopUserTravelPosition) => ({\n id: pos.id,\n workshopUserId: pos.workshopUserId,\n jobcardTravelId: pos.jobcardTravelId,\n // jobcardItemTravelId: pos.\n latitude: pos.latitude,\n longitude: pos.longitude,\n positionDate: pos.positionDate,\n positionType: pos.positionType ? ((\n pos.positionType === 'START' ||\n pos.positionType === 'ONGOING' ||\n pos.positionType === 'STOP'\n ) ? pos.positionType : null) : null,\n deviceStatus: pos.deviceStatus,\n })) : [],\n travelFromAddressLine1: jt.travelFromAddressLine1,\n travelFromAddressLine2: jt.travelFromAddressLine2,\n travelFromAddressLine3: jt.travelFromAddressLine3,\n travelFromAddressLine4: jt.travelFromAddressLine4,\n travelFromPostalCode: jt.travelFromPostalCode,\n travelToAddressLine1: jt.travelToAddressLine1,\n travelToAddressLine2: jt.travelToAddressLine2,\n travelToAddressLine3: jt.travelToAddressLine3,\n travelToAddressLine4: jt.travelToAddressLine4,\n travelToPostalCode: jt.travelToPostalCode,\n internalNotes: jt.internalNotes,\n estimatedDistance: jt.estimatedDistance,\n estimatedDuration: jt.estimatedDuration,\n paymentType: jt.paymentType ? this.mapPaymentTypeDtoToPaymentType(jt.paymentType) : undefined,\n paymentSubType: jt.paymentSubType ? this.mapPaymentSubTypeDtoToPaymentSubType(jt.paymentSubType) : undefined,\n // paymentSubSubType2: PaymentSubSubType;\n // paymentSubSubType3: PaymentSubSubType;\n itemCode: jt.itemCode,\n travelSource: jt.travelSource,\n travelExtraCode: jt.travelExtraCode,\n // travelVisible: boolean;\n price: jt.price,\n travelFromShowCoordinates: jt.travelFromShowCoordinates ? ((\n jt.travelFromShowCoordinates === 'travelFromAddress' ||\n jt.travelFromShowCoordinates === 'travelFromCoordinates'\n ) ? jt.travelFromShowCoordinates : null) : null,\n travelToShowCoordinates: jt.travelToShowCoordinates ? ((\n jt.travelToShowCoordinates === 'travelToAddress' ||\n jt.travelToShowCoordinates === 'travelToCoordinates'\n ) ? jt.travelToShowCoordinates : null) : null,\n travelFromLatitude: jt.travelFromLatitude,\n travelFromLongitude: jt.travelFromLongitude,\n travelToLatitude: jt.travelToLatitude,\n travelToLongitude: jt.travelToLongitude,\n travelTypeFrom: jt.travelTypeFrom,\n travelTypeTo: jt.travelTypeTo,\n travelFromManualRefreshDate: jt.travelFromManualRefreshDate,\n travelToManualRefreshDate: jt.travelToManualRefreshDate,\n travelFromGpsImportedDate: jt.travelFromGpsImportedDate,\n travelToGpsImportedDate: jt.travelToGpsImportedDate,\n warrantyClaimNumbers: jt.warrantyClaimNumbers,\n sapResponse: jt.sapResponse,\n })) : [],\n jobcardMileages: (jobcard.jobcardMileages && Array.isArray(jobcard.jobcardMileages)) ? jobcard.jobcardMileages.map((jm: JobcardAttachment) => ({\n id: jm.id,\n type: jm.type,\n url: jm.url,\n year: jm.year,\n filename: jm.filename,\n jobOrder: jm.jobOrder,\n sapCode: jm.sapCode,\n filesize: jm.filesize,\n creationDate: jm.creationDate,\n isDeleted: jm.isDeleted,\n isSapOk: jm.isSapOk,\n reason: jm.reason,\n description: jm.description,\n workshopUserId: jm.workshopUserId,\n })) : [],\n jobcardEngineHours: (jobcard.jobcardEngineHours && Array.isArray(jobcard.jobcardEngineHours)) ? jobcard.jobcardEngineHours.map((jeh: JobcardAttachment) => ({\n id: jeh.id,\n type: jeh.type,\n url: jeh.url,\n year: jeh.year,\n filename: jeh.filename,\n jobOrder: jeh.jobOrder,\n sapCode: jeh.sapCode,\n filesize: jeh.filesize,\n creationDate: jeh.creationDate,\n isDeleted: jeh.isDeleted,\n isSapOk: jeh.isSapOk,\n reason: jeh.reason,\n description: jeh.description,\n workshopUserId: jeh.workshopUserId,\n })) : [],\n jobcardSerialNumbers: (jobcard.jobcardSerialNumbers && Array.isArray(jobcard.jobcardSerialNumbers)) ? jobcard.jobcardSerialNumbers.map((jsn: JobcardAttachment) => ({\n id: jsn.id,\n type: jsn.type,\n url: jsn.url,\n year: jsn.year,\n filename: jsn.filename,\n jobOrder: jsn.jobOrder,\n sapCode: jsn.sapCode,\n filesize: jsn.filesize,\n creationDate: jsn.creationDate,\n isDeleted: jsn.isDeleted,\n isSapOk: jsn.isSapOk,\n reason: jsn.reason,\n description: jsn.description,\n workshopUserId: jsn.workshopUserId,\n })) : [],\n version: this.mapVersionField(jobcard?.version),\n };\n };\n\n mapWorkshopDtoToWorkshop(workshop: WorkshopDto): Workshop {\n return {\n id: workshop.id,\n name: workshop.name,\n address: workshop.address,\n city: workshop.city,\n country: workshop.country,\n phone: workshop.phone,\n email: workshop.email,\n sapCode: workshop.sapCode,\n workshopSalesOrganizations: (workshop.workshopSalesOrganizations && Array.isArray(workshop.workshopSalesOrganizations)) ? workshop.workshopSalesOrganizations.map((ws: WorkshopSale) => ({\n id: ws.id,\n // brand: ws.\n // division: ws.\n salesCode: ws.salesCode,\n version: this.mapVersionField(ws.version),\n })) : [],\n logoUrl: workshop.logoUrl,\n dmsUrl: workshop.dmsUrl,\n dmsAuthenticationId: workshop.dmsAuthenticationId,\n isImportStaffFromDms: workshop.isImportStaffFromDms,\n isTrWorkflow: workshop.isTrWorkflow,\n dmsAuthenticationPassword: workshop.dmsAuthenticationPassword,\n openingDays: (workshop.openingDays && Array.isArray(workshop.openingDays)) ? workshop.openingDays.map((od: OpeningDay) => ({\n // id:\n weekday: od.weekday,\n periods: (od.periods && Array.isArray(od.periods)) ? od.periods.map((odp: OpeningDayPeriods) => ({\n id: odp.id,\n start: odp.start,\n end: odp.end,\n })) : [],\n })) : [],\n currencyCode: workshop.currencyCode,\n countryId: workshop.countryId,\n marketId: workshop.marketId,\n isDmsMaster: workshop.isDmsMaster,\n enableSafetyChecklist: workshop.enableSafetyChecklist,\n cspsUserId: workshop.cspsUserId,\n locatedInGB: workshop.locatedInGB,\n enabled: workshop.enabled,\n enableCsps: workshop.enableCsps,\n allowedTimePreferred: workshop.allowedTimePreferred,\n checkInMandatorySign: workshop.checkInMandatorySign,\n completionMandatorySign: workshop.completionMandatorySign,\n labourCost: Number(workshop.labourCost),\n dmsErrorCount: workshop.dmsErrorCount,\n operationId: workshop.operationId,\n standAloneMode: workshop.standAloneMode,\n // dmsClockingBehavior: Workshop.DmsClockingBehaviorEnum;\n dmsProvider: workshop.dmsProvider,\n addressDMSLimit: workshop.addressDMSLimit,\n // eWarrantyFieldsMandatory: workshop.\n enableForceClockStop: workshop.enableForceClockStop,\n forceClockStopEndTime: workshop.forceClockStopEndTime,\n // selected: workshop.\n };\n };\n\n mapJobcardTravelToJobcardTravelDto(travels: any) {\n const result = Array.isArray(travels) ? travels.map((travel: JobcardTravelDto)=> ({\n id: travel.id,\n // dmsId: travel.\n name: travel.name,\n duration: travel.duration,\n // jobcardId: travel.\n distance: travel.distance,\n date: travel.date,\n reason: travel.reason,\n otherReason: travel.otherReason,\n deleted: travel.deleted,\n workshopUserId: travel.workshopUserId,\n positions: Array.isArray(travel.positions) ? travel.positions.map((pos: WorkshopUserTravelPositionDto)=> ({\n id: pos.id,\n workshopUserId: pos.workshopUserId,\n jobcardTravelId: pos.jobcardTravelId,\n latitude: pos.latitude,\n longitude: pos.longitude,\n positionDate: pos.positionDate,\n positionType: pos.positionType,\n deviceStatus: pos.deviceStatus,\n })) : [],\n travelFromAddressLine1: travel.travelFromAddressLine1,\n travelFromAddressLine2: travel.travelFromAddressLine2,\n travelFromAddressLine3: travel.travelFromAddressLine3,\n travelFromAddressLine4: travel.travelFromAddressLine4,\n travelFromPostalCode: travel.travelFromPostalCode,\n travelToAddressLine1: travel.travelToAddressLine1,\n travelToAddressLine2: travel.travelToAddressLine2,\n travelToAddressLine3: travel.travelToAddressLine3,\n travelToAddressLine4: travel.travelToAddressLine4,\n travelToPostalCode: travel.travelToPostalCode,\n internalNotes: travel.internalNotes,\n estimatedDistance: travel.estimatedDistance,\n estimatedDuration: travel.estimatedDuration,\n paymentType: travel.paymentType ? {\n id: travel.paymentType.id,\n isVisible: travel.paymentType.isVisible,\n type: travel.paymentType.type,\n weight: travel.paymentType.weight,\n paymentSubTypes: Array.isArray(travel.paymentType.paymentSubTypes) ? travel.paymentType.paymentSubTypes.map((sub: PaymentSubTypeDto)=> ({\n id: sub.id,\n description: sub.description,\n type: sub.type,\n code: sub.code,\n weight: sub.weight,\n isVisible: sub.isVisible,\n categoryType: sub.categoryType,\n })) : [],\n code: travel.paymentType.code,\n name: travel.paymentType.name,\n } : null,\n paymentSubType: travel.paymentSubType ? {\n id: travel.paymentSubType.id,\n description: travel.paymentSubType.description,\n type: travel.paymentSubType.type,\n code: travel.paymentSubType.code,\n weight: travel.paymentSubType.weight,\n isVisible: travel.paymentSubType.isVisible,\n categoryType: travel.paymentSubType.categoryType,\n paymentSubSubTypes: Array.isArray(travel.paymentSubType.paymentSubSubTypes) ? travel.paymentSubType.paymentSubSubTypes.map((subSub: PaymentSubSubTypeDto)=> ({\n id: subSub.id,\n code: subSub.code,\n description: subSub.description,\n subLevel: subSub.subLevel,\n categoryType: subSub.categoryType,\n weight: subSub.weight,\n isVisible: subSub.isVisible,\n })) : [],\n }: null,\n price: travel.price,\n travelFromShowCoordinates: travel.travelFromShowCoordinates,\n travelFromLatitude: travel.travelFromLatitude,\n travelFromLongitude: travel.travelFromLongitude,\n travelToShowCoordinates: travel.travelToShowCoordinates,\n travelToLatitude: travel.travelToLatitude,\n travelToLongitude: travel.travelToLongitude,\n travelTypeFrom: travel.travelTypeFrom,\n travelTypeTo: travel.travelTypeTo,\n travelFromManualRefreshDate: travel.travelFromManualRefreshDate,\n travelFromGpsImportedDate: travel.travelFromGpsImportedDate,\n travelToManualRefreshDate: travel.travelToManualRefreshDate,\n travelToGpsImportedDate: travel.travelToGpsImportedDate,\n itemCode: travel.itemCode,\n travelSource: travel.travelSource,\n travelExtraCode: travel.travelExtraCode,\n warrantyClaimNumbers: travel.warrantyClaimNumbers,\n sapResponse: travel.sapResponse,\n paymentSubSubType2: travel.paymentSubSubType2 ? this.mapPaymentSubSubTypeToPaymentSubSubTypeDto(travel.paymentSubSubType2): null,\n paymentSubSubType3: travel.paymentSubSubType3 ? this.mapPaymentSubSubTypeToPaymentSubSubTypeDto(travel.paymentSubSubType3): null,\n })) : [];\n return result;\n }\n\n mapjobcardAttachmentToJobcardAttachmentDto(attachments: any) {\n const result = Array.isArray(attachments) ? attachments.map((attachment: JobcardAttachmentDto)=> ({\n id: attachment.id,\n // jobcardDto\n url: attachment.url,\n type: attachment.type,\n filename: attachment.filename,\n filesize: attachment.filesize,\n sapCode: attachment.sapCode,\n year: attachment.year,\n jobOrder: attachment.jobOrder,\n creationDate: attachment.creationDate,\n reason: attachment.reason,\n isDeleted: attachment.isDeleted,\n isSapOk: attachment.isSapOk,\n description: attachment.description,\n workshopUserId: attachment.workshopUserId,\n })) : [];\n return result;\n }\n\n mapPaymentSubSubTypeToPaymentSubSubTypeDto(subSub: PaymentSubSubType): PaymentSubSubTypeDto {\n return {\n id: subSub.id,\n code: subSub.code,\n description: subSub.description,\n subLevel: subSub.subLevel,\n categoryType: subSub.categoryType,\n weight: subSub.weight,\n isVisible: subSub.isVisible,\n // paymentSubTypeId: subSub.\n };\n }\n}\n","export enum CUSTOM_DIMENSIONS_ID {\n LANGUAGE = 1,\n USER_PROFILE = 2,\n USER_ID = 3,\n DEALER_NAME = 4,\n DEALER_CODE = 5,\n COUNTRY = 6,\n BRAND = 7,\n APP_VERSION = 8,\n APP_NAME = 9\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MatomoCustomService {\n\n customDimensionsIsReady = new BehaviorSubject(false);\n\n constructor() {}\n\n setReady(val: boolean) {\n this.customDimensionsIsReady.next(val);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ExtraOperation, Operation } from 'src/app/models/model/models';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { JobcardItemExtraOperationDto } from 'src/api/djc-admin-service/model/jobcardItemExtraOperationDto';\nimport { UserAdminService } from '../user/user-admin.service';\nimport { GetOtherItemByWorkshopIdRequestParams, JobcardItemOperationDto, OtherItemService, PartsService } from 'src/api/djc-booking-service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OperationsService {\n public operations$: Observable;\n private extraOperations$: Observable;\n\n constructor(\n private partsService: PartsService,\n private otherItemService: OtherItemService,\n private userService: UserAdminService\n ) {}\n\n getOperationsMaster(workshopId: number): Observable {\n if (!this.operations$) {\n this.operations$ = this.requestOperationsMaster(workshopId).pipe(\n shareReplay(1)\n );\n }\n return this.operations$;\n }\n\n // extra operations\n getOtherItems(workshopId: number): Observable {\n if (!this.extraOperations$) {\n this.extraOperations$ = this.requestOtherItems(workshopId).pipe(shareReplay(1));\n }\n return this.extraOperations$;\n }\n\n private requestOperationsMaster(workshopId: number) {\n return this.partsService.getOpMasterByWorkshopId({\n workshopId,\n authorization: this.userService.accessToken,\n noLoader: true,\n });\n }\n\n private requestOtherItems(workshopId: number) {\n const params: GetOtherItemByWorkshopIdRequestParams = {\n workshopId,\n page: 0,\n size: 50,\n authorization: this.userService.accessToken,\n };\n return this.otherItemService.getOtherItemByWorkshopId(params);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { PaymentTypeDto, PaymentTypeService, UpdatePaymentTypes1RequestParams, SaveAllPaymentTypesRequestParams } from 'src/api/djc-admin-service';\nimport { UserAdminService } from '../user/user-admin.service';\nimport { PaymentTypeService as BookingPaymentTypeService} from 'src/api/djc-booking-service/api/paymentType.service';\nimport { Router } from '@angular/router';\nimport { PaymentTypeService as WorkfilePaymentTypeService} from 'src/api/djc-workitem-service/api/paymentType.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaymentsServiceAdmin {\n savePaymentType(arg0: { paymentType: PaymentTypeDto }) {\n throw new Error('Method not implemented.');\n }\n private payments$: Observable;\n\n constructor(private paymentTypeService: PaymentTypeService, private userService: UserAdminService, private router: Router, private bookingPaymentTypeService: BookingPaymentTypeService, private workfilePaymentTypeService: WorkfilePaymentTypeService) {}\n\n getPaymentTypes(workshopId: number, force?: boolean): Observable {\n if (!this.payments$ || force) {\n this.payments$ = this.requestPaymentTypes(workshopId).pipe(shareReplay(1));\n }\n return this.payments$;\n }\n\n addPaymentType(paymentType: SaveAllPaymentTypesRequestParams) {\n return this.paymentTypeService.saveAllPaymentTypes(paymentType);\n }\n\n editPaymentType(paymentType: PaymentTypeDto) {\n return this.paymentTypeService.updatePaymentTypes1({\n authorization: this.userService.accessToken,\n id: paymentType.id,\n paymentTypeDto: paymentType,\n workshopId: paymentType.workshopId,\n });\n }\n\n private requestPaymentTypes(workshopId: number) {\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n return this.paymentTypeService.getPaymentTypeByWorkshopId({workshopId, authorization: this.userService.accessToken});\n } else if (!currentUrl.includes('/your-appointment')) {\n return this.bookingPaymentTypeService.getPaymentTypeByWorkshopId({workshopId, authorization: this.userService.accessToken});\n } else {\n return this.workfilePaymentTypeService.getPaymentTypeByWorkshopId({workshopId});\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Permission } from 'src/app/models/model/models';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { PermissionService } from 'src/api/djc-admin-service/api/permission.service';\nimport { UserAdminService } from '../user/user-admin.service';\nimport { Router } from '@angular/router';\nimport { PermissionService as BookingPermissionService} from 'src/api/djc-booking-service';\nimport { PermissionService as WorkItemPermissionService} from 'src/api/djc-workitem-service/api/permission.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PermissionsService {\n private permissionsSource: BehaviorSubject<\n string[]\n > = new BehaviorSubject(null);\n private permissionsObservable = this.permissionsSource.asObservable();\n workshopId: number;\n\n constructor(private permissionsServiceApi: PermissionService,\n private userAdminService: UserAdminService,\n private router: Router,\n private bookingPermissionService: BookingPermissionService,\n private workItemPermissionService: WorkItemPermissionService\n ) {}\n hasPermissions(\n permissions: Permission[],\n force = false,\n workshopId?: number,\n applicationToken?: string\n ): Observable {\n if (!workshopId) {\n return this.getPermissions(permissions, force).pipe(\n switchMap((permissionsAllowed) => {\n let allowed = true;\n permissions.forEach((permission) => {\n if (permissionsAllowed.indexOf(permission) === -1) {\n allowed = false;\n }\n });\n return of(allowed);\n })\n );\n } else {\n return this.getPermissions(permissions, force, workshopId, applicationToken).pipe(\n switchMap((permissionsAllowed) => {\n let allowed = true;\n permissions.forEach((permission) => {\n if (permissionsAllowed.indexOf(permission) === -1) {\n allowed = false;\n }\n });\n return of(allowed);\n })\n );\n }\n }\n\n getPermissions(\n permissions: string[],\n force = false,\n workshopId?: number,\n applicationToken?: string\n ): Observable {\n let observable: Observable;\n if (this.permissionsSource.value === null || force) {\n if (!workshopId) {\n observable = this.requestPermissions();\n } else {\n observable = this.requestPermissions(workshopId, applicationToken);\n }\n } else {\n observable = this.permissionsObservable;\n }\n return observable.pipe(\n map((permissionsAllowed) =>\n permissions.filter(\n (permission) => permissionsAllowed.indexOf(permission) > -1\n )\n )\n );\n }\n\n private requestPermissions(workshopId?: number, applicationToken?: string): Observable {\n if(!workshopId) {\n this.userAdminService.getUser().subscribe(user => {\n this.workshopId = user.workshopId;\n });\n }\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n return this.permissionsServiceApi.getPermissionByWorkshopId({applicationToken: this.userAdminService.newToken, authorization: this.userAdminService.accessToken, workshopId: this.workshopId, noLoader: true }).pipe(\n tap((permissions) => {\n this.permissionsSource.next(permissions);\n })\n );\n } else if(!currentUrl.includes('/your-appointment')) {\n return this.bookingPermissionService.getPermissionByWorkshopId({applicationToken: this.userAdminService.newToken, authorization: this.userAdminService.accessToken, workshopId: this.workshopId, noLoader: true }).pipe(\n tap((permissions) => {\n this.permissionsSource.next(permissions);\n })\n );\n } else {\n return this.workItemPermissionService.getPermissionByWorkshopId({applicationToken, workshopId, noLoader: true }).pipe(\n tap((permissions) => {\n this.permissionsSource.next(permissions);\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { UserAdminService } from '../user/user-admin.service';\n@Injectable()\nexport class ApplicationTokenInterceptor implements HttpInterceptor {\n constructor(private userService: UserAdminService) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n if (req.url.includes('/etim-api/') ||\n req.url.includes('blob.core') ||\n req.url.includes('/summary/') ||\n (req.url.includes('djcworkitem/workshops') && req.url.includes('payment-types')) ||\n (req.url.includes('djcworkitem/workshops') && req.url.includes('permissions')) ||\n req.url.includes('djcworkitem/azure-token')\n ) {\n return next.handle(req);\n }\n\n const newToken = this.userService.newToken;\n\n if (newToken) {\n const clonedRequest = req.clone({\n setHeaders: {\n 'Application-Token': newToken\n }\n });\n return next.handle(clonedRequest);\n } else {\n return next.handle(req);\n }\n }\n}\n\n","import {\n HttpErrorResponse,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ApiError } from 'src/app/models/model/models';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InterceptorService implements HttpInterceptor {\n constructor(public toasterService: ToastrService) {}\n errorMessages: { [key: string]: string } = {\n \"1004\": $localize`The operation could not be completed. Please try again later.`,\n \"1005\": $localize`The information could not be updated. Please try again later.`,\n \"1006\": $localize`The deletion could not be completed. Please try again later.`,\n \"1008\": $localize`Error generating the requested file. Please try again later.`,\n \"1010\": $localize`The requested appointment was not found. Please verify the information and try again.`,\n \"1011\": $localize`The new item cannot be added. Check the data entered and try again.`,\n \"1013\": $localize`An error occurred in the last DMS transaction for this appointment. Please try again later.`,\n \"1015\": $localize`There was a problem processing the data. Please try again later.`,\n \"1016\": $localize`There was a problem retrieving data. Please try again later.`,\n \"1070\": $localize`The data you are editing has been updated by another user. To avoid errors, please refresh the page and try again.`\n };\n\n defaultErrorMessage = $localize`There was a problem processing your request. Please try again later.`;\n\n getErrorMessage = (code: string): string => this.errorMessages[code] || this.defaultErrorMessage;\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n tap((evt) => {\n if (evt instanceof HttpResponse) {\n if (evt.body && evt.body.success) {\n this.toasterService.success(\n evt.body.success.message,\n evt.body.success.title,\n { positionClass: 'toast-top-center', timeOut: 3000 }\n );\n }\n }\n }),\n catchError((err: any) => {\n if (err instanceof HttpErrorResponse && err.status && (!req.url.includes('sync-vehicles') && !req.url.includes('sync-customers'))) {\n const regex = /\\/maintenance(\\?|$)/;\n if (regex.test(req.url)) {\n const message = $localize`Please initialize the vehicle on eTIM to load the maintenance plans in DJC`;\n const title = '';\n\n this.toasterService.error(message, title, {\n positionClass: 'toast-top-center',\n timeOut: 3000,\n });\n } else {\n let message = this.defaultErrorMessage;\n let title = '';\n\n const error = err.error?.errors?.[0];\n if (error?.code) {\n if (error.code === '1029') {\n const url = req.url;\n const match = url.match(/appointments\\/(\\d+)/);\n const appointmentId = match ? match[1] : undefined;\n this.errorMessages['1029'] = appointmentId ? $localize`The Appointment ${appointmentId} cannot be updated because the Courtesy Vehicle is already in use for the same date.`: $localize`The Appointment cannot be created because the Courtesy Vehicle is already in use for the same date.`;\n } else if (error.code === '1071') {\n this.errorMessages['1071'] = $localize`The order is already opened by ${error.detail}`;\n } else if (error.code === '1072') {\n this.errorMessages['1072'] = $localize`The deleted activity has an active clocking from: ${error.detail}`;\n }\n message = this.getErrorMessage(error.code);\n title = err.error.title || '';\n }\n\n this.toasterService.error(message, title, {\n positionClass: 'toast-top-center',\n timeOut: 3000,\n });\n }\n }\n\n return throwError(err) as Observable>;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CookieService } from 'ngx-cookie-service';\nimport { environment } from 'src/environments/environment';\nimport { COOKIE_HTTP_ONLY } from '../user/user.service';\n@Injectable()\nexport class SessionTokenInterceptor implements HttpInterceptor {\n constructor(private cookieService: CookieService) {}\n\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n // Add jobcard-session for etim api call\n if (request.url.includes(environment.apiBasePathSmartview)) {\n let url = request.url;\n let requestWithJobcardSession;\n if (\n environment.isIveco &&\n request.url.indexOf(environment.apiBasePathSmartview) > -1\n ) {\n const mappingEtimUrl = environment.mappingEtimUrl.find(\n (mapping) => window.location.host.indexOf(mapping.jobcard) > -1\n );\n if (mappingEtimUrl) {\n url = request.url.replace(\n environment.apiBasePathSmartview,\n mappingEtimUrl.etim\n );\n }\n if (url) {\n requestWithJobcardSession = request.clone({\n headers: request.headers.append('jobcard-session', this.getToken()),\n url: url,\n });\n } else {\n requestWithJobcardSession = request.clone({\n headers: request.headers.append('jobcard-session', this.getToken()),\n });\n }\n } else {\n requestWithJobcardSession = request.clone({\n headers: request.headers.append('jobcard-session', this.getToken()),\n });\n }\n return next.handle(requestWithJobcardSession);\n } else {\n return next.handle(request);\n }\n }\n\n getToken() {\n return this.cookieService.get(COOKIE_HTTP_ONLY).replace(/\"/g, '');\n }\n}\n","import { Injectable } from '@angular/core';\nimport jwt_decode, { JwtPayload } from 'jwt-decode';\nimport { CookieService } from 'ngx-cookie-service';\nimport { ToastrService } from 'ngx-toastr';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { environment } from '../../../environments/environment';\n\nexport const COOKIE_HTTP_ONLY = 'jobcard-session';\n\ninterface JwtPayloadWithData extends JwtPayload {\n data: WorkshopUserDto;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserAdminService {\n userObservable: Observable;\n accessToken: string;\n private userSource: BehaviorSubject = new BehaviorSubject(\n null\n );\n private tokenSource = new BehaviorSubject('');\n currentToken = this.tokenSource.asObservable();\n changeToken(token: string) {\n this.tokenSource.next(token);\n }\n newToken: string;\n private userIdSource = new BehaviorSubject(null);\n currentUserId = this.userIdSource.asObservable();\n changeUserId(userId: any) {\n this.userIdSource.next(userId);\n }\n newUserId: any;\n constructor(\n private cookieService: CookieService,\n private toastrService: ToastrService\n ) {\n this.userObservable = this.userSource.asObservable();\n }\n\n getUser(): Observable {\n this.currentToken.subscribe(token => this.newToken = token);\n this.currentUserId.subscribe(userId => this.newUserId = userId.User_id);\n if (!this.userSource.value) {\n const token = this.getToken();\n if (token && this.newToken) {\n const decodedToken = jwt_decode(token);\n if (new Date().getTime() > decodedToken.exp * 1000) {\n this.userSource.error('token expired');\n if (!environment.production) {\n this.cookieService.delete(COOKIE_HTTP_ONLY);\n location.reload();\n } else {\n this.toastrService.error(\n $localize`Try to reconnect`,\n $localize`The session has expired`\n );\n }\n } else if (decodedToken.data) {\n this.userSource.next(decodedToken.data);\n } else {\n this.userSource.error('no data in token');\n }\n } else if (this.newToken) {\n this.cookieService.set(COOKIE_HTTP_ONLY, this.newToken);\n const decodedToken: any = jwt_decode(this.newToken);\n if (decodedToken.data) {\n this.userSource.next(decodedToken.data);\n } else {\n this.userSource.error('no data in token');\n }\n } else {\n this.userSource.error('no cookie ' + COOKIE_HTTP_ONLY);\n }\n }\n return this.userObservable;\n }\n\n updateUser(user: WorkshopUserDto, setCookies = false) {\n const cookiesData = this.cookieService.get(COOKIE_HTTP_ONLY);\n if (cookiesData && setCookies) {\n sessionStorage.removeItem('jc-updateUser');\n sessionStorage.setItem('jc-updateUser', JSON.stringify(cookiesData));\n }\n this.userSource.next(user);\n // Update and remove browser tabs\n setTimeout(() => {\n sessionStorage.removeItem('userUpdate');\n sessionStorage.removeItem('jc-updateUser');\n }, 1000);\n }\n\n getToken() {\n return this.cookieService.get(COOKIE_HTTP_ONLY).replace(/\"/g, '');\n }\n\n getLanguage(lang: string) {\n switch (lang) {\n case 'EN':\n return 'ENGLISH';\n case 'IT':\n return 'ITALIAN';\n case 'FR':\n return 'FRENCH';\n case 'DE':\n return 'GERMAN';\n case 'JA':\n return 'JAPANESE';\n case 'KO':\n return 'KOREAN';\n case 'ZH':\n return 'CHINESE';\n case 'ZH-HANS':\n return 'SIMPLIFIED_CHINESE';\n case 'ZH-HANT':\n return 'TRADITIONAL_CHINESE';\n case 'US':\n return 'US';\n case 'CA':\n return 'CANADA';\n case 'CA-FR':\n return 'CANADA';\n default:\n return 'CANADA_FRENCH';\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n Router,\n RouterStateSnapshot,\n UrlTree,\n} from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { catchError, delay, map, switchMap, timeout } from 'rxjs/operators';\nimport { UserService } from './user.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserGuard implements CanActivate {\n constructor(private router: Router, private userService: UserService) {}\n canActivate(\n _next: ActivatedRouteSnapshot,\n _state: RouterStateSnapshot\n ):\n | Observable\n | Promise\n | boolean\n | UrlTree {\n if (!this.userService.accessToken) {\n return of(null).pipe(\n delay(5000),\n switchMap(() =>\n this.userService.getUser().pipe(\n map((user) => !!user),\n catchError((_err) => {\n this.router.navigate(['/error']);\n return of(false);\n })\n )\n )\n );\n } else {\n return this.userService.getUser().pipe(\n map((user) => !!user),\n catchError((_err) => {\n this.router.navigate(['/error']);\n return of(false);\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { WorkshopUser } from 'src/app/models/model/models';\nimport jwt_decode, { JwtPayload } from 'jwt-decode';\nimport { CookieService } from 'ngx-cookie-service';\nimport { ToastrService } from 'ngx-toastr';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { environment } from '../../../environments/environment';\n\nexport const COOKIE_HTTP_ONLY = 'jobcard-session';\n\ninterface JwtPayloadWithData extends JwtPayload {\n data: WorkshopUser;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService {\n userObservable: Observable;\n accessToken: string;\n private userSource: BehaviorSubject = new BehaviorSubject(\n null\n );\n private tokenSource = new BehaviorSubject('');\n currentToken = this.tokenSource.asObservable();\n changeToken(token: string) {\n this.tokenSource.next(token);\n this.newToken = token;\n }\n newToken: string;\n private userIdSource = new BehaviorSubject(null);\n currentUserId = this.userIdSource.asObservable();\n changeUserId(userId: any) {\n this.userIdSource.next(userId);\n }\n newUserId: any;\n constructor(\n private cookieService: CookieService,\n private toastrService: ToastrService\n ) {\n this.userObservable = this.userSource.asObservable();\n }\n\n getUser(): Observable {\n this.currentToken.subscribe(token => this.newToken = token);\n this.currentUserId.subscribe(userId => this.newUserId = userId.User_id);\n if (!this.userSource.value) {\n const token = this.getToken();\n if (token && this.newToken) {\n const decodedToken = jwt_decode(token);\n if (new Date().getTime() > decodedToken.exp * 1000) {\n this.userSource.error('token expired');\n if (!environment.production) {\n this.cookieService.delete(COOKIE_HTTP_ONLY);\n location.reload();\n } else {\n this.toastrService.error(\n $localize`Try to reconnect`,\n $localize`The session has expired`\n );\n }\n } else if (decodedToken.data) {\n this.userSource.next(decodedToken.data);\n } else {\n this.userSource.error('no data in token');\n }\n } else if (this.newToken) {\n this.cookieService.set(COOKIE_HTTP_ONLY, this.newToken);\n const decodedToken: any = jwt_decode(this.newToken);\n if (decodedToken.data) {\n this.userSource.next(decodedToken.data);\n } else {\n this.userSource.error('no data in token');\n }\n } else {\n this.userSource.error('no cookie ' + COOKIE_HTTP_ONLY);\n }\n }\n return this.userObservable;\n }\n\n updateUser(user: WorkshopUser, setCookies = false) {\n const cookiesData = this.cookieService.get(COOKIE_HTTP_ONLY);\n if (cookiesData && setCookies) {\n sessionStorage.removeItem('jc-updateUser');\n sessionStorage.setItem('jc-updateUser', JSON.stringify(cookiesData));\n }\n this.userSource.next(user);\n // Update and remove browser tabs\n setTimeout(() => {\n sessionStorage.removeItem('userUpdate');\n sessionStorage.removeItem('jc-updateUser');\n }, 1000);\n }\n\n getToken() {\n return this.cookieService.get(COOKIE_HTTP_ONLY).replace(/\"/g, '');\n }\n\n getLanguage(lang: string) {\n switch (lang) {\n case 'EN':\n return 'ENGLISH';\n case 'IT':\n return 'ITALIAN';\n case 'FR':\n return 'FRENCH';\n case 'DE':\n return 'GERMAN';\n case 'JA':\n return 'JAPANESE';\n case 'KO':\n return 'KOREAN';\n case 'ZH':\n return 'CHINESE';\n case 'ZH-HANS':\n return 'SIMPLIFIED_CHINESE';\n case 'ZH-HANT':\n return 'TRADITIONAL_CHINESE';\n case 'US':\n return 'US';\n case 'CA':\n return 'CANADA';\n case 'CA-FR':\n return 'CANADA';\n default:\n return 'CANADA_FRENCH';\n }\n }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport {\n Appointment,\n JobcardItemStatus,\n OpeningDay,\n WorkshopUser,\n} from 'src/app/models/model/models';\nimport * as Moment from 'moment';\nimport { DateRange, extendMoment } from 'moment-range';\nimport { AppointmentDto, JobcardItemStatusDto, WorkshopUserDto } from 'src/api/djc-workitem-service';\nimport { weekdayEnum } from 'src/app/shared/constants/constants';\nimport { SortEvent } from 'src/app/shared/sortable/sortable.directive';\nimport { environment } from 'src/environments/environment';\n\nconst moment = extendMoment(Moment);\n\nexport class Util {\n static getId(): string {\n return Math.random().toString(36).substring(2);\n }\n\n static sortTable(data: any[], sortEvent: SortEvent) {\n data.sort((a, b): number => {\n const aProp = this.fetchFromObject(a, sortEvent.column);\n const bProp = this.fetchFromObject(b, sortEvent.column);\n\n let diff: number;\n diff = this.autoSort(aProp, bProp);\n\n // gestion reverse\n if (sortEvent.direction === 'desc') {\n diff = -diff;\n }\n\n return diff;\n });\n }\n\n static autoSort(aProp: any, bProp: any): number {\n let diff: number = null;\n\n const isNotNumeric: boolean =\n isNaN(aProp) ||\n typeof aProp === 'boolean' ||\n typeof aProp === 'object' ||\n isNaN(bProp) ||\n typeof bProp === 'boolean' ||\n typeof bProp === 'object';\n if (isNotNumeric) {\n if (\n !isNaN(new Date(aProp).getDate()) &&\n !isNaN(new Date(bProp).getDate())\n ) {\n diff = moment(new Date(aProp)).diff(new Date(bProp));\n } else {\n aProp = this.normalizePropForAutoSortNotNumeric(aProp);\n bProp = this.normalizePropForAutoSortNotNumeric(bProp);\n\n diff = aProp.localeCompare(bProp);\n }\n } else {\n diff = parseFloat(aProp) - parseFloat(bProp);\n }\n\n return diff;\n }\n\n static normalizePropForAutoSortNotNumeric(prop: any): string {\n if (typeof prop === 'undefined' || prop === null || prop === false) {\n prop = '';\n } else if (prop === true) {\n prop = '1';\n } else if (!isNaN(prop)) {\n prop = prop.toString();\n }\n\n return prop;\n }\n\n static fetchFromObject(obj: any, prop: string): any {\n if (typeof obj === 'undefined' || obj === null) {\n return false;\n }\n const index = prop.indexOf('.');\n if (index > -1) {\n return this.fetchFromObject(\n obj[prop.substring(0, index)],\n prop.substr(index + 1)\n );\n }\n return obj[prop];\n }\n\n static weekdayToEnum(\n weekday: number,\n locale: string\n ): any {\n switch (weekday) {\n case 0:\n return weekdayEnum.Monday;\n case 1:\n return weekdayEnum.Tuesday;\n case 2:\n return weekdayEnum.Wednesday;\n case 3:\n return weekdayEnum.Thursday;\n case 4:\n return weekdayEnum.Friday;\n case 5:\n return weekdayEnum.Saturday;\n case 6:\n return weekdayEnum.Sunday;\n }\n return null;\n }\n\n static enumToWeekday(weekday: any): number {\n switch (weekday) {\n case weekdayEnum.Monday:\n return 0;\n case weekdayEnum.Tuesday:\n return 1;\n case weekdayEnum.Wednesday:\n return 2;\n case weekdayEnum.Thursday:\n return 3;\n case weekdayEnum.Friday:\n return 4;\n case weekdayEnum.Saturday:\n return 5;\n case weekdayEnum.Sunday:\n return 6;\n }\n return null;\n }\n\n static isBeforeHourMinute(date1: string, date2: string): boolean {\n const d1 = moment()\n .set('hour', moment(date1).hour())\n .set('minute', moment(date1).minute());\n const d2 = moment()\n .set('hour', moment(date2).hour())\n .set('minute', moment(date2).minute());\n return moment(d1).isBefore(moment(d2), 'minute');\n }\n\n static isAfterHourMinute(date1: string, date2: string): boolean {\n const d1 = moment()\n .set('hour', moment(date1).hour())\n .set('minute', moment(date1).minute());\n const d2 = moment()\n .set('hour', moment(date2).hour())\n .set('minute', moment(date2).minute());\n return moment(d1).isAfter(moment(d2), 'minute');\n }\n\n static isSameHourMinute(date1: string, date2: string): boolean {\n const d1 = moment()\n .set('hour', moment(date1).hour())\n .set('minute', moment(date1).minute());\n const d2 = moment()\n .set('hour', moment(date2).hour())\n .set('minute', moment(date2).minute());\n return moment(d1).isSame(moment(d2), 'minute');\n }\n\n static diffHourMinute(date1: string, date2: string): number {\n const d1 = moment()\n .set('hour', moment(date1).hour())\n .set('minute', moment(date1).minute())\n .set('second', 0)\n .set('millisecond', 0);\n const d2 = moment()\n .set('hour', moment(date2).hour())\n .set('minute', moment(date2).minute())\n .set('second', 0)\n .set('millisecond', 0);\n return moment(d1).diff(moment(d2));\n }\n\n static addToDateRanges(\n dateRanges: DateRange[],\n dateRange: DateRange\n ): DateRange[] {\n if (!dateRanges) {\n dateRanges = [];\n }\n dateRanges.push(dateRange);\n const dateRangesSorted = Util.sortDateRanges(dateRanges);\n const dateRangesAdded: DateRange[] = [];\n dateRangesSorted.forEach((dr) => {\n if (dateRangesAdded.length === 0) {\n dateRangesAdded.push(dr);\n } else {\n const lastdateRangeAdded = dateRangesAdded[dateRangesAdded.length - 1];\n if (lastdateRangeAdded.intersect(dr)) {\n dateRangesAdded[dateRangesAdded.length - 1] = lastdateRangeAdded.add(\n dr\n );\n } else {\n dateRangesAdded.push(dr);\n }\n }\n });\n return dateRangesAdded;\n }\n\n static substractToDateRanges(\n dateRanges: DateRange[],\n dateRange: DateRange\n ): DateRange[] {\n if (!dateRanges) {\n dateRanges = [];\n }\n const dateRangesSubstracted: DateRange[] = [];\n dateRanges.forEach((dr) => {\n const drSubstracted = dr.subtract(dateRange);\n if (drSubstracted) {\n dateRangesSubstracted.push(...drSubstracted);\n }\n });\n return dateRangesSubstracted;\n }\n\n static sortDateRanges(dateRanges: DateRange[]): DateRange[] {\n return dateRanges.sort((a, b) => (a.start.isBefore(b.start) ? -1 : 1));\n }\n\n static dateRangesOverlaps(\n dateRanges: DateRange[],\n dateRange: DateRange\n ): boolean {\n let contain = false;\n dateRanges.forEach((dr) => {\n if (dr.overlaps(dateRange)) {\n contain = true;\n }\n });\n return contain;\n }\n\n static dateRangeSetDay(dateRange: DateRange, day = new Date()): DateRange {\n const start = dateRange.start;\n const end = dateRange.end;\n const mDay = moment(day);\n start.set('year', mDay.year());\n start.set('month', mDay.month());\n start.set('date', mDay.date());\n end.set('year', mDay.year());\n end.set('month', mDay.month());\n end.set('date', mDay.date());\n return moment.range(start, end);\n }\n\n static dateRangesSetDay(\n dateRanges: DateRange[],\n day = new Date()\n ): DateRange[] {\n return dateRanges.map((dateRange) => Util.dateRangeSetDay(dateRange, day));\n }\n\n static getFileNameFromHttpResponse(httpResponse: HttpResponse) {\n const contentDispositionHeader = httpResponse.headers.get(\n 'Content-Disposition'\n );\n const result = contentDispositionHeader.split(';')[1].trim().split('=')[1];\n return result.replace(/\"/g, '');\n }\n\n static isUserAffectedToAppointment(\n appointment: Appointment,\n workshopUser: WorkshopUser\n ): boolean {\n let isAffected = false;\n if (!workshopUser.id) {\n if (environment.isIveco) {\n isAffected = !appointment?.jobcard?.jobcardItems?.find(\n (item) => !!item?.technicians?.find((tech) => !!tech.workshopUserId)\n );\n appointment?.jobcard?.jobcardItems?.forEach((item) => {\n item.jobcardItemSpells?.forEach((spell) => {\n isAffected = isAffected || spell?.technicians?.length === 0;\n });\n });\n } else {\n isAffected =\n !appointment?.workshopUserId &&\n !appointment?.jobcard?.jobcardItems?.find(\n (item) => !!item?.technicians?.find((tech) => !!tech.workshopUserId)\n );\n }\n } else {\n appointment?.jobcard?.jobcardItems?.forEach((item) => {\n item.jobcardItemSpells?.forEach((spell) => {\n isAffected =\n isAffected ||\n !!spell.technicians?.find(\n (t) => t.workshopUserId === workshopUser.id\n );\n });\n });\n }\n return isAffected;\n }\n\n static isUserAffectedToAppointmentNV(\n appointment: AppointmentDto,\n workshopUser: WorkshopUserDto\n ): boolean {\n let isAffected = false;\n if (!workshopUser.id) {\n if (environment.isIveco) {\n isAffected = !appointment?.jobcard?.jobcardItems?.find(\n (item) => !!item?.technicians?.find((tech) => !!tech.workshopUserId)\n );\n appointment?.jobcard?.jobcardItems?.forEach((item) => {\n item.jobcardItemSpells?.forEach((spell) => {\n isAffected = isAffected || spell?.technicians?.length === 0;\n });\n });\n } else {\n isAffected =\n !appointment?.workshopUserId &&\n !appointment?.jobcard?.jobcardItems?.find(\n (item) => !!item?.technicians?.find((tech) => !!tech.workshopUserId)\n );\n }\n } else {\n appointment?.jobcard?.jobcardItems?.forEach((item) => {\n item.jobcardItemSpells?.forEach((spell) => {\n isAffected =\n isAffected ||\n !!spell.technicians?.find(\n (t) => t.workshopUserId === workshopUser.id\n );\n });\n });\n }\n return isAffected;\n }\n\n static getDayOfYear(date: Date) {\n const start = new Date(date.getFullYear(), 0, 0);\n const diff = date.getTime() - start.getTime();\n const oneDay = 1000 * 60 * 60 * 24;\n return Math.floor(diff / oneDay);\n }\n\n static getLastJobcardItemStatus(\n status: JobcardItemStatus[]\n ): JobcardItemStatus {\n return status.length > 1 ? status.find((s) => !s.deleted) : status[0];\n }\n static getLastJobcardItemStatusDto(\n status: JobcardItemStatusDto[]\n ): JobcardItemStatusDto {\n return status.length > 1 ? status.find((s) => !s.deleted) : status[0];\n }\n static getFirstStartSpell(appointment: AppointmentDto): Moment.Moment {\n let startDate: Moment.Moment = null;\n appointment.jobcard.jobcardItems?.forEach((item) => {\n item.jobcardItemSpells.forEach((spell) => {\n if (!startDate || moment(spell.startDate).isBefore(startDate, 'days')) {\n startDate = moment(spell.startDate);\n }\n });\n });\n return startDate;\n }\n\n static getLastEndSpell(appointment: Appointment | AppointmentDto): Moment.Moment {\n let endDate: Moment.Moment = null;\n appointment.jobcard.jobcardItems?.forEach((item) => {\n item.jobcardItemSpells.forEach((spell) => {\n if (\n !endDate ||\n moment(spell.startDate)\n .add(spell.estimatedDuration, 'minutes')\n .isAfter(endDate, 'days')\n ) {\n endDate = moment(spell.startDate).add(\n spell.estimatedDuration,\n 'minutes'\n );\n }\n });\n });\n return endDate;\n }\n\n static stringFormat(str: string, ...args: any[]): string {\n // Use \"replace\" to iterate over the string,\n // select the match and check if related argument is present,\n // and if yes, replace the match with the argument\n return str.replace(\n /\\[([0-9]+)\\]/g,\n (match, index) =>\n typeof args[index] == 'undefined' ? match : args[index] // check if the argument is present\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { environment } from 'src/environments/environment';\nimport { UserService } from '../user/user.service';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WebsocketService {\n connection$: WebSocketSubject;\n stompClient: Stomp.Client;\n mapEndpointSubscription: Map = new Map();\n notificationSubject: BehaviorSubject = new BehaviorSubject(null);\n constructor(private userService: UserService) {\n this.connection$ = webSocket(environment.websocket);\n console.debug('connected socket!');\n }\n\n setNotification(notification: any) {\n this.notificationSubject.next(notification);\n }\n\n getNotification(): Observable {\n return this.notificationSubject.asObservable();\n }\n\n async initWebSocket() {\n return new Promise((resolve) => {\n if (!this.stompClient) {\n const ws = new SockJS(environment.websocket);\n this.stompClient = Stomp.over(ws);\n this.stompClient.debug = () => {\n /* CHANGE WEBSOCKET DEBUG LOGGING HERE */\n };\n this.stompClient.connect({}, resolve);\n } else {\n resolve('error');\n }\n });\n }\n\n async subscribe(name: string, fnc: (event: any) => void) {\n const subscription = this.stompClient.subscribe(`/${name}`, (event) => {\n fnc({ ...event, body: JSON.parse(event.body) });\n });\n this.mapEndpointSubscription.set(name, subscription);\n }\n\n unsubscribeToWebSocketEvent(name: string) {\n const subscription = this.mapEndpointSubscription.get(name);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n\n /*\n send(data: any) {\n this.userService.getUser().subscribe((user) => {\n const payload = {\n token: user.id,\n ...data,\n };\n this.connection$.next(payload);\n });\n }\n\n get(key: string) {\n console.log('get socket');\n this.send({ subscribe: key });\n return this.connection$.pipe(\n filter((data) => data[key]),\n map((data) => data[key])\n );\n }\n\n ngOnDestroy() {\n if (this.connection$) {\n console.log('destroy socket');\n this.connection$.complete();\n this.connection$ = null;\n }\n }\n */\n}\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport {\n Shift,\n WorkshopUser,\n} from 'src/app/models/model/models';\nimport * as Moment from 'moment';\nimport { DateRange, extendMoment } from 'moment-range';\nimport { Observable, of, throwError } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\nimport { MinutesPipe } from 'src/app/shared/pipes/minutes.pipe';\nimport { Util } from '../util/util';\nimport { GetWorkshopUsersAvailabilitiesRequestParams, UpdateWorkshopUsersRequestParams, WorkshopUserDto, WorkshopUserService, WorkshopUserUnavailabilityDto } from 'src/api/djc-admin-service';\nimport { UserAdminService } from '../user/user-admin.service';\nimport { Router } from '@angular/router';\nimport { WorkshopUserService as BookingWorkshopUserService, GetWorkshopUsersAvailabilitiesRequestParams as BookingGetWorkshopUsersAvailabilitiesRequestParams } from 'src/api/djc-booking-service/api/workshopUser.service';\n\nconst moment = extendMoment(Moment);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkshopUsersAdminService {\n private users$: Observable;\n workshopId: number;\n\n constructor(\n private workshopUserService: WorkshopUserService,\n private userService: UserAdminService,\n private router: Router,\n private bookingWorkshopUserService: BookingWorkshopUserService,\n @Inject(LOCALE_ID) private locale: string\n ) {}\n\n getWorkshopUsers(\n force: boolean = false,\n view: string = undefined,\n startDate: string = undefined,\n endDate: string = undefined\n ): Observable {\n if (!this.users$ || force) {\n this.userService.getUser().subscribe((user) => {\n const lang = this.userService.getLanguage(user.language);\n this.users$ = this.requestUsers(view, startDate, endDate, lang).pipe(\n shareReplay(1)\n );\n });\n }\n return this.users$;\n }\n\n filterUsersByBay(\n workshopBayId: number,\n users: WorkshopUserDto[]\n ): WorkshopUserDto[] {\n const matchingWorkshopBayUsers: WorkshopUserDto[] = new Array(0);\n for (const user of users) {\n if (user.workshopBays) {\n for (const bay of user.workshopBays) {\n if (bay.id === workshopBayId) {\n matchingWorkshopBayUsers.push(user);\n }\n }\n }\n }\n return matchingWorkshopBayUsers;\n }\n\n getWorkshopUsersByBay(\n workshopBayId: number,\n roleId: number,\n force: boolean = false\n ): Observable {\n return this.getWorkshopUsers(force).pipe(\n map((workshopUsers) => {\n let users: WorkshopUserDto[] = workshopUsers;\n if (workshopBayId) {\n users = this.filterUsersByBay(workshopBayId, users);\n }\n if (roleId) {\n users = users.filter((user) => user.role && user.role.id === roleId);\n }\n\n return users;\n })\n );\n }\n\n getWorkshopUsersByBayAndDate(\n workshopBayId: number,\n roleId: number,\n startDate: string,\n endDate: string,\n force: boolean = false\n ): Observable {\n return this.getWorkshopUsers(force, undefined, startDate, endDate).pipe(\n map((workshopUsers) => {\n let users: WorkshopUserDto[] = workshopUsers;\n if (workshopBayId) {\n users = this.filterUsersByBay(workshopBayId, users);\n }\n if (roleId) {\n users = users.filter((user) => user.role && user.role.id === roleId);\n }\n\n return users;\n })\n );\n }\n\n getWorkshopUserById(workshopUserId: string): Observable {\n if (workshopUserId) {\n return this.getWorkshopUsers().pipe(\n switchMap((workshopUsers) => {\n const wu = workshopUsers.find((user) => user.id === workshopUserId);\n return of(wu);\n })\n );\n } else {\n return throwError('no workshopUserId');\n }\n }\n\n resetWorkshopUsers() {\n this.users$ = null;\n }\n\n updateWorkshopUsers(\n workshopId: number,\n workshopUserDto: Array\n ): Observable {\n const params: UpdateWorkshopUsersRequestParams = {\n authorization: this.userService.accessToken,\n workshopId,\n workshopUserDto,\n };\n return this.workshopUserService.updateWorkshopUsers(params);\n }\n\n getUsersAvailabilities(\n startDate: string,\n endDate: string,\n workshopUsers: WorkshopUserDto[],\n workshopId: number\n ): Observable {\n let lang ;\n this.userService.getUser().subscribe(user=> {\n lang = this.userService.getLanguage(user.language);\n });\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n const availabilityParams: GetWorkshopUsersAvailabilitiesRequestParams = {\n authorization: this.userService.accessToken,\n acceptLanguage: lang,\n workshopId,\n startDate,\n endDate,\n };\n return this.workshopUserService\n .getWorkshopUsersAvailabilities(availabilityParams)\n .pipe(\n map((userAvailabilities) => {\n workshopUsers.forEach((wUser) => {\n const u = userAvailabilities.find(\n (uAvailability) => uAvailability.id === wUser.id\n );\n if (u) {\n wUser.shifts = u.shifts;\n wUser.unavailabilities = u.unavailabilities;\n } else {\n wUser.shifts = [];\n wUser.unavailabilities = [];\n }\n });\n return workshopUsers;\n })\n );\n } else {\n const availabilityParams: BookingGetWorkshopUsersAvailabilitiesRequestParams = {\n authorization: this.userService.accessToken,\n acceptLanguage: lang,\n workshopId,\n startDate,\n endDate,\n };\n return this.bookingWorkshopUserService\n .getWorkshopUsersAvailabilities(availabilityParams)\n .pipe(\n map((userAvailabilities) => {\n workshopUsers.forEach((wUser) => {\n const u = userAvailabilities.find(\n (uAvailability) => uAvailability.id === wUser.id\n );\n if (u) {\n wUser.shifts = u.shifts;\n wUser.unavailabilities = u.unavailabilities;\n } else {\n wUser.shifts = [];\n wUser.unavailabilities = [];\n }\n });\n return workshopUsers;\n })\n );\n }\n }\n\n userWorkTime(\n userId: string,\n date = new Date()\n ): Observable<\n {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[]\n > {\n return this.getWorkshopUserById(userId).pipe(\n map((user) => {\n if (!user.shifts) {\n user.shifts = [];\n }\n let shifts: Shift[] = JSON.parse(JSON.stringify(user.shifts));\n shifts = shifts\n .filter((shift) => {\n const isAfterStartDate = moment(date).isSameOrAfter(\n moment(shift.startDate),\n 'date'\n );\n const isBeforeEndDate = shift.endDate\n ? moment(date).isSameOrBefore(moment(shift.endDate), 'date')\n : true;\n return isAfterStartDate && isBeforeEndDate;\n })\n .map((shift) => {\n const day = Util.weekdayToEnum(moment(date).weekday(), this.locale);\n shift.periods = shift.periods.filter(\n (period) =>\n (period.day === day || !period.day) &&\n moment(period.endTime)\n .set('seconds', 0)\n .set('millisecond', 0)\n .diff(\n moment(period.startTime)\n .set('seconds', 0)\n .set('millisecond', 0),\n 'minutes'\n ) > 0\n );\n shift.periods.forEach((period) => {\n const sDate = JSON.parse(JSON.stringify(moment(date)));\n const eDate = JSON.parse(JSON.stringify(moment(date)));\n\n const utcStartTime: any = MinutesPipe.prototype\n .transform(period.startTime)\n .split(':');\n const utcEndTime: any = MinutesPipe.prototype\n .transform(period.endTime)\n .split(':');\n\n // const utcStartTime: any = moment(period.startTime)\n // .utc()\n // .format('HH:mm')\n // .split(':');\n // const utcEndTime: any = moment(period.endTime)\n // .utc()\n // .format('HH:mm')\n // .split(':');\n\n const start = moment(sDate)\n .set('hours', utcStartTime[0])\n .set('minute', utcStartTime[1])\n .set('seconds', 0)\n .set('milliseconds', 0);\n\n const end = moment(eDate)\n .set('hours', utcEndTime[0])\n .set('minute', utcEndTime[1])\n .set('seconds', 0)\n .set('milliseconds', 0);\n\n /*const start = moment(period.startTime)\n .set('date', mDate.date())\n .set('month', mDate.month())\n .set('year', mDate.year());\n const end = moment(period.endTime)\n .set('date', mDate.date())\n .set('month', mDate.month())\n .set('year', mDate.year());*/\n\n period.startTime = start.toISOString();\n period.endTime = end.toISOString();\n });\n return shift;\n });\n let unavailabilities: WorkshopUserUnavailabilityDto[] = [];\n if (user.unavailabilities) {\n unavailabilities = user.unavailabilities.filter((unavailability) => {\n const range = moment.range(\n moment(unavailability.startDate),\n moment(unavailability.endDate)\n );\n return moment(date).range('day').intersect(range);\n });\n }\n const productiveShifts = shifts.filter(\n (shift) => shift.type === 'productive'\n );\n const unproductiveShifts = shifts.filter(\n (shift) => shift.type === 'unproductive'\n );\n let productiveDateRangesDescription: {\n productiveDateRanges: DateRange[];\n description: string;\n } = { productiveDateRanges: [], description: null };\n\n productiveShifts.forEach((productiveShift) => {\n productiveShift.periods.forEach((period) => {\n productiveDateRangesDescription = {\n productiveDateRanges: Util.addToDateRanges(\n productiveDateRangesDescription.productiveDateRanges,\n moment.range(moment(period.startTime), moment(period.endTime))\n ),\n description: productiveShift.description,\n };\n });\n });\n let unproductiveDateRangesDescription: {\n unproductiveDateRanges: DateRange[];\n description: string[];\n } = { unproductiveDateRanges: [], description: [] };\n unproductiveShifts.forEach((unproductiveShift) => {\n unproductiveShift.periods.forEach((period) => {\n productiveDateRangesDescription.productiveDateRanges = Util.substractToDateRanges(\n productiveDateRangesDescription.productiveDateRanges,\n moment.range(moment(period.startTime), moment(period.endTime))\n );\n unproductiveDateRangesDescription = {\n unproductiveDateRanges: Util.addToDateRanges(\n unproductiveDateRangesDescription.unproductiveDateRanges,\n moment.range(moment(period.startTime), moment(period.endTime))\n ),\n description: this.addDescription(unproductiveShift.description, unproductiveDateRangesDescription.description),\n };\n });\n });\n let unavailabilitiesDateRanges: DateRange[] = [];\n unavailabilities.forEach((unavailability) => {\n productiveDateRangesDescription.productiveDateRanges = Util.substractToDateRanges(\n productiveDateRangesDescription.productiveDateRanges,\n moment.range(\n moment(unavailability.startDate),\n moment(unavailability.endDate)\n )\n );\n unproductiveDateRangesDescription.unproductiveDateRanges = Util.addToDateRanges(\n unproductiveDateRangesDescription.unproductiveDateRanges,\n moment.range(\n moment(unavailability.startDate),\n moment(unavailability.endDate)\n )\n );\n unavailabilitiesDateRanges = Util.addToDateRanges(\n unavailabilitiesDateRanges,\n moment.range(\n moment(unavailability.startDate),\n moment(unavailability.endDate)\n )\n );\n });\n const workTime: {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[] = [];\n const productiveWorktime: {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[] = productiveDateRangesDescription.productiveDateRanges.map((dr) => ({\n range: dr,\n type: 'productive',\n description: productiveDateRangesDescription.description,\n }));\n const unproductiveWorktime: {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[] = this.addUnproductiveInformation(unproductiveDateRangesDescription);\n const unavailabilitiesWorktime: {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[] = unavailabilitiesDateRanges.map((dr) => ({\n range: dr,\n type: 'unavailable',\n description: '',\n }));\n workTime.push(\n ...productiveWorktime,\n ...unproductiveWorktime,\n ...unavailabilitiesWorktime\n );\n return workTime;\n })\n );\n }\n\n getEndOfItem(\n userId: string,\n startDate: Date,\n duration: number\n ): Observable {\n return this.userWorkTime(userId, startDate).pipe(\n map((worktimes) => {\n const start = moment(startDate);\n let end: Moment.Moment;\n // startDate.add(duration, 'minute');\n // si le start est dans une productive\n // on commence a compter\n // sinon\n // on commence avec la prochaine productive\n // si en ajoutant la duration on est dans la même productive\n // on récupère la date de fin\n // sinon\n // on décompte la duration jusqua la fin de la productive\n // on recommence a compter a la prochaiune productive\n let startCounting = false;\n worktimes\n .filter((worktime) => worktime.type === 'productive')\n .map((worktime) => worktime.range)\n .forEach((dateRange) => {\n if (dateRange.contains(start)) {\n const startPlusDuration = moment(start).add(duration, 'minute');\n if (dateRange.contains(startPlusDuration)) {\n end = startPlusDuration;\n duration = 0;\n } else {\n duration -= dateRange.end.diff(start, 'minute');\n startCounting = true;\n }\n } else if (\n dateRange.start.isAfter(start) &&\n !startCounting &&\n !end\n ) {\n const startPlusDuration = moment(dateRange.start).add(\n duration,\n 'minute'\n );\n if (dateRange.contains(startPlusDuration)) {\n end = startPlusDuration;\n duration = 0;\n } else {\n duration -= dateRange.end.diff(dateRange.start, 'minute');\n startCounting = true;\n }\n } else if (startCounting) {\n const startPlusDuration = moment(dateRange.start).add(\n duration,\n 'minute'\n );\n if (dateRange.contains(startPlusDuration)) {\n end = startPlusDuration;\n duration = 0;\n startCounting = false;\n } else {\n duration += dateRange.end.diff(start, 'minute');\n }\n }\n });\n\n return end?.toDate();\n })\n );\n }\n\n private requestUsers(\n view: string = undefined,\n startDate: string = undefined,\n endDate: string = undefined,\n lang: string\n ) {\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n return this.userService.getUser().pipe(\n switchMap((user) =>\n this.workshopUserService.getWorkshopUsers({\n authorization: this.userService.accessToken,\n acceptLanguage: lang,\n workshopId: user.workshopId,\n view,\n startDate,\n endDate,\n })\n )\n );\n } else {\n return this.userService.getUser().pipe(\n switchMap((user) =>\n this.bookingWorkshopUserService.getWorkshopUsers({\n authorization: this.userService.accessToken,\n acceptLanguage: lang,\n workshopId: user.workshopId,\n view,\n startDate,\n endDate,\n })\n )\n );\n }\n }\n\n addDescription(description: string,descriptions: string[]):string[] {\n if(description!= null && description!= ''){\n descriptions?.push(description);\n }else{\n descriptions?.push(null)\n }\n return descriptions;\n }\n\n addUnproductiveInformation(unproductiveDateRangesDescription:\n { unproductiveDateRanges: DateRange[];\n description:string[];\n }): {\n range: DateRange;\n type: 'productive'|'unproductive'|'unavailable';\n description: string;}[] {\n let data: { range:DateRange;\n type: 'productive'|'unproductive'|'unavailable';\n description:string;\n }[]=[];\n for(let i=0;i;\n user: WorkshopUserDto;\n workshopId: number;\n\n constructor(\n private workshopUserService: WorkshopUserService,\n private userService: UserAdminService,\n private router: Router,\n private bookingWorkshopUserService: BookingWorkshopUserService,\n @Inject(LOCALE_ID) private locale: string\n ) {\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n this.workshopId = user.workshopId;\n });\n }\n\n getWorkshopUsers(\n force: boolean = false,\n view: string = undefined,\n startDate: string = undefined,\n endDate: string = undefined\n ): Observable {\n if (!this.users$ || force) {\n this.users$ = this.requestUsers(view, startDate, endDate).pipe(\n shareReplay(1)\n );\n }\n return this.users$;\n }\n\n filterUsersByBay(\n workshopBayId: number,\n users: WorkshopUserDto[]\n ): WorkshopUserDto[] {\n const matchingWorkshopBayUsers: WorkshopUserDto[] = new Array(0);\n for (const user of users) {\n if (user.workshopBays) {\n for (const bay of user.workshopBays) {\n if (bay.id === workshopBayId) {\n matchingWorkshopBayUsers.push(user);\n }\n }\n }\n }\n return matchingWorkshopBayUsers;\n }\n\n getWorkshopUsersByBay(\n workshopBayId: number,\n roleId: number,\n force: boolean = false\n ): Observable {\n return this.getWorkshopUsers(force).pipe(\n map((workshopUsers) => {\n let users: WorkshopUserDto[] = workshopUsers;\n if (workshopBayId) {\n users = this.filterUsersByBay(workshopBayId, users);\n }\n if (roleId) {\n users = users.filter((user) => user.role && user.role.id === roleId);\n }\n\n return users;\n })\n );\n }\n\n getWorkshopUsersByBayAndDate(\n workshopBayId: number,\n roleId: number,\n startDate: string,\n endDate: string,\n force: boolean = false\n ): Observable {\n return this.getWorkshopUsers(force, undefined, startDate, endDate).pipe(\n map((workshopUsers) => {\n let users: WorkshopUserDto[] = workshopUsers;\n if (workshopBayId) {\n users = this.filterUsersByBay(workshopBayId, users);\n }\n if (roleId) {\n users = users.filter((user) => user.role && user.role.id === roleId);\n }\n\n return users;\n })\n );\n }\n\n getWorkshopUserById(workshopUserId: string): Observable {\n if (workshopUserId) {\n return this.getWorkshopUsers().pipe(\n switchMap((workshopUsers) => {\n const wu = workshopUsers.find((user) => user.id === workshopUserId);\n return of(wu);\n })\n );\n } else {\n return throwError('no workshopUserId');\n }\n }\n\n resetWorkshopUsers() {\n this.users$ = null;\n }\n\n updateWorkshopUsers(\n users: UpdateWorkshopUsersRequestParams\n ): Observable {\n return this.workshopUserService.updateWorkshopUsers(users);\n }\n\n getUsersAvailabilities(\n startDate: string,\n endDate: string,\n workshopUsers: WorkshopUserDto[]\n ): Observable {\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n const availabilityParams: GetWorkshopUsersAvailabilitiesRequestParams = {\n startDate,\n endDate,\n workshopId: this.workshopId,\n acceptLanguage: this.user.language,\n authorization: this.userService.accessToken\n };\n return this.workshopUserService\n .getWorkshopUsersAvailabilities(availabilityParams)\n .pipe(\n map((userAvailabilities) => {\n workshopUsers.forEach((user) => {\n const u = userAvailabilities.find(\n (uAvailability) => uAvailability.id === user.id\n );\n if (u) {\n user.shifts = u.shifts;\n user.unavailabilities = u.unavailabilities;\n } else {\n user.shifts = [];\n user.unavailabilities = [];\n }\n });\n return workshopUsers;\n })\n );\n } else {\n const availabilityParams: BookingGetWorkshopUsersAvailabilitiesRequestParams = {\n startDate,\n endDate,\n workshopId: this.workshopId,\n acceptLanguage: this.user.language,\n authorization: this.userService.accessToken\n };\n return this.bookingWorkshopUserService\n .getWorkshopUsersAvailabilities(availabilityParams)\n .pipe(\n map((userAvailabilities) => {\n workshopUsers.forEach((user) => {\n const u = userAvailabilities.find(\n (uAvailability) => uAvailability.id === user.id\n );\n if (u) {\n user.shifts = u.shifts;\n user.unavailabilities = u.unavailabilities;\n } else {\n user.shifts = [];\n user.unavailabilities = [];\n }\n });\n return workshopUsers;\n })\n );\n }\n }\n\n userWorkTime(\n userId: string,\n date = new Date()\n ): Observable<\n {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[]\n > {\n return this.getWorkshopUserById(userId).pipe(\n map((user) => {\n if (!user.shifts) {\n user.shifts = [];\n }\n let shifts: ShiftDto[] = JSON.parse(JSON.stringify(user.shifts));\n shifts = shifts\n .filter((shift) => {\n const isAfterStartDate = moment(date).isSameOrAfter(\n moment(shift.startDate),\n 'date'\n );\n const isBeforeEndDate = shift.endDate\n ? moment(date).isSameOrBefore(moment(shift.endDate), 'date')\n : true;\n return isAfterStartDate && isBeforeEndDate;\n })\n .map((shift) => {\n const day = Util.weekdayToEnum(moment(date).weekday(), this.locale);\n shift.periods = shift.periods.filter(\n (period) =>\n (period.day === day || !period.day) &&\n moment(period.endTime)\n .set('seconds', 0)\n .set('millisecond', 0)\n .diff(\n moment(period.startTime)\n .set('seconds', 0)\n .set('millisecond', 0),\n 'minutes'\n ) > 0\n );\n shift.periods.forEach((period) => {\n const sDate = JSON.parse(JSON.stringify(moment(date)));\n const eDate = JSON.parse(JSON.stringify(moment(date)));\n\n const utcStartTime: any = MinutesPipe.prototype\n .transform(period.startTime)\n .split(':');\n const utcEndTime: any = MinutesPipe.prototype\n .transform(period.endTime)\n .split(':');\n\n // const utcStartTime: any = moment(period.startTime)\n // .utc()\n // .format('HH:mm')\n // .split(':');\n // const utcEndTime: any = moment(period.endTime)\n // .utc()\n // .format('HH:mm')\n // .split(':');\n\n const start = moment(sDate)\n .set('hours', utcStartTime[0])\n .set('minute', utcStartTime[1])\n .set('seconds', 0)\n .set('milliseconds', 0);\n\n const end = moment(eDate)\n .set('hours', utcEndTime[0])\n .set('minute', utcEndTime[1])\n .set('seconds', 0)\n .set('milliseconds', 0);\n\n /*const start = moment(period.startTime)\n .set('date', mDate.date())\n .set('month', mDate.month())\n .set('year', mDate.year());\n const end = moment(period.endTime)\n .set('date', mDate.date())\n .set('month', mDate.month())\n .set('year', mDate.year());*/\n\n period.startTime = start.toISOString();\n period.endTime = end.toISOString();\n });\n return shift;\n });\n let unavailabilities: WorkshopUserUnavailabilityDto[] = [];\n if (user.unavailabilities) {\n unavailabilities = user.unavailabilities.filter((unavailability) => {\n const range = moment.range(\n moment(unavailability.startDate),\n moment(unavailability.endDate)\n );\n return moment(date).range('day').intersect(range);\n });\n }\n const productiveShifts = shifts.filter(\n (shift) => shift.type === 'productive'\n );\n const unproductiveShifts = shifts.filter(\n (shift) => shift.type === 'unproductive'\n );\n let productiveDateRangesDescription: {\n productiveDateRanges: DateRange[];\n description: string;\n } = { productiveDateRanges: [], description: null };\n\n productiveShifts.forEach((productiveShift) => {\n productiveShift.periods.forEach((period) => {\n productiveDateRangesDescription = {\n productiveDateRanges: Util.addToDateRanges(\n productiveDateRangesDescription.productiveDateRanges,\n moment.range(moment(period.startTime), moment(period.endTime))\n ),\n description: productiveShift.description,\n };\n });\n });\n let unproductiveDateRangesDescription: {\n unproductiveDateRanges: DateRange[];\n description: string[];\n } = { unproductiveDateRanges: [], description: [] };\n unproductiveShifts.forEach((unproductiveShift) => {\n unproductiveShift.periods.forEach((period) => {\n productiveDateRangesDescription.productiveDateRanges = Util.substractToDateRanges(\n productiveDateRangesDescription.productiveDateRanges,\n moment.range(moment(period.startTime), moment(period.endTime))\n );\n unproductiveDateRangesDescription = {\n unproductiveDateRanges: Util.addToDateRanges(\n unproductiveDateRangesDescription.unproductiveDateRanges,\n moment.range(moment(period.startTime), moment(period.endTime))\n ),\n description: this.addDescription(unproductiveShift.description, unproductiveDateRangesDescription.description),\n };\n });\n });\n let unavailabilitiesDateRanges: DateRange[] = [];\n unavailabilities.forEach((unavailability) => {\n productiveDateRangesDescription.productiveDateRanges = Util.substractToDateRanges(\n productiveDateRangesDescription.productiveDateRanges,\n moment.range(\n moment(unavailability.startDate),\n moment(unavailability.endDate)\n )\n );\n unproductiveDateRangesDescription.unproductiveDateRanges = Util.addToDateRanges(\n unproductiveDateRangesDescription.unproductiveDateRanges,\n moment.range(\n moment(unavailability.startDate),\n moment(unavailability.endDate)\n )\n );\n unavailabilitiesDateRanges = Util.addToDateRanges(\n unavailabilitiesDateRanges,\n moment.range(\n moment(unavailability.startDate),\n moment(unavailability.endDate)\n )\n );\n });\n const workTime: {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[] = [];\n const productiveWorktime: {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[] = productiveDateRangesDescription.productiveDateRanges.map((dr) => ({\n range: dr,\n type: 'productive',\n description: productiveDateRangesDescription.description,\n }));\n const unproductiveWorktime: {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[] = this.addUnproductiveInformation(unproductiveDateRangesDescription);\n const unavailabilitiesWorktime: {\n range: DateRange;\n type: 'productive' | 'unproductive' | 'unavailable';\n description: string;\n }[] = unavailabilitiesDateRanges.map((dr) => ({\n range: dr,\n type: 'unavailable',\n description: '',\n }));\n workTime.push(\n ...productiveWorktime,\n ...unproductiveWorktime,\n ...unavailabilitiesWorktime\n );\n return workTime;\n })\n );\n }\n\n getEndOfItem(\n userId: string,\n startDate: Date,\n duration: number\n ): Observable {\n return this.userWorkTime(userId, startDate).pipe(\n map((worktimes) => {\n const start = moment(startDate);\n let end: Moment.Moment;\n // startDate.add(duration, 'minute');\n // si le start est dans une productive\n // on commence a compter\n // sinon\n // on commence avec la prochaine productive\n // si en ajoutant la duration on est dans la même productive\n // on récupère la date de fin\n // sinon\n // on décompte la duration jusqua la fin de la productive\n // on recommence a compter a la prochaiune productive\n let startCounting = false;\n worktimes\n .filter((worktime) => worktime.type === 'productive')\n .map((worktime) => worktime.range)\n .forEach((dateRange) => {\n if (dateRange.contains(start)) {\n const startPlusDuration = moment(start).add(duration, 'minute');\n if (dateRange.contains(startPlusDuration)) {\n end = startPlusDuration;\n duration = 0;\n } else {\n duration -= dateRange.end.diff(start, 'minute');\n startCounting = true;\n }\n } else if (\n dateRange.start.isAfter(start) &&\n !startCounting &&\n !end\n ) {\n const startPlusDuration = moment(dateRange.start).add(\n duration,\n 'minute'\n );\n if (dateRange.contains(startPlusDuration)) {\n end = startPlusDuration;\n duration = 0;\n } else {\n duration -= dateRange.end.diff(dateRange.start, 'minute');\n startCounting = true;\n }\n } else if (startCounting) {\n const startPlusDuration = moment(dateRange.start).add(\n duration,\n 'minute'\n );\n if (dateRange.contains(startPlusDuration)) {\n end = startPlusDuration;\n duration = 0;\n startCounting = false;\n } else {\n duration += dateRange.end.diff(start, 'minute');\n }\n }\n });\n\n return end?.toDate();\n })\n );\n }\n\n private requestUsers(\n view: string = undefined,\n startDate: string = undefined,\n endDate: string = undefined\n ): Observable{\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n return this.userService.getUser().pipe(\n switchMap((user) =>\n this.workshopUserService.getWorkshopUsers({\n authorization: this.userService.accessToken,\n acceptLanguage: user.language,\n workshopId: user.workshopId,\n view,\n startDate,\n endDate,\n })\n )\n );\n } else {\n return this.userService.getUser().pipe(\n switchMap((user) =>\n this.bookingWorkshopUserService.getWorkshopUsers({\n authorization: this.userService.accessToken,\n acceptLanguage: user.language,\n workshopId: user.workshopId,\n view,\n startDate,\n endDate,\n })\n )\n );\n }\n }\n\n addDescription(description: string,descriptions: string[]):string[] {\n if(description!= null && description!= ''){\n descriptions?.push(description);\n }else{\n descriptions?.push(null)\n }\n return descriptions;\n }\n\n addUnproductiveInformation(unproductiveDateRangesDescription:\n { unproductiveDateRanges: DateRange[];\n description:string[];\n }): {\n range: DateRange;\n type: 'productive'|'unproductive'|'unavailable';\n description: string;}[] {\n let data: { range:DateRange;\n type: 'productive'|'unproductive'|'unavailable';\n description:string;\n }[]=[];\n for(let i=0;i;\n workshopsObservable: Observable;\n private workshopSource: BehaviorSubject = new BehaviorSubject(\n null\n );\n private workshopsSource: BehaviorSubject = new BehaviorSubject<\n WorkshopDto[]\n >(null);\n\n constructor(\n private userService: UserService,\n private workshopServiceApi: WorkshopServiceApi,\n private bookingWorkshopServiceApi: BookingWorkshopServiceApi,\n private router: Router\n ) {\n this.workshopObservable = this.workshopSource.asObservable();\n this.workshopsObservable = this.workshopsSource.asObservable();\n }\n\n getWorkshop(): Observable {\n if (!this.workshopSource.value) {\n this.getWorkshops().subscribe((workshops) => {\n this.userService.getUser().subscribe((user) => {\n if (workshops) {\n const wf = workshops.find(\n (workshop) => workshop.id === user.workshopId\n );\n this.workshopSource.next(wf);\n }\n });\n });\n }\n return this.workshopObservable.pipe(\n filter((workshop) => workshop !== null),\n distinctUntilChanged()\n );\n }\n\n getWorkshops(): Observable {\n if (!this.workshopsSource.value) {\n this.userService.getUser().subscribe((user) => {\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n this.workshopServiceApi.getWorkshopsLogged({applicationToken: this.userService.newToken, authorization: this.userService.accessToken, workshopId: user.workshopId}).subscribe((workshops) => {\n this.workshopsSource.next(workshops);\n });\n } else {\n this.bookingWorkshopServiceApi.getWorkshopsLogged({applicationToken: this.userService.newToken, authorization: this.userService.accessToken, workshopId: user.workshopId}).subscribe((workshops) => {\n this.workshopsSource.next(workshops);\n });\n }\n });\n }\n return this.workshopsObservable.pipe(\n filter((workshops) => workshops !== null),\n distinctUntilChanged()\n );\n }\n\n setWorkshopValue(workshop: WorkshopDto) {\n this.workshopSource.next(workshop);\n }\n\n saveWorkshop(workshop: WorkshopDto) {\n this.workshopSource.next(workshop);\n const workshops = this.workshopsSource.value;\n workshops.forEach((w) => {\n if (w.id === workshop.id) {\n w = workshop;\n }\n });\n this.workshopsSource.next(workshops);\n }\n\n getSalesOrganization(): Observable {\n return forkJoin([this.getWorkshop(), this.userService.getUser()]).pipe(\n map(([workshop, user]) => {\n if (workshop?.workshopSalesOrganizations) {\n const workshopSalesOrganization = workshop.workshopSalesOrganizations.find(\n (salesOrganization) =>\n salesOrganization.id === user.workshopSalesOrganizationId\n );\n return workshopSalesOrganization;\n }\n return null;\n })\n );\n }\n\n getWorkshopPeriods(\n weekday?: any\n ): Observable {\n return this.getWorkshop().pipe(\n filter((workshop) => !!workshop),\n map((workshop) => {\n let periods: Period[] = [];\n if (weekday) {\n workshop.openingDays.forEach((openingDay) => {\n if (\n openingDay.weekday === weekday &&\n openingDay.periods.length > 0\n ) {\n periods = openingDay.periods;\n }\n });\n } else {\n let start: string;\n let end: string;\n workshop.openingDays.forEach((openingDay) => {\n openingDay.periods.sort();\n if (openingDay.periods.length > 0) {\n if (\n !start ||\n Util.isBeforeHourMinute(openingDay.periods[0].start, start)\n ) {\n start = openingDay.periods[0].start;\n }\n if (\n !end ||\n Util.isAfterHourMinute(\n openingDay.periods[openingDay.periods.length - 1].end,\n end\n )\n ) {\n end = openingDay.periods[openingDay.periods.length - 1].end;\n }\n }\n });\n periods = [{ start, end }];\n }\n return periods;\n })\n );\n }\n\n getOpeningDays(): Observable {\n return this.getWorkshop().pipe(\n filter((workshop) => !!workshop),\n map((workshop) => workshop.openingDays)\n );\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { UserService } from '../core/user/user.service';\nimport { MatomoTracker } from '@ngx-matomo/tracker';\nimport { MatomoCustomService } from '../core/matomo/matomo-custom.service';\n\n@Component({\n selector: 'jc-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n})\nexport class ErrorComponent implements OnInit {\n param: 'inactive' | 'disabled' | null;\n userId: string;\n\n constructor(\n private route: ActivatedRoute,\n private userService: UserService,\n private matomoTracker: MatomoTracker,\n private matomoCustomService: MatomoCustomService\n ) {}\n ngOnInit(): void {\n const pageTitle = 'Error';\n this.matomoCustomService.customDimensionsIsReady.subscribe(isReady => {\n if (isReady) {\n this.matomoTracker.setDocumentTitle(pageTitle);\n this.matomoTracker.trackPageView(pageTitle);\n }\n });\n this.route.queryParams.subscribe((queryParams) => {\n if (queryParams.cause) {\n this.param = queryParams.cause;\n }\n });\n this.userService.getUser().subscribe((user) => {\n this.userId = user.id;\n });\n }\n}\n","

\n \n \n \n Something went wrong...\n Your workshop has not yet been enabled on this tool\n \n Your userID \n {{ userId }}\n is not yet enabled on this tool\n \n

\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'jc-main',\n templateUrl: './main.component.html',\n styleUrls: ['./main.component.scss'],\n})\nexport class MainComponent {}\n","\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Activity report\n */\nexport interface ActivityReport { \n workshopBayIds?: Array;\n workshopUserId?: string;\n hoursPaid?: number;\n hoursAvailable?: number;\n hoursPlanned?: number;\n hoursBooked?: number;\n nbActivities?: number;\n nonProdActivity?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ActivityReport } from './activityReport';\n\n\n/**\n * Activity report\n */\nexport interface ActivityReportDay { \n day?: string;\n reports?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * List of travels associated to an activity to claim\n */\nexport interface ActivityTravelList { \n itemId?: number;\n travelList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ActivityValidated { \n ids?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ApiError { \n code: number;\n message: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Response for appt open/close on DMS.\n */\nexport interface ApiResponseDto { \n code?: string;\n description?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PriorityType } from './priorityType';\nimport { OnHoldReason } from './onHoldReason';\nimport { AppointmentUnitStatus } from './appointmentUnitStatus';\nimport { CustomerCompany } from './customerCompany';\nimport { Jobcard } from './jobcard';\nimport { CpdContactDetails } from './cpdContactDetails';\nimport { ChecklistDamage } from './checklistDamage';\nimport { AppointmentStatus } from './appointmentStatus';\nimport { VehicleCourtesy } from './vehicleCourtesy';\nimport { CustomerCompanyUser } from './customerCompanyUser';\nimport { EpartsPart } from './epartsPart';\nimport { JobcardTravel } from './jobcardTravel';\nimport { Vehicle } from './vehicle';\nimport { ChecklistInstance } from './checklistInstance';\nimport { VehicleCourtesyBooking } from './vehicleCourtesyBooking';\nimport { AppointmentIuDocument } from './appointmentIuDocument';\n\n\nexport interface Appointment {\n id: number;\n workshopId?: number;\n workshopBayId?: number;\n workshopUserId?: string;\n createdByUserId?: string;\n customerNeed?: string;\n repairAddress?: string;\n types?: Array;\n mileage?: number;\n engineHours?: number;\n failureEngineHours?: number;\n receptionDate?: string;\n deliveryDate?: string;\n repairCompletionDate?: string;\n actualReceptionDate?: string;\n actualDeliveryDate?: string;\n plannedDeliveryDate?: string;\n dmsCreationDate?: string;\n jobcard?: Jobcard;\n customerCompany?: CustomerCompany;\n vehicle?: Vehicle;\n vehicleCourtesy?: VehicleCourtesy;\n status?: AppointmentStatus;\n unitStatus?: AppointmentUnitStatus;\n dmsResponseCode?: string;\n dmsResponseMessage?: string;\n /**\n * List of attached checklists\n */\n checklistInstances?: Array;\n checklistDamages?: Array;\n salesOrganizationId?: number;\n driver?: CustomerCompanyUser;\n workshopSales?: number;\n partSales?: number;\n officialTime?: number;\n efficiency?: number;\n onHold?: boolean;\n onHoldReason?: OnHoldReason;\n isBreakdownAppt?: boolean;\n isAppointmentOpened?: boolean;\n orderTypeHeaderCode?: number;\n vehicleCourtesyBookingDto?: VehicleCourtesyBooking;\n numberOfBales?: number;\n numberOfAcres?: number;\n threshingHours?: number;\n requiredExtraUnits?: string;\n ManuallyUnits?: Appointment.ManuallyUnitsEnum;\n travels?: Array;\n currentAppointmentstatus?: AppointmentStatus;\n cpdAlternateContact?: CpdContactDetails;\n cpdContactDetails?: CpdContactDetails;\n epartsParts?: Array;\n dmsLogError?: boolean;\n appointmentPriority?: string;\n priorityType?: PriorityType;\n currentStatus?: Appointment.CurrentStatusEnum;\n iuDocuments?: Array;\n customerPaymentMode?: string;\n openedBy?: string;\n openedById?: string;\n}\nexport namespace Appointment {\n export type ManuallyUnitsEnum = 'numberOfBales' | 'numberOfAcres' | 'threshingHours' | 'mileage' | 'engineHours';\n export const ManuallyUnitsEnum = {\n NumberOfBales: 'numberOfBales' as ManuallyUnitsEnum,\n NumberOfAcres: 'numberOfAcres' as ManuallyUnitsEnum,\n ThreshingHours: 'threshingHours' as ManuallyUnitsEnum,\n Mileage: 'mileage' as ManuallyUnitsEnum,\n EngineHours: 'engineHours' as ManuallyUnitsEnum\n };\n export type CurrentStatusEnum = 'new' | 'draft' | 'schedule' | 'appointmentPrepared' | 'received' | 'reparing' | 'serviceAdvisorValidationPending' | 'clientValidationPending' | 'warrantyValidationPending' | 'sentBackError' | 'workfileValidated' | 'delivered' | 'jobcardFinalised' | 'cancelled';\n export const CurrentStatusEnum = {\n New: 'new' as CurrentStatusEnum,\n Draft: 'draft' as CurrentStatusEnum,\n Schedule: 'schedule' as CurrentStatusEnum,\n AppointmentPrepared: 'appointmentPrepared' as CurrentStatusEnum,\n Received: 'received' as CurrentStatusEnum,\n Reparing: 'reparing' as CurrentStatusEnum,\n ServiceAdvisorValidationPending: 'serviceAdvisorValidationPending' as CurrentStatusEnum,\n ClientValidationPending: 'clientValidationPending' as CurrentStatusEnum,\n WarrantyValidationPending: 'warrantyValidationPending' as CurrentStatusEnum,\n SentBackError: 'sentBackError' as CurrentStatusEnum,\n WorkfileValidated: 'workfileValidated' as CurrentStatusEnum,\n Delivered: 'delivered' as CurrentStatusEnum,\n JobcardFinalised: 'jobcardFinalised' as CurrentStatusEnum,\n Cancelled: 'cancelled' as CurrentStatusEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * IU or SRT associated to an appointment.\n */\nexport interface AppointmentIuDocument { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n vin?: string;\n appointmentId?: number;\n selected?: boolean;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentNotification { \n sentDate?: string;\n body?: string;\n notificationTitle?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentSignature { \n id: number;\n url?: string;\n phase?: AppointmentSignature.PhaseEnum;\n appointmentId?: number;\n checklistInstanceId?: number;\n customerCompanyUserId?: number;\n /**\n * creation time.\n */\n time?: string;\n secretKey?: string;\n secretIV?: string;\n customerNotPresent?: boolean;\n signatory?: string;\n workshopUserId?: string;\n isTechnician?: boolean;\n}\nexport namespace AppointmentSignature {\n export type PhaseEnum = 'RECEPTION' | 'DELIVERY' | 'SAFETY';\n export const PhaseEnum = {\n RECEPTION: 'RECEPTION' as PhaseEnum,\n DELIVERY: 'DELIVERY' as PhaseEnum,\n SAFETY: 'SAFETY' as PhaseEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppointmentSignature } from './appointmentSignature';\n\n\nexport interface AppointmentSignatureFile { \n appointmentSignature?: AppointmentSignature;\n signatureFile?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface AppointmentStatus {\n id: number;\n time?: string;\n status?: AppointmentStatus.StatusEnum;\n reason?: AppointmentStatus.ReasonEnum;\n customerCompanyUser?: CustomerCompanyUser;\n workshopUser?: WorkshopUser;\n version?: number;\n}\nexport namespace AppointmentStatus {\n export type StatusEnum = 'new' | 'draft' | 'schedule' | 'appointmentPrepared' | 'received' | 'reparing' | 'serviceAdvisorValidationPending' | 'clientValidationPending' | 'warrantyValidationPending' | 'sentBackError' | 'workfileValidated' | 'delivered' | 'jobcardFinalised' | 'cancelled';\n export const StatusEnum = {\n New: 'new' as StatusEnum,\n Draft: 'draft' as StatusEnum,\n Schedule: 'schedule' as StatusEnum,\n AppointmentPrepared: 'appointmentPrepared' as StatusEnum,\n Received: 'received' as StatusEnum,\n Reparing: 'reparing' as StatusEnum,\n ServiceAdvisorValidationPending: 'serviceAdvisorValidationPending' as StatusEnum,\n ClientValidationPending: 'clientValidationPending' as StatusEnum,\n WarrantyValidationPending: 'warrantyValidationPending' as StatusEnum,\n SentBackError: 'sentBackError' as StatusEnum,\n WorkfileValidated: 'workfileValidated' as StatusEnum,\n Delivered: 'delivered' as StatusEnum,\n JobcardFinalised: 'jobcardFinalised' as StatusEnum,\n Cancelled: 'cancelled' as StatusEnum\n };\n export type ReasonEnum = 'customerAdvised' | 'slotNotAvailable' | 'partNotAvailable' | 'repairCarriedOut' | 'repairAnotherBooking' | 'other';\n export const ReasonEnum = {\n CustomerAdvised: 'customerAdvised' as ReasonEnum,\n SlotNotAvailable: 'slotNotAvailable' as ReasonEnum,\n PartNotAvailable: 'partNotAvailable' as ReasonEnum,\n RepairCarriedOut: 'repairCarriedOut' as ReasonEnum,\n RepairAnotherBooking: 'repairAnotherBooking' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppointmentUnitStatus { \n id: number;\n date?: string;\n unitDown?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AverageJobcardDto { \n averageArrival?: number;\n averageDelivery?: number;\n averageFailure?: number;\n averageInvoice?: number;\n averageRepair?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Aure Token to retrieve the token\n */\nexport interface AzureToken { \n key?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Series } from './series';\nimport { Types } from './types';\nimport { Model } from './model';\n\n\n/**\n * Vehicles\\' brand.\n */\nexport interface Brand { \n /**\n * Brand ID.\n */\n id?: number;\n /**\n * Brand name.\n */\n name?: string;\n /**\n * Ice code.\n */\n iceCode?: string;\n image?: string;\n models?: Array;\n series?: Array;\n typeList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistCheck { \n /**\n * Id of the check used for checklist response value.\n */\n id: number;\n /**\n * Order to display the checks in the array.\n */\n order?: number;\n /**\n * Label to display next to the check.\n */\n label?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Checklist Result Attachment.\n */\nexport interface ChecklistDamage {\n /**\n * Jobcard item Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n zone?: number;\n creationDate?: string;\n comment?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n version?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistQuestion } from './checklistQuestion';\n\n\nexport interface ChecklistGroup { \n name: string;\n questions?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistResult } from './checklistResult';\nimport { AppointmentSignature } from './appointmentSignature';\nimport { ChecklistGroup } from './checklistGroup';\n\n\nexport interface ChecklistInstance {\n id: number;\n summaryUrl?: string;\n content?: string;\n checklistGroups?: Array;\n appointmentId?: number;\n type?: ChecklistInstance.TypeEnum;\n workshopUserId?: string;\n checkListResult?: Array;\n checklistSignature?: AppointmentSignature;\n checklistTemplateId?: number;\n checklistTemplateTitle?: string;\n jobcardItemId?: number;\n submitted?: boolean;\n completionDate?: string;\n version?: number;\n}\nexport namespace ChecklistInstance {\n export type TypeEnum = 'reception' | 'safety' | 'maintenance';\n export const TypeEnum = {\n Reception: 'reception' as TypeEnum,\n Safety: 'safety' as TypeEnum,\n Maintenance: 'maintenance' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistCheck } from './checklistCheck';\n\n\nexport interface ChecklistQuestion { \n id: number;\n order?: number;\n label?: string;\n resultType?: ChecklistQuestion.ResultTypeEnum;\n sliderMin?: number;\n sliderMax?: number;\n sliderStep?: number;\n labelOk?: string;\n labelFault?: string;\n value?: number;\n required?: boolean;\n checks?: Array;\n}\nexport namespace ChecklistQuestion {\n export type ResultTypeEnum = 'status' | 'slider' | 'switch' | 'checks';\n export const ResultTypeEnum = {\n Status: 'status' as ResultTypeEnum,\n Slider: 'slider' as ResultTypeEnum,\n Switch: 'switch' as ResultTypeEnum,\n Checks: 'checks' as ResultTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ChecklistResultAttachment } from './checklistResultAttachment';\n\n\nexport interface ChecklistResult {\n id: number;\n itemId?: number;\n commentResult?: string;\n resultValue?: string;\n timeResult?: string;\n checkListResultAttachment?: Array;\n version?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Checklist Result Attachment.\n */\nexport interface ChecklistResultAttachment {\n /**\n * Jobcard item Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n jobOrder?: number;\n filename?: string;\n sapCode?: string;\n size?: number;\n creationDate?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n version?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ChecklistTemplate { \n id: number;\n type?: string;\n title?: string;\n content?: string;\n defaultChecklist?: boolean;\n /**\n * Proprietary workshop ID.\n */\n workshopId?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardItemStatus } from './jobcardItemStatus';\n\n\n/**\n * Clocking logs\n */\nexport interface ClockingLogDto { \n id?: number;\n technicianId?: string;\n activityStatus?: string;\n isClockingCorrected?: boolean;\n clockingCorrectedBy?: string;\n clockingCorrectedDate?: string;\n clockingErrorReason?: string;\n isDeleted?: boolean;\n clockingStartTime?: string;\n clockingEndTime?: string;\n clockedTime?: number;\n allowedTime?: number;\n activityName?: string;\n bookingId?: number;\n jobcardItemStatus?: JobcardItemStatus;\n jobcardItem?: JobcardItem;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FictitiousMaterial } from './fictitiousMaterial';\n\n\n/**\n * Equivalence mapping object for Consumables between Iveco/CNH part number and DMS/SAP equivalent ID\n */\nexport interface ConsumableAssociation { \n /**\n * Association ID\n */\n id?: number;\n /**\n * Workshop ID\n */\n workshopId: number;\n /**\n * Consumable type\n */\n type: ConsumableAssociation.TypeEnum;\n /**\n * Consumable description\n */\n description: string;\n /**\n * IVECO/CNH part number\n */\n ivecoPartNumber: string;\n /**\n * Equivalent ID\n */\n equivalentId: string;\n ewarrantyCode?: FictitiousMaterial;\n /**\n * Pre Code\n */\n preCode?: string;\n}\nexport namespace ConsumableAssociation {\n export type TypeEnum = 'OTHER' | 'GREASE' | 'ANTIFREEZE_COOLANT' | 'BRAKE_OIL' | 'HYDRAULIC_OIL' | 'TRANSMISSION_OIL' | 'ENGINE_OIL';\n export const TypeEnum = {\n OTHER: 'OTHER' as TypeEnum,\n GREASE: 'GREASE' as TypeEnum,\n ANTIFREEZECOOLANT: 'ANTIFREEZE_COOLANT' as TypeEnum,\n BRAKEOIL: 'BRAKE_OIL' as TypeEnum,\n HYDRAULICOIL: 'HYDRAULIC_OIL' as TypeEnum,\n TRANSMISSIONOIL: 'TRANSMISSION_OIL' as TypeEnum,\n ENGINEOIL: 'ENGINE_OIL' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OrderTypeDto } from './orderTypeDto';\n\n\n/**\n * CSPS contract details.\n */\nexport interface ContractDto { \n codCatAmm?: string;\n companyCode?: number;\n contractDescription?: string;\n contractNumber?: number;\n contractStatus?: string;\n contractType?: string;\n customerCode?: string;\n customerPrefix?: string;\n prim?: boolean;\n prodMultiType?: boolean;\n prodType?: string;\n standard?: boolean;\n validityEndDate?: string;\n validityStartDate?: string;\n orderTypes?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ContractDto } from './contractDto';\n\n\n/**\n * CSPS contract detail response .\n */\nexport interface ContractResponseDto { \n exceptionCode?: string;\n exceptionMessage?: string;\n path?: string;\n status?: number;\n timestamp?: string;\n contracts?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Country\n */\nexport interface Country { \n id?: number;\n /**\n * Country name\n */\n name?: string;\n /**\n * Country name Abbrev\n */\n abbrev?: string;\n market?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CpdContactDetails { \n id: number;\n customerName?: string;\n cityName?: string;\n countryCode?: string;\n address?: string;\n zipCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS parts order status.\n */\nexport interface CspsOrderStatus { \n /**\n * The CSPS order id.\n */\n cspsId?: number;\n /**\n * The Customer Order id.\n */\n customerOrderId?: string;\n /**\n * The Type of Order.\n */\n orderType?: number;\n /**\n * Description of the orderType\n */\n orderTypeDescription?: string;\n /**\n * Delivery address\n */\n retailCode?: string;\n /**\n * Description of the delivery address\n */\n retailCodeDescription?: string;\n /**\n * The Contract Id.\n */\n contract?: string;\n /**\n * Description of the contract\n */\n contractDescription?: string;\n /**\n * The Total Gross of the Order.\n */\n totalGross?: number;\n /**\n * The Total Net of the Order.\n */\n totalNet?: number;\n /**\n * The Number of lines of the Order.\n */\n noOfLines?: number;\n /**\n * The Status of the Order.\n */\n status?: CspsOrderStatus.StatusEnum;\n /**\n * additional order status details\n */\n details?: string;\n}\nexport namespace CspsOrderStatus {\n export type StatusEnum = 'SIMULATED' | 'OPENORDER' | 'CLOSEDORDER';\n export const StatusEnum = {\n SIMULATED: 'SIMULATED' as StatusEnum,\n OPENORDER: 'OPENORDER' as StatusEnum,\n CLOSEDORDER: 'CLOSEDORDER' as StatusEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Currency\n */\nexport interface Currency { \n /**\n * Currency code following ISO 4217\n */\n code?: string;\n /**\n * Currency name\n */\n label?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CpdContactDetails } from './cpdContactDetails';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface CustomerCompany {\n id: number;\n dmsId?: string;\n name?: string;\n city?: string;\n country?: string;\n workshopId?: number;\n isActive?: boolean;\n isTcChecked?: boolean;\n isMrChecked?: boolean;\n isSurveyChecked?: boolean;\n tcCheckedDate?: string;\n mrCheckedDate?: string;\n surveyCheckedDate?: string;\n creditStatus?: string;\n creditStatusId?: number;\n creditAmount?: string;\n zipcode?: string;\n address?: string;\n displayedName?: string;\n mobilePhone?: string;\n phone?: string;\n email?: string;\n customerNote?: string;\n users?: Array;\n alternateContactDetails?: Array;\n isCpd?: boolean;\n isCashCust?: boolean;\n customerPaymentMode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CustomerCompanyUser { \n id?: number;\n customerCompanyId?: number;\n firstName?: string;\n lastName?: string;\n email?: string;\n mobilePhone?: string;\n phone?: string;\n dmsId?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { VehiclesDetailsDto } from './vehiclesDetailsDto';\n\n\nexport interface CustomerTrendsDto { \n customerName?: string;\n partsSales?: number;\n partsMargin?: number;\n workshopSales?: number;\n workshopMargin?: number;\n vehicleDetails?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS parts customer view.\n */\nexport interface CustomerViewDto { \n id?: number;\n /**\n * Part quantity.\n */\n quantity?: number;\n /**\n * Part order simulation id.\n */\n orderSimulationId?: number;\n /**\n * Part gross price.\n */\n grossPrice?: number;\n /**\n * Part net price.\n */\n netPrice?: number;\n /**\n * Part appointment id.\n */\n appointmentId?: number;\n /**\n * Customer name.\n */\n customerName?: string;\n /**\n * Part code.\n */\n partCode?: string;\n /**\n * Part description.\n */\n description?: string;\n /**\n * Order simulation date.\n */\n orderSimulationDate?: string;\n /**\n * Part status.\n */\n partStatus?: string;\n /**\n * Expected delivery date.\n */\n expectedDeliveryDate?: string;\n /**\n * basic discount\n */\n basicDiscount?: number;\n /**\n * promo discount\n */\n promoDiscount?: number;\n /**\n * additionnal part details\n */\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface DealerBrandStyle { \n id?: number;\n dealerPortalBrand?: string;\n market?: number;\n brandStyleId?: DealerBrandStyle.BrandStyleIdEnum;\n brandPrimaryColor?: string;\n brandSecondaryColor?: string;\n brandBgColor?: string;\n brandLogo?: string;\n}\nexport namespace DealerBrandStyle {\n export type BrandStyleIdEnum = 'NH_CE' | 'NH_AG' | 'CASE_IH' | 'CASE_CE';\n export const BrandStyleIdEnum = {\n NHCE: 'NH_CE' as BrandStyleIdEnum,\n NHAG: 'NH_AG' as BrandStyleIdEnum,\n CASEIH: 'CASE_IH' as BrandStyleIdEnum,\n CASECE: 'CASE_CE' as BrandStyleIdEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OrderTypeDto } from './orderTypeDto';\n\n\n/**\n * CSPS delivery address.\n */\nexport interface DeliveryAddressDto { \n area?: string;\n /**\n * City.\n */\n city?: string;\n /**\n * Code.\n */\n code?: string;\n /**\n * country.\n */\n country?: string;\n /**\n * countryCode.\n */\n countryCode?: string;\n /**\n * description.\n */\n description?: string;\n /**\n * description2.\n */\n description2?: string;\n /**\n * details.\n */\n details?: string;\n /**\n * flgStandard.\n */\n flgStandard?: string;\n /**\n * zipCode.\n */\n zipCode?: string;\n orderTypeList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { DeliveryAddressDto } from './deliveryAddressDto';\n\n\n/**\n * CSPS delivery address.\n */\nexport interface DeliveryAddressResponseDto { \n exceptionCode?: string;\n exceptionMessage?: string;\n path?: string;\n status?: number;\n timestamp?: string;\n clientCode?: string;\n clientPrefix?: string;\n deliveryAddressList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * DMS Communication.\n */\nexport interface DmsCommunicationDto { \n /**\n * Order Status ID.\n */\n id?: number;\n orderStatus?: string;\n isSendOrder?: boolean;\n isConvertOrder?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Dms Logs.\n */\nexport interface DmsLog { \n id?: number;\n appointmentId?: number;\n functionName?: string;\n logDate?: string;\n request?: string;\n response?: string;\n content?: string;\n responseTime?: number;\n fromDate?: string;\n toDate?: string;\n code?: string;\n workshopId?: number;\n uuid?: string;\n page?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * DMS back-end connection status.\n */\nexport interface DmsStatus { \n /**\n * DMS available for querying.\n */\n connected?: boolean;\n /**\n * Details of the result\n */\n details?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface EncryptedSignature { \n encryptedSignature?: string;\n encryptedKey?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface EpartsMarketMapping { \n id?: number;\n tidbMarketCode?: number;\n epartsMarketCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\nimport { Currency } from './currency';\n\n\nexport interface EpartsPart { \n id?: number;\n appointmentId?: number;\n code?: string;\n description?: string;\n quantity?: number;\n dateAdded?: string;\n dealerPrice?: number;\n retailPrice?: number;\n currency?: Currency;\n part?: Part;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Other Workshop\n */\nexport interface ExtraOperation {\n id?: number;\n typeLabel?: string;\n type?: ExtraOperation.TypeEnum;\n description?: string;\n code?: string;\n supplierName?: string;\n level?: string;\n distance?: number;\n amount?: number;\n compulsory?: boolean;\n selected?: boolean;\n dmsId?: string;\n invoiceNumber?: string;\n manufacturer?: string;\n quantity?: number;\n deleted?: boolean;\n active?: boolean;\n version?: number;\n}\nexport namespace ExtraOperation {\n export type TypeEnum = 'all' | 'material' | 'extraCharges' | 'sublet' | 'travel' | 'freight' | 'fictitious_material' | 'fm_antifreeze' | 'fm_miscellaneous' | 'fm_oil' | 'fm_refrigerant' | 'fm_tyre';\n export const TypeEnum = {\n All: 'all' as TypeEnum,\n Material: 'material' as TypeEnum,\n ExtraCharges: 'extraCharges' as TypeEnum,\n Sublet: 'sublet' as TypeEnum,\n Travel: 'travel' as TypeEnum,\n Freight: 'freight' as TypeEnum,\n FictitiousMaterial: 'fictitious_material' as TypeEnum,\n FmAntifreeze: 'fm_antifreeze' as TypeEnum,\n FmMiscellaneous: 'fm_miscellaneous' as TypeEnum,\n FmOil: 'fm_oil' as TypeEnum,\n FmRefrigerant: 'fm_refrigerant' as TypeEnum,\n FmTyre: 'fm_tyre' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface FeedbackAttachmentDto { \n userId?: string;\n requestId?: string;\n contactId?: string;\n blobName?: string;\n containerName?: string;\n fileName?: string;\n fileExtension?: string;\n fileSize?: number;\n storageAccount?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface FeedbackCreationDto { \n userId?: string;\n name?: string;\n notificationEmail?: string;\n fbCategory?: string;\n feedbackSubcategory?: string;\n brand?: string;\n region?: string;\n notes?: string;\n attachedFile?: string;\n sapCode?: string;\n RequestURL?: string;\n RequestNumber?: string;\n date?: string;\n RequestId?: string;\n ContactId?: string;\n jobId?: string;\n applicationType?: string;\n system?: string;\n mode?: string;\n softwareVersion?: string;\n deviceModel?: string;\n noteArr?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FictitiousMaterial = '-OIL' | '-ANTIFREEZE' | '-MISCELLANEOUS' | '-REFRIGERANT' | '-MATERIAL' | '-TIRE';\n\nexport const FictitiousMaterial = {\n OIL: '-OIL' as FictitiousMaterial,\n ANTIFREEZE: '-ANTIFREEZE' as FictitiousMaterial,\n MISCELLANEOUS: '-MISCELLANEOUS' as FictitiousMaterial,\n REFRIGERANT: '-REFRIGERANT' as FictitiousMaterial,\n MATERIAL: '-MATERIAL' as FictitiousMaterial,\n TIRE: '-TIRE' as FictitiousMaterial\n};\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type FilterBy = 'customerName' | 'dmsJobOrder' | 'brand' | 'model' | 'vin';\n\nexport const FilterBy = {\n CustomerName: 'customerName' as FilterBy,\n DmsJobOrder: 'dmsJobOrder' as FilterBy,\n Brand: 'brand' as FilterBy,\n Model: 'model' as FilterBy,\n Vin: 'vin' as FilterBy\n};\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface HealthCheckJobcard { \n environment?: string;\n business?: string;\n version?: string;\n uptime?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FeedbackCreationDto } from './feedbackCreationDto';\n\n\nexport interface InlineObject { \n files?: Array;\n feedbackResultDto?: FeedbackCreationDto;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject1 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject2 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject3 { \n id?: number;\n defferDeleteReason?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject4 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject5 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InlineObject6 { \n file?: Blob;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface InspectionChecklistReportLine { \n appointmentId?: number;\n checklistId?: number;\n dmsJoborder?: number;\n customerCompanyName?: string;\n brandName?: string;\n modelName?: string;\n sn?: string;\n checklistType?: string;\n defectsIdentified?: number;\n defectsAddedToWorkOrder?: number;\n deferredItems?: number;\n itemsApproved?: number;\n conversionPercentage?: number;\n quotedValue?: number;\n soldValue?: number;\n partsValueInvoiced?: number;\n labourValueInvoiced?: number;\n currencyCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { IuDocumentDto } from './iuDocumentDto';\n\n\nexport interface IuDocumentBasketDto { \n userId?: string;\n appointmentId?: number;\n documents?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface IuDocumentDto { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n appointmentId?: number;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemDeleted } from './jobcardItemDeleted';\nimport { JobcardItem } from './jobcardItem';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardTravel } from './jobcardTravel';\n\n\n/**\n * Jobcard main informations.\n */\nexport interface Jobcard {\n /**\n * Jobcard ID.\n */\n id: number;\n /**\n * Jobcard DMS job order.\n */\n dmsJobOrder?: string;\n /**\n * Dealer Claim Number from SAP.\n */\n dealerClaimNumber?: string;\n /**\n * ANS Dossier for CRM.\n */\n ansDossier?: string;\n /**\n * Jobcard job order to claim.\n */\n dmsToStrClaim?: string;\n /**\n * Claim Number.\n */\n claim?: string;\n /**\n * Jobcard execution estimated duration.\n */\n estimatedDuration?: number;\n /**\n * Jobcard start time.\n */\n startTime?: string;\n /**\n * Jobcard end time.\n */\n endTime?: string;\n /**\n * Failure Date\n */\n failureDate?: string;\n jobcardItems?: Array;\n jobcardItemDeleted?: Array;\n /**\n * Jobcard attachments list. TODO rename\n */\n jobcardAttachmentDtos?: Array;\n customerOrderNumber?: string;\n dmsOrderType?: Jobcard.DmsOrderTypeEnum;\n djcOrderType?: Jobcard.DjcOrderTypeEnum;\n jobcardTravels?: Array;\n /**\n * Jobcard mileages list.\n */\n jobcardMileages?: Array;\n /**\n * Jobcard engine hour list.\n */\n jobcardEngineHours?: Array;\n /**\n * Jobcard serial number list.\n */\n jobcardSerialNumbers?: Array;\n version?: number;\n}\nexport namespace Jobcard {\n export type DmsOrderTypeEnum = 'Quote' | 'Invoice' | 'Reservation' | 'Order';\n export const DmsOrderTypeEnum = {\n Quote: 'Quote' as DmsOrderTypeEnum,\n Invoice: 'Invoice' as DmsOrderTypeEnum,\n Reservation: 'Reservation' as DmsOrderTypeEnum,\n Order: 'Order' as DmsOrderTypeEnum\n };\n export type DjcOrderTypeEnum = 'readyToInvoice' | 'Invoice';\n export const DjcOrderTypeEnum = {\n ReadyToInvoice: 'readyToInvoice' as DjcOrderTypeEnum,\n Invoice: 'Invoice' as DjcOrderTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard Attachment.\n */\nexport interface JobcardAttachment { \n /**\n * Jobcard Attachment ID.\n */\n id?: number;\n type?: string;\n url?: string;\n year?: number;\n filename?: string;\n jobOrder?: number;\n sapCode?: string;\n filesize?: number;\n creationDate?: string;\n isDeleted?: boolean;\n isSapOk?: boolean;\n reason?: string;\n description?: string;\n workshopUserId?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WarrantyType } from './warrantyType';\nimport { JobcardItemTechnician } from './jobcardItemTechnician';\nimport { MpInformation } from './mpInformation';\nimport { PaymentSubSubType } from './paymentSubSubType';\nimport { JobcardItemStatus } from './jobcardItemStatus';\nimport { Operation } from './operation';\nimport { JobcardAttachment } from './jobcardAttachment';\nimport { JobcardItemCustomerStatus } from './jobcardItemCustomerStatus';\nimport { JobcardTravel } from './jobcardTravel';\nimport { JobcardItemIuDocument } from './jobcardItemIuDocument';\nimport { WarrantyClaimData } from './warrantyClaimData';\nimport { WorkshopDiscount } from './workshopDiscount';\nimport { JobcardItemSpell } from './jobcardItemSpell';\nimport { PaymentType } from './paymentType';\nimport { ChecklistInstance } from './checklistInstance';\nimport { PaymentSubType } from './paymentSubType';\nimport { JobcardPartsBacklog } from './jobcardPartsBacklog';\nimport { Split } from './split';\nimport { ExtraOperation } from './extraOperation';\n\n\n/**\n * Jobcard item details.\n */\nexport interface JobcardItem { \n /**\n * Jobcard item ID.\n */\n id?: number;\n /**\n * Jobcard item type.\n */\n type?: JobcardItem.TypeEnum;\n /**\n * Jobcard subtype used for subtype of an alert.\n */\n subtype?: string;\n /**\n * Jobcard priority used for level of priority of an alert.\n */\n priority?: number;\n /**\n * Jobcard weight used to order the jobcardItems.\n */\n weight?: number;\n /**\n * Jobcard item name.\n */\n name: string;\n /**\n * Jobcard item description.\n */\n description?: string;\n /**\n * Jobcard item additional description.\n */\n additionalDescription?: string;\n /**\n * Jobcard item code.\n */\n code?: string;\n estimatedDuration?: number;\n /**\n * Jobcard item\\'s details URL\n */\n url?: string;\n /**\n * Jobcard item\\'s Asist Buy Kits URL\n */\n asistUrl?: string;\n /**\n * Jobcard item operation list.\n */\n operations?: Array;\n /**\n * Jobcard item status list.\n */\n jobcardItemStatus?: Array;\n /**\n * Missing Parts in Jobcard.\n */\n jobcardPartsBacklog?: Array;\n /**\n * Jobcard item attachment list.\n */\n jobcardItemAttachments?: Array;\n workshopUserId?: string;\n comment?: string;\n /**\n * Activity might be deferred (not shown)\n */\n deferred?: boolean;\n /**\n * Date the activity was deferred\n */\n deferredDate?: string;\n /**\n * Date to the activity was deferred\n */\n deferredToDate?: string;\n /**\n * Reason for deferring activity\n */\n reason?: string;\n isExtraActivity?: boolean;\n isCustomerAgreed?: boolean;\n agreementSignatureUrl?: string;\n agreementCustomerName?: string;\n travels?: Array;\n /**\n * Show/hide activity to the customer\n */\n visible?: boolean;\n /**\n * Supplier Code\n */\n supplierCode?: string;\n /**\n * Defect Code\n */\n defectCode?: string;\n /**\n * Failure Code\n */\n failureCode?: string;\n /**\n * Failure Description\n */\n failureDescription?: string;\n /**\n * Severity of the failure for activity\n */\n failureSeverity?: number;\n /**\n * Warranty coverage for activity.\n */\n warrantyCoverage?: boolean;\n /**\n * Warranty Contract that covers the activity.\n */\n warrantyContract?: string;\n /**\n * Warranty Contract Number that covers the Vehicle.\n */\n contractNumber?: string;\n /**\n * Warranty Type that covers the activity.\n */\n warrantyType?: string;\n /**\n * Operation required parts.\n */\n causalPartId?: number;\n extraOperations?: Array;\n /**\n * Activity set to be deleted in backend\n */\n deleted?: boolean;\n loading?: boolean;\n /**\n * Payment Code\n */\n paymentCode?: string;\n /**\n * Payment Type Id\n */\n paymentTypeId?: number;\n /**\n * Pay Type\n */\n payType?: string;\n /**\n * Payment Sub Code\n */\n paymentSubcode?: string;\n /**\n * Payment Sub Type Id\n */\n paymentSubTypeId?: number;\n /**\n * Payment Sub 2 Code\n */\n paymentSub2Code?: string;\n /**\n * Payment Sub Type 2 Id\n */\n paymentSubType2Id?: number;\n /**\n * Payment Sub 3 Code\n */\n paymentSub3Code?: string;\n /**\n * Payment Sub Type 3 Id\n */\n paymentSubType3Id?: number;\n defectDescription?: string;\n supplierDescription?: string;\n causalPartCode?: string;\n splits?: Array;\n mpInfo?: MpInformation;\n couponStatus?: string;\n status?: JobcardItem.StatusEnum;\n totalPrice?: number;\n generalNote?: string;\n cause?: string;\n correction?: string;\n internalNotes?: string;\n paymentType?: PaymentType;\n paymentSubType?: PaymentSubType;\n paymentSubType2?: PaymentSubSubType;\n paymentSubType3?: PaymentSubSubType;\n paymentWarrantyType?: WarrantyType;\n isPaymentTypeDisabled?: boolean;\n isCausalPartDisabled?: boolean;\n startDate?: string;\n percentage?: number;\n discountTypeId?: number;\n technicians?: Array;\n installedDate?: string;\n amountUseOnSpareParts?: number;\n sparePartInvoiceNumber?: string;\n failedComponentSerialNumber?: number;\n replacedComponentSerialNumber?: number;\n preAuthorizationCode?: string;\n authorizerName?: JobcardItem.AuthorizerNameEnum;\n groupReplaced?: JobcardItem.GroupReplacedEnum;\n serviceParticipation?: number;\n warrantyClaimData?: WarrantyClaimData;\n selected?: boolean;\n inspectionActivity?: boolean;\n /**\n * Response from SAP system\n */\n sapResponse?: string;\n workshopBayId?: number;\n checklistInstances?: Array;\n /**\n * Status duration.\n */\n officialTime?: number;\n /**\n * PIP is or not yet available for this Vehicle/Product\n */\n disabled?: boolean;\n docId?: string;\n etimDocLink?: string;\n jobcardItemSpells?: Array;\n remainingDays?: number;\n jobcardItemCustomerStatus?: Array;\n activityValidated?: boolean;\n discounts?: Array;\n selectedDiscount?: string;\n isDiscountAvailable?: boolean;\n /**\n * temp Jobcard item ID used for booking screen handle drag and drop.\n */\n tempJId?: string;\n /**\n * Reason for deleting deffered activity\n */\n defferDeleteReason?: string;\n jobcardItemIuDocuments?: Array;\n duration?: number;\n}\nexport namespace JobcardItem {\n export type TypeEnum = 'alert' | 'pip' | 'fault' | 'nextMaintenance' | 'proposedMaintenance' | 'srt' | 'free' | 'deferred' | 'checklist' | 'etimWeb';\n export const TypeEnum = {\n Alert: 'alert' as TypeEnum,\n Pip: 'pip' as TypeEnum,\n Fault: 'fault' as TypeEnum,\n NextMaintenance: 'nextMaintenance' as TypeEnum,\n ProposedMaintenance: 'proposedMaintenance' as TypeEnum,\n Srt: 'srt' as TypeEnum,\n Free: 'free' as TypeEnum,\n Deferred: 'deferred' as TypeEnum,\n Checklist: 'checklist' as TypeEnum,\n EtimWeb: 'etimWeb' as TypeEnum\n };\n export type StatusEnum = 'normal' | 'inTime' | 'warning' | 'inDelay' | 'inProgress' | 'completed';\n export const StatusEnum = {\n Normal: 'normal' as StatusEnum,\n InTime: 'inTime' as StatusEnum,\n Warning: 'warning' as StatusEnum,\n InDelay: 'inDelay' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Completed: 'completed' as StatusEnum\n };\n export type AuthorizerNameEnum = 'NE' | 'CE';\n export const AuthorizerNameEnum = {\n NE: 'NE' as AuthorizerNameEnum,\n CE: 'CE' as AuthorizerNameEnum\n };\n export type GroupReplacedEnum = 'N' | 'R';\n export const GroupReplacedEnum = {\n N: 'N' as GroupReplacedEnum,\n R: 'R' as GroupReplacedEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Customer\\'s approval/rejection status response history.\n */\nexport interface JobcardItemCustomerStatus { \n id?: number;\n /**\n * Jobcard item reference ID\n */\n jobcardItemId?: number;\n /**\n * Action from user to check if they approve/reject an activity.\n */\n action?: JobcardItemCustomerStatus.ActionEnum;\n /**\n * Time stamp when the action is performed.\n */\n actionDateTime?: string;\n /**\n * The user/person name who acts on it.\n */\n actionPerformedBy?: string;\n /**\n * Online - indicating the action performed by customer; offline - indicating manual changes performed on DJC.\n */\n actionType?: JobcardItemCustomerStatus.ActionTypeEnum;\n}\nexport namespace JobcardItemCustomerStatus {\n export type ActionEnum = 'approve' | 'decline' | 'autoApv' | 'autoDec';\n export const ActionEnum = {\n Approve: 'approve' as ActionEnum,\n Decline: 'decline' as ActionEnum,\n AutoApv: 'autoApv' as ActionEnum,\n AutoDec: 'autoDec' as ActionEnum\n };\n export type ActionTypeEnum = 'online' | 'offline' | 'recep' | 'wty';\n export const ActionTypeEnum = {\n Online: 'online' as ActionTypeEnum,\n Offline: 'offline' as ActionTypeEnum,\n Recep: 'recep' as ActionTypeEnum,\n Wty: 'wty' as ActionTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item details.\n */\nexport interface JobcardItemDeleted { \n /**\n * Jobcard item deleted ID.\n */\n id?: number;\n name?: string;\n code?: string;\n type?: string;\n jobcardId?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * IU or SRT associated to an activity.\n */\nexport interface JobcardItemIuDocument { \n id?: number;\n iuSrtId?: string;\n iceCode?: string;\n name?: string;\n docType?: string;\n docId?: string;\n chapterId?: string;\n lang?: string;\n userId?: string;\n workshopSapCode?: string;\n vin?: string;\n jobcardItemId?: number;\n selected?: boolean;\n productIceCode?: string;\n repairTime?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItemTechnician } from './jobcardItemTechnician';\n\n\n/**\n * Spell details for an activity.\n */\nexport interface JobcardItemSpell {\n id?: number;\n workshopBayId?: number;\n estimatedDuration?: number;\n startDate?: string;\n /**\n * Spell weight used to display in order.\n */\n weight?: number;\n /**\n * Spell selection for drag n drop.\n */\n selected?: boolean;\n technicians?: Array;\n version?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item Status.\n */\nexport interface JobcardItemStatus {\n /**\n * Jobcard item Status ID.\n */\n id?: number;\n time?: string;\n endTime?: string;\n /**\n * Jobcard item status name\n */\n status?: JobcardItemStatus.StatusEnum;\n /**\n * Status duration.\n */\n duration?: number;\n /**\n * Jobcard item clocking status (whan a technician is working on the activity on the mobile app)\n */\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n /**\n * Jobcard appointment priority\n */\n appointmentPriority?: JobcardItemStatus.AppointmentPriorityEnum;\n /**\n * Jobcard Item Id.\n */\n jobcardItemId?: number;\n /**\n * Workshop User Id.\n */\n workshopUserId?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardItemStatus.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n /**\n * Soft delete\n */\n deleted?: boolean;\n /**\n * activity update in fron end.\n */\n currentChangeActivity?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n /**\n * Jobcard item Status DMS ID.\n */\n dmsId?: string;\n version?: number;\n}\nexport namespace JobcardItemStatus {\n export type StatusEnum = 'new' | 'todo' | 'inProgress' | 'pending' | 'invoiced' | 'done' | 'inProgressProductive' | 'doneProductive' | 'pendingProductive' | 'doneNotWithinPlannedTime';\n export const StatusEnum = {\n New: 'new' as StatusEnum,\n Todo: 'todo' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Pending: 'pending' as StatusEnum,\n Invoiced: 'invoiced' as StatusEnum,\n Done: 'done' as StatusEnum,\n InProgressProductive: 'inProgressProductive' as StatusEnum,\n DoneProductive: 'doneProductive' as StatusEnum,\n PendingProductive: 'pendingProductive' as StatusEnum,\n DoneNotWithinPlannedTime: 'doneNotWithinPlannedTime' as StatusEnum\n };\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum,\n WEB: 'CLOCKING_WEB' as ClockingStatusEnum,\n DMS: 'CLOCKING_DMS' as ClockingStatusEnum,\n CRON: 'CLOCKING_CRON' as ClockingStatusEnum\n };\n export type AppointmentPriorityEnum = 'high' | 'medium' | 'low' | 'nopriority';\n export const AppointmentPriorityEnum = {\n High: 'high' as AppointmentPriorityEnum,\n Medium: 'medium' as AppointmentPriorityEnum,\n Low: 'low' as AppointmentPriorityEnum,\n Nopriority: 'nopriority' as AppointmentPriorityEnum\n };\n export type ReasonEnum = 'forgotClockOn' | 'forgotClockOff' | 'helpingAnotherTechnician' | 'forgotClockInOut' | 'technicalErrors' | 'discount' | 'other' | 'CRON';\n export const ReasonEnum = {\n ForgotClockOn: 'forgotClockOn' as ReasonEnum,\n ForgotClockOff: 'forgotClockOff' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n ForgotClockInOut: 'forgotClockInOut' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard active clockings.\n */\nexport interface JobcardItemStatusActiveClockings { \n id?: Array;\n jobcardItemIds?: Array;\n activityNames?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Jobcard item Technician.\n */\nexport interface JobcardItemTechnician {\n /**\n * Intern ID of the link between the jobcard item and the technician.\n */\n linkId?: number;\n workshopUserId?: string;\n estimatedDuration?: number;\n startDate?: string;\n endDate?: string;\n /**\n * Intern ID of the link between the spell and the technician.\n */\n spellLinkId?: number;\n /**\n * to check whether the technician is available or not.\n */\n available?: boolean;\n /**\n * first name of technician\n */\n firstName?: string;\n /**\n * last name of technician\n */\n lastName?: string;\n // CAMPI NUOVI\n id?: number;\n isDeleted?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Part } from './part';\n\n\n/**\n * Missing Part For Jobcard.\n */\nexport interface JobcardPartsBacklog { \n /**\n * id of the part to order\n */\n id?: number;\n /**\n * AppointmentId.\n */\n appointmentId?: number;\n /**\n * Jobcard item.\n */\n jobcardItemId?: number;\n /**\n * Missing part quantity.\n */\n quantity?: number;\n /**\n * Part id.\n */\n partId?: number;\n /**\n * Customer CompanyId .\n */\n customerCompanyId?: number;\n part?: Part;\n /**\n * add or replace part\n */\n view?: string;\n /**\n * workshop where the part are ordered\n */\n workshopId?: number;\n /**\n * id of the csps simulation\n */\n cspsOrderId?: number;\n /**\n * id of the csps simulation\n */\n orderSimulationId?: number;\n /**\n * status of the part\n */\n partStatus?: string;\n /**\n * basic discount\n */\n basicDiscount?: number;\n /**\n * promo discount\n */\n promoDiscount?: number;\n grossPrice?: number;\n netPrice?: number;\n customerName?: string;\n partCode?: string;\n description?: string;\n operation?: string;\n /**\n * Order simulation date.\n */\n orderSimulationDate?: string;\n /**\n * Order simulation date.\n */\n expectedDeliveryDate?: string;\n /**\n * additionnal part details\n */\n details?: string;\n addedDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUserTravelPosition } from './workshopUserTravelPosition';\nimport { PaymentSubSubType } from './paymentSubSubType';\nimport { PaymentType } from './paymentType';\nimport { PaymentSubType } from './paymentSubType';\n\n\n/**\n * Jobcard Travel\n */\nexport interface JobcardTravel { \n id?: number;\n name?: string;\n workshopUserId?: string;\n duration?: number;\n distance?: number;\n date?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardTravel.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n deleted?: boolean;\n /**\n * Technician\\'s GPS positions for the travel\n */\n positions?: Array;\n /**\n * Travel origin address line 1.\n */\n travelFromAddressLine1?: string;\n /**\n * Travel origin address line 2.\n */\n travelFromAddressLine2?: string;\n /**\n * Travel origin address line 3.\n */\n travelFromAddressLine3?: string;\n /**\n * Travel origin address line 4.\n */\n travelFromAddressLine4?: string;\n /**\n * Travel origin address postal code.\n */\n travelFromPostalCode?: string;\n /**\n * Travel destination address line 1.\n */\n travelToAddressLine1?: string;\n /**\n * Travel destination address line 2.\n */\n travelToAddressLine2?: string;\n /**\n * Travel destination address line 3.\n */\n travelToAddressLine3?: string;\n /**\n * Travel destination address line 4.\n */\n travelToAddressLine4?: string;\n /**\n * Travel destination address postal code.\n */\n travelToPostalCode?: string;\n /**\n * Internal comments on travel.\n */\n internalNotes?: string;\n /**\n * Estimated distance (in miles or KMs).\n */\n estimatedDistance?: number;\n /**\n * Estimated duration (in seconds).\n */\n estimatedDuration?: number;\n paymentType?: PaymentType;\n paymentSubType?: PaymentSubType;\n paymentSubSubType2?: PaymentSubSubType;\n paymentSubSubType3?: PaymentSubSubType;\n /**\n * Travel type code from DMS.\n */\n itemCode?: string;\n /**\n * Source of the travel (like pip).\n */\n travelSource?: string;\n /**\n * Additional code to identify the travel.\n */\n travelExtraCode?: string;\n travelVisible?: boolean;\n price?: number;\n travelFromShowCoordinates?: JobcardTravel.TravelFromShowCoordinatesEnum;\n travelToShowCoordinates?: JobcardTravel.TravelToShowCoordinatesEnum;\n travelFromLatitude?: number;\n travelFromLongitude?: number;\n travelToLatitude?: number;\n travelToLongitude?: number;\n /**\n * Travel type to differentiate from travel.\n */\n travelTypeFrom?: string;\n /**\n * Travel type to differentiate to travel.\n */\n travelTypeTo?: string;\n travelFromManualRefreshDate?: string;\n travelToManualRefreshDate?: string;\n travelFromGpsImportedDate?: string;\n travelToGpsImportedDate?: string;\n /**\n * Warranty Claim numbers concatenated, separated by \\\";\\\"\n */\n warrantyClaimNumbers?: string;\n /**\n * Response from SAP system\n */\n sapResponse?: string;\n}\nexport namespace JobcardTravel {\n export type ReasonEnum = 'forgotRecordTravel' | 'forgotStartStop' | 'helpingAnotherTechnician' | 'technicalErrors' | 'discount' | 'other';\n export const ReasonEnum = {\n ForgotRecordTravel: 'forgotRecordTravel' as ReasonEnum,\n ForgotStartStop: 'forgotStartStop' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum\n };\n export type TravelFromShowCoordinatesEnum = 'travelFromAddress' | 'travelFromCoordinates';\n export const TravelFromShowCoordinatesEnum = {\n TravelFromAddress: 'travelFromAddress' as TravelFromShowCoordinatesEnum,\n TravelFromCoordinates: 'travelFromCoordinates' as TravelFromShowCoordinatesEnum\n };\n export type TravelToShowCoordinatesEnum = 'travelToAddress' | 'travelToCoordinates';\n export const TravelToShowCoordinatesEnum = {\n TravelToAddress: 'travelToAddress' as TravelToShowCoordinatesEnum,\n TravelToCoordinates: 'travelToCoordinates' as TravelToShowCoordinatesEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { JobcardItem } from './jobcardItem';\n\n\n/**\n * Vehicle part assembly kit.\n */\nexport interface Kit { \n /**\n * Kit ID.\n */\n id: number;\n name?: string;\n workshopId?: number;\n jobcardItems?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Composition of a kit\n */\nexport interface KitPart { \n compKitCode?: string;\n compPnCode?: string;\n compPnLabel?: string;\n compPnQty?: number;\n compDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WeeklyTrendInspectionDto } from './weeklyTrendInspectionDto';\n\n\nexport interface KpiInspectionReportDto { \n noOfInspection?: number;\n defectsIdentified?: number;\n defectsQuoted?: number;\n itemsApproved?: number;\n quotedValue?: number;\n soldValue?: number;\n partsValueInvoiced?: number;\n labourValueInvoiced?: number;\n weeklyTrendsDto?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiMonthlyPartsTrendDto { \n month?: string;\n partSold?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { KpiMonthlyPartsTrendDto } from './kpiMonthlyPartsTrendDto';\nimport { KpiWeeklyDto } from './kpiWeeklyDto';\n\n\nexport interface KpiPartsDto { \n totalPartsSold?: number;\n missingPartsInCsps?: number;\n missingPartsInDms?: number;\n /**\n * weekly list of non availibility parts\n */\n kpiWeeklyDto?: Array;\n /**\n * list of monthly parts available\n */\n kpiMonthlyPartsTrendDto?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface KpiWeeklyDto { \n startDate?: string;\n missingPartInDms?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Kpis { \n hoursSold?: number;\n wipHoursAveDays?: number;\n wipHoursAveDaysSecondary?: number;\n efficiency?: number;\n attendedTimeClockedTime?: number;\n totalSales?: number;\n partSales?: number;\n workshopSales?: number;\n salesBooking?: number;\n salesCheckin?: number;\n salesWorkshop?: number;\n partSalesperHour?: number;\n recovery?: number;\n productivity?: number;\n utilisation?: number;\n actualUtilisation?: number;\n plannedUtilisation?: number;\n actualEfficiency?: number;\n plannedEfficiency?: number;\n wipAveDays?: number;\n workOrder?: number;\n noOfInspections?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Languages referential\n */\nexport interface Language { \n id?: number;\n /**\n * Language ID\n */\n languageId?: string;\n /**\n * Language name\n */\n languageName?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LegalNotice { \n /**\n * legalNoticeId.\n */\n id?: number;\n termsAndConditions?: string;\n workshopId?: number;\n privacyNotice?: string;\n termsAzureUrl?: string;\n privacyAzureUrl?: string;\n isDocUploadForPn?: boolean;\n isDocUploadForTc?: boolean;\n customerNotes?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LinesExcelReport { \n bookingId?: number;\n activity?: string;\n paymentType?: string;\n paymentSubtype?: string;\n categoryType?: string;\n operations?: string;\n srt?: boolean;\n oppPrice?: number;\n parts?: string;\n partsPrice?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Log Data for standalone merge operation\n */\nexport interface MergeLog { \n id?: number;\n workshopId?: number;\n startDate?: string;\n mergeType?: string;\n status?: string;\n dbVolume?: number;\n importVolume?: number;\n step1?: number;\n step2?: number;\n step3?: number;\n step4?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface MobileLog { \n id?: number;\n date?: string;\n user?: string;\n model?: string;\n mobileVersion?: string;\n description?: string;\n workshopId?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { TechnicalType } from './technicalType';\nimport { Series } from './series';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' model.\n */\nexport interface Model { \n /**\n * Model ID.\n */\n id: number;\n /**\n * Model name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n brand?: Brand;\n series?: Series;\n ttList?: Array;\n}\n\n","export * from './activityReport';\nexport * from './activityReportDay';\nexport * from './activityTravelList';\nexport * from './activityValidated';\nexport * from './apiError';\nexport * from './apiResponseDto';\nexport * from './appointment';\nexport * from './appointmentIuDocument';\nexport * from './appointmentNotification';\nexport * from './appointmentSignature';\nexport * from './appointmentSignatureFile';\nexport * from './appointmentStatus';\nexport * from './appointmentUnitStatus';\nexport * from './averageJobcardDto';\nexport * from './azureToken';\nexport * from './brand';\nexport * from './checklistCheck';\nexport * from './checklistDamage';\nexport * from './checklistGroup';\nexport * from './checklistInstance';\nexport * from './checklistQuestion';\nexport * from './checklistResult';\nexport * from './checklistResultAttachment';\nexport * from './checklistTemplate';\nexport * from './clockingLogDto';\nexport * from './consumableAssociation';\nexport * from './contractDto';\nexport * from './contractResponseDto';\nexport * from './country';\nexport * from './cpdContactDetails';\nexport * from './cspsOrderStatus';\nexport * from './currency';\nexport * from './customerCompany';\nexport * from './customerCompanyUser';\nexport * from './customerTrendsDto';\nexport * from './customerViewDto';\nexport * from './dealerBrandStyle';\nexport * from './deliveryAddressDto';\nexport * from './deliveryAddressResponseDto';\nexport * from './dmsCommunicationDto';\nexport * from './dmsLog';\nexport * from './dmsStatus';\nexport * from './encryptedSignature';\nexport * from './epartsMarketMapping';\nexport * from './epartsPart';\nexport * from './extraOperation';\nexport * from './feedbackAttachmentDto';\nexport * from './feedbackCreationDto';\nexport * from './fictitiousMaterial';\nexport * from './filterBy';\nexport * from './healthCheckJobcard';\nexport * from './inlineObject';\nexport * from './inlineObject1';\nexport * from './inlineObject2';\nexport * from './inlineObject3';\nexport * from './inlineObject4';\nexport * from './inlineObject5';\nexport * from './inlineObject6';\nexport * from './inspectionChecklistReportLine';\nexport * from './iuDocumentBasketDto';\nexport * from './iuDocumentDto';\nexport * from './jobcard';\nexport * from './jobcardAttachment';\nexport * from './jobcardItem';\nexport * from './jobcardItemCustomerStatus';\nexport * from './jobcardItemDeleted';\nexport * from './jobcardItemIuDocument';\nexport * from './jobcardItemSpell';\nexport * from './jobcardItemStatus';\nexport * from './jobcardItemStatusActiveClockings';\nexport * from './jobcardItemTechnician';\nexport * from './jobcardPartsBacklog';\nexport * from './jobcardTravel';\nexport * from './kit';\nexport * from './kitPart';\nexport * from './kpiInspectionReportDto';\nexport * from './kpiMonthlyPartsTrendDto';\nexport * from './kpiPartsDto';\nexport * from './kpiWeeklyDto';\nexport * from './kpis';\nexport * from './language';\nexport * from './legalNotice';\nexport * from './linesExcelReport';\nexport * from './mergeLog';\nexport * from './mobileLog';\nexport * from './model';\nexport * from './mpInformation';\nexport * from './mpInformationDelta';\nexport * from './name';\nexport * from './nonProductiveActivity';\nexport * from './nonProductiveActivityStatus';\nexport * from './notification';\nexport * from './notificationCreation';\nexport * from './notificationSubscription';\nexport * from './notificationSubscriptionSet';\nexport * from './notificationType';\nexport * from './onHoldReason';\nexport * from './openOrderRequest';\nexport * from './openingDay';\nexport * from './openingDayPeriods';\nexport * from './operation';\nexport * from './operationConsumable';\nexport * from './operationPart';\nexport * from './operationPartLocation';\nexport * from './operationWarranty';\nexport * from './oprConsumable';\nexport * from './orderStatusDto';\nexport * from './orderStatusPrefDto';\nexport * from './orderTypeDto';\nexport * from './orderTypeHeaderCode';\nexport * from './ordersAndSalesByStatus';\nexport * from './otp';\nexport * from './pageNumber';\nexport * from './part';\nexport * from './partAvailability';\nexport * from './partConsumable';\nexport * from './partQuantity';\nexport * from './partReturn';\nexport * from './partsSalesDto';\nexport * from './partsTrackerCsps';\nexport * from './partsTrackerDms';\nexport * from './paymentSubSubType';\nexport * from './paymentSubType';\nexport * from './paymentType';\nexport * from './permission';\nexport * from './priorityType';\nexport * from './productObj';\nexport * from './releaseVersion';\nexport * from './resultDto';\nexport * from './resultMessage';\nexport * from './role';\nexport * from './sapAttachmentValue';\nexport * from './sapDealerMarketCheckResult';\nexport * from './series';\nexport * from './shift';\nexport * from './shiftPeriods';\nexport * from './skill';\nexport * from './split';\nexport * from './standaloneImportFileResponse';\nexport * from './techClockingDto';\nexport * from './technicalType';\nexport * from './technicianPlanningCount';\nexport * from './technicianPlanningFilterDto';\nexport * from './types';\nexport * from './uncaughtException';\nexport * from './userGuide';\nexport * from './utilizationDto';\nexport * from './validationResponse';\nexport * from './vehicle';\nexport * from './vehicleCourtesy';\nexport * from './vehicleCourtesyBooking';\nexport * from './vehicleLegalInspection';\nexport * from './vehiclesDetailsDto';\nexport * from './warrantyClaimData';\nexport * from './warrantyType';\nexport * from './weeklyTrend';\nexport * from './weeklyTrendDto';\nexport * from './weeklyTrendInspectionDto';\nexport * from './wipAppointmentExcelReport';\nexport * from './wipDto';\nexport * from './workOrderExcelReport';\nexport * from './workshop';\nexport * from './workshopBay';\nexport * from './workshopChecklistType';\nexport * from './workshopDiscount';\nexport * from './workshopEnabled';\nexport * from './workshopFigures';\nexport * from './workshopSale';\nexport * from './workshopSalesDto';\nexport * from './workshopUser';\nexport * from './workshopUserTravelPosition';\nexport * from './workshopUserUnavailability';\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { MpInformationDelta } from './mpInformationDelta';\n\n\n/**\n * MP Information linked to jobcard Item\n */\nexport interface MpInformation { \n planId?: number;\n description?: string;\n couponOver?: boolean;\n couponSoon?: boolean;\n couponSelected?: boolean;\n couponStatus?: string;\n couponModifiable?: boolean;\n couponSavable?: boolean;\n couponIntervalComment?: string;\n overdueValues?: Array;\n soonValues?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * MP Delta information for overdue or close activities\n */\nexport interface MpInformationDelta { \n unit?: string;\n value?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Traducted name object\n */\nexport interface Name { \n id?: number;\n idLanguage?: string;\n name?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NonProductiveActivity { \n /**\n * Non Productive Activity ID.\n */\n id?: number;\n dmsCode?: string;\n description?: string;\n activityName?: string;\n workshopId?: number;\n isVisible?: boolean;\n isDefault?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NonProductiveActivity } from './nonProductiveActivity';\n\n\nexport interface NonProductiveActivityStatus { \n id?: number;\n workshopUserId?: string;\n nonProductiveActivity?: NonProductiveActivity;\n startTime?: string;\n endTime?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { NotificationType } from './notificationType';\n\n\nexport interface Notification { \n id: number;\n sender?: WorkshopUser;\n receiver?: WorkshopUser;\n type?: NotificationType;\n /**\n * Id of appointment\n */\n appointment?: number;\n /**\n * Date of notification\n */\n sentDate?: string;\n /**\n * Viewing date of the notification\n */\n viewDate?: string;\n /**\n * Title of notification\n */\n title?: string;\n /**\n * Description of notification\n */\n body?: string;\n deviceToken?: string;\n /**\n * (For WARRANTY_ACTIVITIES_DONE) List of IDs of done warranty activities, separated by commas\n */\n doneActivities?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NotificationType } from './notificationType';\n\n\nexport interface NotificationCreation { \n type: NotificationType;\n /**\n * Concerned appointment ID\n */\n appointmentId: number;\n /**\n * Required for CUSTOMER_APPROVED. Number of customer approved activities\n */\n nbApproved?: number;\n /**\n * Required for CUSTOMER_APPROVED. Number of customer declined activities\n */\n nbDeclined?: number;\n /**\n * Required for SENT_BACK. Body of the future notification\n */\n body?: string;\n /**\n * Required for SENT_BACK. Notification title of the future notification\n */\n notificationTitle?: string;\n /**\n * Required for WARRANTY_ACTIVITIES_DONE. List of Done warranty activities IDs\n */\n doneActivities?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NotificationType } from './notificationType';\n\n\nexport interface NotificationSubscription { \n /**\n * Subscription ID\n */\n id?: number;\n /**\n * Workshop user ID\n */\n workshopUserId?: string;\n /**\n * Workshop ID\n */\n workshopId?: number;\n notificationType?: NotificationType;\n /**\n * Way of sending notifications (webapp, mail or both)\n */\n sendingWay?: NotificationSubscription.SendingWayEnum;\n /**\n * Minimum number of days for sending warranty notifications\n */\n dayNumberLimit?: number;\n}\nexport namespace NotificationSubscription {\n export type SendingWayEnum = 'notification' | 'email' | 'all';\n export const SendingWayEnum = {\n Notification: 'notification' as SendingWayEnum,\n Email: 'email' as SendingWayEnum,\n All: 'all' as SendingWayEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { NotificationSubscription } from './notificationSubscription';\n\n\nexport interface NotificationSubscriptionSet { \n workshopUserDto?: WorkshopUser;\n subscriptions?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Type of notification\n */\nexport type NotificationType = 'ASSIGN_ACTIVITY' | 'CONFIRM_ACTIVITY' | 'FOLLOW_ACTIVITY' | 'SENT_BACK' | 'WARRANTY_VALIDITY' | 'BREAKDOWN' | 'JOBCARD_CREATED' | 'CHECKED_IN' | 'JOBCARD_DRAFT' | 'CUSTOMER_APPROVED' | 'ACTIVITY_APPROVED' | 'JOBCARD_VALIDATED' | 'WARRANTY_JOB_VALIDATED' | 'INVOICE_PAID' | 'WARRANTY_ACTIVITIES_DONE' | 'WARRANTY_NEAR_DEADLINE' | 'MACHINE_USAGE_UPDATED' | 'EPARTS_BASKET' | 'CLOCKING_SUMMARY' | 'PARTS' | 'ETIM_BASKET' | 'ACTIVITY_COMPLETED';\n\nexport const NotificationType = {\n ASSIGNACTIVITY: 'ASSIGN_ACTIVITY' as NotificationType,\n CONFIRMACTIVITY: 'CONFIRM_ACTIVITY' as NotificationType,\n FOLLOWACTIVITY: 'FOLLOW_ACTIVITY' as NotificationType,\n SENTBACK: 'SENT_BACK' as NotificationType,\n WARRANTYVALIDITY: 'WARRANTY_VALIDITY' as NotificationType,\n BREAKDOWN: 'BREAKDOWN' as NotificationType,\n JOBCARDCREATED: 'JOBCARD_CREATED' as NotificationType,\n CHECKEDIN: 'CHECKED_IN' as NotificationType,\n JOBCARDDRAFT: 'JOBCARD_DRAFT' as NotificationType,\n CUSTOMERAPPROVED: 'CUSTOMER_APPROVED' as NotificationType,\n ACTIVITYAPPROVED: 'ACTIVITY_APPROVED' as NotificationType,\n JOBCARDVALIDATED: 'JOBCARD_VALIDATED' as NotificationType,\n WARRANTYJOBVALIDATED: 'WARRANTY_JOB_VALIDATED' as NotificationType,\n INVOICEPAID: 'INVOICE_PAID' as NotificationType,\n WARRANTYACTIVITIESDONE: 'WARRANTY_ACTIVITIES_DONE' as NotificationType,\n WARRANTYNEARDEADLINE: 'WARRANTY_NEAR_DEADLINE' as NotificationType,\n MACHINEUSAGEUPDATED: 'MACHINE_USAGE_UPDATED' as NotificationType,\n EPARTSBASKET: 'EPARTS_BASKET' as NotificationType,\n CLOCKINGSUMMARY: 'CLOCKING_SUMMARY' as NotificationType,\n PARTS: 'PARTS' as NotificationType,\n ETIMBASKET: 'ETIM_BASKET' as NotificationType,\n ACTIVITYCOMPLETED: 'ACTIVITY_COMPLETED' as NotificationType\n};\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OnHoldReason { \n /**\n * onhold ID.\n */\n id?: number;\n description?: string;\n workshopId?: number;\n isVisible?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PartQuantity } from './partQuantity';\n\n\n/**\n * Request send to create a csps part(s) simulation (open order)\n */\nexport interface OpenOrderRequest { \n userId?: string;\n /**\n * (id) number of the open order\n */\n orderNumber?: number;\n /**\n * code of the open order\n */\n customerOrderCode?: string;\n /**\n * delivery address of the open order\n */\n retailCode?: number;\n /**\n * delivery address description of the open order\n */\n deliveryAddressDescription?: string;\n /**\n * order type of the open order\n */\n orderType?: number;\n /**\n * order type of the open order description\n */\n orderTypeDescription?: string;\n /**\n * contract code of the open order\n */\n contractCode?: number;\n /**\n * list of parts (code/quantity) to be send to csps\n */\n parts?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OpeningDayPeriods } from './openingDayPeriods';\n\n\nexport interface OpeningDay { \n id?: number;\n weekday?: OpeningDay.WeekdayEnum;\n periods?: Array;\n}\nexport namespace OpeningDay {\n export type WeekdayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const WeekdayEnum = {\n Monday: 'monday' as WeekdayEnum,\n Tuesday: 'tuesday' as WeekdayEnum,\n Wednesday: 'wednesday' as WeekdayEnum,\n Thursday: 'thursday' as WeekdayEnum,\n Friday: 'friday' as WeekdayEnum,\n Saturday: 'saturday' as WeekdayEnum,\n Sunday: 'sunday' as WeekdayEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OpeningDayPeriods { \n id?: number;\n /**\n * Only the hours and minutes are used\n */\n start?: string;\n /**\n * Only the hours and minutes are used\n */\n end?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OperationPart } from './operationPart';\nimport { Kit } from './kit';\nimport { OperationConsumable } from './operationConsumable';\n\n\n/**\n * Technical operation details.\n */\nexport interface Operation { \n /**\n * Operation ID.\n */\n id?: number;\n /**\n * Operation code.\n */\n code?: string;\n /**\n * Operation label.\n */\n label: string;\n /**\n * Operation official time estimation.\n */\n officialTime?: number;\n /**\n * Operation custom time estimation.\n */\n durationTime?: number;\n /**\n * Operation weight used to order the operations.\n */\n weight?: number;\n /**\n * Part manufacturer.\n */\n manufacturer?: string;\n /**\n * Operation required parts.\n */\n parts?: Array;\n /**\n * Operation required consumables.\n */\n consumables?: Array;\n /**\n * Operation required part kits.\n */\n kits?: Array;\n price?: number;\n compulsory?: boolean;\n selected?: boolean;\n /**\n * Check if kit part usable instead of part\n */\n isKitComplete?: boolean;\n /**\n * Use kit instead of part\n */\n useKitPart?: boolean;\n isPartAvailable?: boolean;\n /**\n * Is SRT or not\n */\n srt?: boolean;\n /**\n * type.\n */\n type?: string;\n /**\n * Is default or not\n */\n isDefault?: boolean;\n version?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { OprConsumable } from './oprConsumable';\nimport { FictitiousMaterial } from './fictitiousMaterial';\n\n\n/**\n * Operation part need.\n */\nexport interface OperationConsumable { \n /**\n * Operation part association ID.\n */\n id?: number;\n consumable?: OprConsumable;\n /**\n * Parent operation ID.\n */\n operationId?: number;\n /**\n * Part needed quantity.\n */\n quantity?: number;\n selected?: boolean;\n /**\n * Consumable code.\n */\n code?: string;\n ewarrantyCode?: FictitiousMaterial;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { FictitiousMaterial } from './fictitiousMaterial';\nimport { Part } from './part';\nimport { OperationPartLocation } from './operationPartLocation';\n\n\n/**\n * Operation part need.\n */\nexport interface OperationPart {\n /**\n * Operation part association ID.\n */\n id?: number;\n part?: Part;\n compulsory?: boolean;\n /**\n * Parent operation ID.\n */\n operationId?: number;\n /**\n * Part needed quantity.\n */\n quantity?: number;\n /**\n * Part needed quantity.\n */\n quantityInStock?: number;\n /**\n * Part needed quantity.\n */\n quantityOnOrder?: number;\n /**\n * Part needed quantity.\n */\n quantityInTransit?: number;\n /**\n * Check if part needs to be returned or not.\n */\n toBeReturned?: boolean;\n maxQuantity?: number;\n price?: number;\n cost?: number;\n selected?: boolean;\n isHomeLocation?: boolean;\n /**\n * Operation required part location.\n */\n jobcardItemOperationPartLocationList?: Array;\n isAvailableAtHomeLocation?: boolean;\n isAvailableAtOtherLocation?: boolean;\n isNotAvailable?: boolean;\n pickupDate?: string;\n ewarrantyCode?: FictitiousMaterial;\n scannedWithMobile?: boolean;\n version?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Operation part location need.\n */\nexport interface OperationPartLocation {\n /**\n * Operation part association ID.\n */\n id?: number;\n /**\n * Operation part Location ID.\n */\n locationId?: string;\n /**\n * Parent operation ID.\n */\n partId?: number;\n /**\n * Part needed quantity.\n */\n quantityInStock?: number;\n /**\n * Part needed quantity.\n */\n quantityOnOrder?: number;\n /**\n * Part needed quantity.\n */\n quantityInTransit?: number;\n siteName?: string;\n locationName?: string;\n version?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Warranty of an operation\n */\nexport interface OperationWarranty { \n operationCode?: string;\n failureCode?: string;\n selectedWarrantyType?: string;\n warrantyTypes?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Operation consumable.\n */\nexport interface OprConsumable { \n /**\n * Consumable ID.\n */\n id: number;\n /**\n * Consumable code.\n */\n code: string;\n /**\n * Consumable part Number.\n */\n partNumber?: string;\n /**\n * Consumable needed quantity.\n */\n quantity?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { LinesExcelReport } from './linesExcelReport';\nimport { AverageJobcardDto } from './averageJobcardDto';\nimport { OrdersAndSalesByStatus } from './ordersAndSalesByStatus';\nimport { WorkOrderExcelReport } from './workOrderExcelReport';\n\n\nexport interface OrderStatusDto { \n workOrder?: number;\n quote?: number;\n nonInvoiced?: number;\n averageFailureDays?: number;\n averageArrivalDays?: number;\n averageRepairDays?: number;\n averageDeliveryDays?: number;\n averageDaysToInvoice?: number;\n srtUsageWarrantyPer?: number;\n srtUsageOtherPer?: number;\n averageJobcardDto?: AverageJobcardDto;\n ordersAndSalesByStatus?: Array;\n workOrderExcelReport?: Array;\n linesExcelReport?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WeeklyTrendDto } from './weeklyTrendDto';\nimport { WorkshopSalesDto } from './workshopSalesDto';\nimport { PartsSalesDto } from './partsSalesDto';\n\n\nexport interface OrderStatusPrefDto { \n retailSales?: number;\n warrantySales?: number;\n otherSales?: number;\n totalClockedHours?: number;\n totalOfficialHours?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n partsPrice?: number;\n servicePrice?: number;\n weeklyTrendsDto?: Array;\n partsSalesDto?: PartsSalesDto;\n workshopSalesDto?: WorkshopSalesDto;\n noOfInspections?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS OrderType.\n */\nexport interface OrderTypeDto { \n key?: string;\n /**\n * Value.\n */\n value?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OrderTypeHeaderCode { \n /**\n * OrderTypeHeaderCodeId.\n */\n id?: number;\n code?: string;\n workshopId?: number;\n description?: string;\n isDefault?: boolean;\n visible?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface OrdersAndSalesByStatus { \n status?: string;\n totalWorkOrders?: number;\n salesByRetail?: number;\n salesByWarranty?: number;\n salesByOthers?: number;\n salesByParts?: number;\n salesByService?: number;\n totalSales?: number;\n totalPartsSales?: number;\n totalWorkshopSales?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Otp { \n otp?: number;\n randomId?: string;\n phoneNumber?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Number of Pages to call for the DMS.\n */\nexport interface PageNumber { \n pageNumber?: number;\n limit?: number;\n type?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { KitPart } from './kitPart';\nimport { PartAvailability } from './partAvailability';\n\n\n/**\n * Vehicle part.\n */\nexport interface Part { \n /**\n * Part ID.\n */\n id: number;\n /**\n * Part serial number.\n */\n code?: string;\n /**\n * Part description.\n */\n description?: string;\n /**\n * Part manufacturer.\n */\n manufacturer?: string;\n /**\n * Proprietary workshop ID.\n */\n workshopId?: number;\n isKit?: boolean;\n kitPart?: Array;\n /**\n * quantityInStock.\n */\n quantityInStock?: number;\n /**\n * quantityOnOrder.\n */\n quantityOnOrder?: number;\n /**\n * quantityInTransit.\n */\n quantityInTransit?: number;\n quantity?: number;\n partSuperseedingId?: number;\n cspsPartDetails?: Array;\n /**\n * total Available CSPS quantity\n */\n totalAvailableCspsQty?: number;\n /**\n * Home location for parts\n */\n isHomeLocation?: boolean;\n isValidPart?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * CSPS part availability.\n */\nexport interface PartAvailability { \n partCode?: string;\n /**\n * Part code.\n */\n localCode?: string;\n /**\n * Part name.\n */\n localName?: string;\n /**\n * localAvailable_qty.\n */\n localAvailable_qty?: number;\n /**\n * localReserved_qty.\n */\n localReserved_qty?: number;\n /**\n * localAssigned_qty.\n */\n localAssigned_qty?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartConsumable { \n id: number;\n code?: string;\n description?: string;\n manufacturer?: string;\n price?: number;\n type?: string;\n isActive?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Part Quantity\n */\nexport interface PartQuantity { \n /**\n * id of the part to be ordered\n */\n partBacklogId?: number;\n /**\n * Code of the part to send\n */\n partCode?: string;\n /**\n * Quantity of the part needed\n */\n quantity?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Vehicle part returned.\n */\nexport interface PartReturn { \n /**\n * Part Number.\n */\n partNumber?: string;\n /**\n * Quantity.\n */\n quantity?: number;\n /**\n * Count Quantity that has been already returned.\n */\n counterQuantity?: number;\n /**\n * Warranty Start date.\n */\n startDate?: string;\n /**\n * Warranty End date.\n */\n endDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsSalesDto { \n retailSales?: number;\n retailMargin?: number;\n warrantySales?: number;\n warrantyMargin?: number;\n otherSales?: number;\n otherMargin?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerCsps { \n id?: number;\n workshopId?: number;\n partId?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PartsTrackerDms { \n id?: number;\n workshopId?: number;\n partId?: number;\n nonAvailability?: number;\n logDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Payment Sub Types 2 & 3.\n */\nexport interface PaymentSubSubType { \n /**\n * Payment Sub Type ID.\n */\n id?: number;\n code?: string;\n description?: string;\n subLevel?: number;\n categoryType?: string;\n isVisible?: boolean;\n weight?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubSubType } from './paymentSubSubType';\n\n\n/**\n * Payment Sub Types.\n */\nexport interface PaymentSubType { \n /**\n * Payment Sub Type ID.\n */\n id?: number;\n code?: string;\n type?: string;\n categoryType?: string;\n description?: string;\n isVisible?: boolean;\n weight?: number;\n paymentSubSubTypes?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaymentSubType } from './paymentSubType';\n\n\n/**\n * Payment Types.\n */\nexport interface PaymentType { \n /**\n * Payment Type ID.\n */\n id?: number;\n code?: string;\n type?: PaymentType.TypeEnum;\n name?: string;\n isVisible?: boolean;\n paymentSubTypes?: Array;\n weight?: number;\n}\nexport namespace PaymentType {\n export type TypeEnum = 'retail' | 'warranty' | 'internal' | 'otherWarranty';\n export const TypeEnum = {\n Retail: 'retail' as TypeEnum,\n Warranty: 'warranty' as TypeEnum,\n Internal: 'internal' as TypeEnum,\n OtherWarranty: 'otherWarranty' as TypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type Permission = 'admin' | 'cancelAppointment' | 'pricing' | 'createAppointment' | 'nonProductive' | 'kpis' | 'newKpis' | 'activity' | 'onHold' | 'syncVehicles' | 'appointmentInUse' | 'country' | 'myBest' | 'dmsCommunication' | 'reports' | 'inspectionDates' | 'syncShifts' | 'eParts' | 'iuLinking' | 'syncParts' | 'showFeedback' | 'offHold' | 'workspaceTimeView' | 'smartViewAccessByDealer' | 'canAddPartsOnMobile' | 'removeNegotiationEmail' | 'blockCreationForBlockedCustomer' | 'disableEditClocking' | 'noMachineAppointment' | 'noReordering' | 'proactive' | 'clockingSummaryForAG' | 'displayMaintenanceChecklist' | 'workspaceRemoveSpell' | 'clockingErrors';\n\nexport const Permission = {\n Admin: 'admin' as Permission,\n CancelAppointment: 'cancelAppointment' as Permission,\n Pricing: 'pricing' as Permission,\n CreateAppointment: 'createAppointment' as Permission,\n NonProductive: 'nonProductive' as Permission,\n Kpis: 'kpis' as Permission,\n NewKpis: 'newKpis' as Permission,\n Activity: 'activity' as Permission,\n OnHold: 'onHold' as Permission,\n SyncVehicles: 'syncVehicles' as Permission,\n AppointmentInUse: 'appointmentInUse' as Permission,\n Country: 'country' as Permission,\n MyBest: 'myBest' as Permission,\n DmsCommunication: 'dmsCommunication' as Permission,\n Reports: 'reports' as Permission,\n InspectionDates: 'inspectionDates' as Permission,\n SyncShifts: 'syncShifts' as Permission,\n EParts: 'eParts' as Permission,\n IuLinking: 'iuLinking' as Permission,\n SyncParts: 'syncParts' as Permission,\n ShowFeedback: 'showFeedback' as Permission,\n OffHold: 'offHold' as Permission,\n WorkspaceTimeView: 'workspaceTimeView' as Permission,\n SmartViewAccessByDealer: 'smartViewAccessByDealer' as Permission,\n CanAddPartsOnMobile: 'canAddPartsOnMobile' as Permission,\n RemoveNegotiationEmail: 'removeNegotiationEmail' as Permission,\n BlockCreationForBlockedCustomer: 'blockCreationForBlockedCustomer' as Permission,\n DisableEditClocking: 'disableEditClocking' as Permission,\n NoMachineAppointment: 'noMachineAppointment' as Permission,\n NoReordering: 'noReordering' as Permission,\n Proactive: 'proactive' as Permission,\n ClockingSummaryForAG: 'clockingSummaryForAG' as Permission,\n DisplayMaintenanceChecklist: 'displayMaintenanceChecklist' as Permission,\n WorkspaceRemoveSpell: 'workspaceRemoveSpell' as Permission,\n ClockingErrors: 'clockingErrors' as Permission\n};\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * priority Types.\n */\nexport interface PriorityType { \n /**\n * Payment Type ID.\n */\n id?: number;\n description?: string;\n icon?: string;\n value?: string;\n status?: PriorityType.StatusEnum;\n type?: string;\n defaultPriority?: boolean;\n}\nexport namespace PriorityType {\n export type StatusEnum = 'High' | 'Medium' | 'Low' | 'NoPriority';\n export const StatusEnum = {\n High: 'High' as StatusEnum,\n Medium: 'Medium' as StatusEnum,\n Low: 'Low' as StatusEnum,\n NoPriority: 'NoPriority' as StatusEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Series } from './series';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' product.\n */\nexport interface ProductObj { \n /**\n * Type ID.\n */\n id: number;\n /**\n * type name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n seriesList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ReleaseVersion { \n environment?: string;\n business?: string;\n version?: string;\n releaseDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Generic object used to return simple string value like Workshop Dealer Claim Number for example.\n */\nexport interface ResultDto { \n res?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ResultMessage { \n /**\n * Result message identification code\n */\n code?: string;\n /**\n * Result message content\n */\n message?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Role { \n id: number;\n name?: string;\n roleAbbrev?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SapAttachmentValue { \n id?: number;\n technicalType?: string;\n company?: string;\n brand?: string;\n division?: string;\n salesDistrict?: string;\n serialNumber?: string;\n warrantyType?: string;\n failureCode?: string;\n breakCode?: string;\n itemType?: string;\n materialNumber?: string;\n partNumber?: string;\n recordType?: string;\n counter?: number;\n amountClaimed?: number;\n ruleId?: string;\n documentType?: string;\n dateType?: string;\n numberOfDays?: number;\n materialStatus?: string;\n creationDate?: string;\n createdBy?: string;\n changeDate?: string;\n changedBy?: string;\n dealerCode?: string;\n sapProvider?: string;\n totalClaimAmount?: number;\n attachmentNeeded?: boolean;\n noAttachmentNeeded?: boolean;\n noAttachmentPresent?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SapDealerMarketCheckResult { \n /**\n * Current appointment ID for retrieving the dealer\\'s master data\n */\n appointmentId?: number;\n europeanDealerCheckResult?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Brand } from './brand';\nimport { Model } from './model';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' series.\n */\nexport interface Series { \n /**\n * Series ID.\n */\n id: number;\n /**\n * Series name.\n */\n name?: string;\n /**\n * type name id.\n */\n idName?: number;\n iceCode?: string;\n nameObj?: Name;\n /**\n * Model list for the tree product\n */\n modelList?: Array;\n models?: Array;\n brand?: Brand;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ShiftPeriods } from './shiftPeriods';\n\n\n/**\n * Shift of the workspace\n */\nexport interface Shift { \n id?: number;\n userShiftId?: number;\n description?: string;\n dmsId?: string;\n type?: Shift.TypeEnum;\n startDate?: string;\n endDate?: string;\n periods?: Array;\n recurrence?: Array;\n}\nexport namespace Shift {\n export type TypeEnum = 'productive' | 'unproductive';\n export const TypeEnum = {\n Productive: 'productive' as TypeEnum,\n Unproductive: 'unproductive' as TypeEnum\n };\n export type RecurrenceEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const RecurrenceEnum = {\n Monday: 'monday' as RecurrenceEnum,\n Tuesday: 'tuesday' as RecurrenceEnum,\n Wednesday: 'wednesday' as RecurrenceEnum,\n Thursday: 'thursday' as RecurrenceEnum,\n Friday: 'friday' as RecurrenceEnum,\n Saturday: 'saturday' as RecurrenceEnum,\n Sunday: 'sunday' as RecurrenceEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ShiftPeriods { \n id?: number;\n startTime?: string;\n endTime?: string;\n day?: ShiftPeriods.DayEnum;\n}\nexport namespace ShiftPeriods {\n export type DayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const DayEnum = {\n Monday: 'monday' as DayEnum,\n Tuesday: 'tuesday' as DayEnum,\n Wednesday: 'wednesday' as DayEnum,\n Thursday: 'thursday' as DayEnum,\n Friday: 'friday' as DayEnum,\n Saturday: 'saturday' as DayEnum,\n Sunday: 'sunday' as DayEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Skill of a user\n */\nexport interface Skill { \n id?: number;\n description?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Division of total price\n */\nexport interface Split { \n id?: number;\n customerPercent?: number;\n warrantyPercent?: number;\n internalPercent?: number;\n typeCode?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface StandaloneImportFileResponse { \n responseCode?: string;\n responseDescription?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TechClockingDto { \n booking?: number;\n customer?: string;\n activitytype?: string;\n activities?: string;\n activitystatus?: string;\n technicianname?: string;\n plannedtime?: string;\n spellStartTime?: string;\n spellEndTime?: string;\n clockingStartTime?: string;\n clockingEndTime?: string;\n clockedtime?: string;\n operation?: string;\n startDate?: string;\n vin?: string;\n isBreakdownAppt?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Vehicles\\' Tech Type.\n */\nexport interface TechnicalType { \n /**\n * TT ID.\n */\n id: number;\n /**\n * TT name.\n */\n name?: string;\n /**\n * TT name id.\n */\n idName?: number;\n iceCode?: string;\n code?: string;\n label?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TechnicianPlanningCount { \n draftAptsCount?: number;\n scheduleAptsCount?: number;\n preparedAptsCount?: number;\n receivedAptsCount?: number;\n repairingAptsCount?: number;\n serviceAdvisorValidPendingAptsCount?: number;\n clientValidPendingAptsCount?: number;\n jobcardValidPendingAptsCount?: number;\n sentBackAptsCount?: number;\n workfileValidatedAptsCount?: number;\n vehicleDeliveredAptsCount?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TechnicianPlanningFilterDto { \n priority?: string;\n searchFilter?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ProductObj } from './productObj';\nimport { Name } from './name';\n\n\n/**\n * Vehicles\\' Type.\n */\nexport interface Types { \n /**\n * Type ID.\n */\n id: number;\n /**\n * type name.\n */\n name?: string;\n iceCode?: string;\n /**\n * type name id.\n */\n idName?: number;\n nameObj?: Name;\n productList?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Uncaught Exceptions.\n */\nexport interface UncaughtException { \n id?: number;\n workshopId?: number;\n userId?: string;\n logDate?: string;\n path?: string;\n cause?: string;\n stackTrace?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Number of Pages to call for the DMS.\n */\nexport interface UserGuide { \n imageUrl?: string;\n title?: string;\n description?: string;\n categorie?: string;\n markdownUrl?: string;\n updatedDate?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UtilizationDto { \n utilization?: number;\n productivity?: number;\n nonProductivity?: number;\n efficiency?: number;\n hrsSold?: number;\n productiveHrsActual?: number;\n productiveHrsPlanned?: number;\n hrsAvailable?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ValidationResponse { \n isValidated?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Brand } from './brand';\nimport { Series } from './series';\nimport { Model } from './model';\nimport { CustomerCompanyUser } from './customerCompanyUser';\n\n\nexport interface Vehicle { \n id: number;\n isDuplicate?: boolean;\n isActive?: boolean;\n customerCompanyId?: number;\n customerCompanyName?: string;\n customerCompanyDisplayedName?: string;\n customerCompanyDmsId?: string;\n vin?: string;\n serialNumber?: string;\n brand?: Brand;\n series?: Series;\n model?: Model;\n plate?: string;\n bm?: string;\n vcb?: string;\n vp?: string;\n warrantyStartDate?: string;\n vehicleNote?: string;\n annualInspectionDate?: string;\n tachometerDate?: string;\n dmsId?: string;\n workshopId?: number;\n customerCompanyUser?: CustomerCompanyUser;\n invoiceDate?: string;\n appointments?: Array;\n stockNumber?: string;\n latestUpdatedGeoStoreTime?: string;\n latitude?: number;\n longitude?: number;\n lastKnownEngineHours?: number;\n lastKnownMileage?: number;\n lastKnownBales?: number;\n lastKnownAcres?: number;\n lastKnownThreshingHours?: number;\n epartsBrandName?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Brand } from './brand';\nimport { Series } from './series';\nimport { Model } from './model';\nimport { Workshop } from './workshop';\n\n\nexport interface VehicleCourtesy { \n id: number;\n vin?: string;\n brand?: Brand;\n series?: Series;\n model?: Model;\n plate?: string;\n mileage?: number;\n status?: string;\n dmsId?: string;\n workshop?: Workshop;\n vehicleNote?: string;\n appointments?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Appointment } from './appointment';\nimport { Vehicle } from './vehicle';\n\n\n/**\n * Fields for Booking Courtesy Vehicle .\n */\nexport interface VehicleCourtesyBooking { \n /**\n * Id.\n */\n id: number;\n /**\n * Departure Date.\n */\n startDate?: string;\n /**\n * Reception Date\n */\n endDate?: string;\n /**\n * Reason for Booking.\n */\n reason?: string;\n vehicleCourtesy?: Vehicle;\n appointment?: Appointment;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehicleLegalInspection { \n id?: number;\n label?: string;\n code?: string;\n date?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface VehiclesDetailsDto { \n plate?: string;\n vin?: string;\n brand?: string;\n model?: string;\n partsSales?: number;\n partsMargin?: number;\n workshopSales?: number;\n workshopMargin?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Claim details for an activity.\n */\nexport interface WarrantyClaimData { \n id?: number;\n claimStatus?: string;\n claimNumber?: string;\n claimDate?: string;\n invoiceNumber?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Warranty Type Object\n */\nexport interface WarrantyType { \n id?: number;\n warranty?: string;\n language?: string;\n description?: string;\n region?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WeeklyTrend { \n date?: string;\n wipClockedHrs?: number;\n wipLab?: number;\n wipParts?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WeeklyTrendDto { \n date?: string;\n totalHours?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WeeklyTrendInspectionDto { \n date?: string;\n noOfInspection?: number;\n defectsIdentified?: number;\n defectsQuoted?: number;\n itemApproved?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WipAppointmentExcelReport { \n deliveryDate?: string;\n actualReceptionDate?: string;\n lastWorkDate?: string;\n bookingId?: number;\n dmsOrderNumber?: number | string;\n customerName?: string;\n vehicle?: string;\n model?: string;\n serviceAdvisor?: string;\n allowedTime?: number;\n clockedTime?: number;\n workshopSales?: number;\n partSales?: number;\n workDays?: number;\n status?: string;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WeeklyTrend } from './weeklyTrend';\nimport { WipAppointmentExcelReport } from './wipAppointmentExcelReport';\n\n\nexport interface WipDto { \n totalWorkOrders?: number;\n totalArrived?: number;\n totalRepairing?: number;\n totalValidationPending?: number;\n totalValidated?: number;\n totalDelivered?: number;\n avgDays?: number;\n avgOfThreeDays?: number;\n totalClockedHrs?: number;\n totalWorkshopSales?: number;\n totalPartsSales?: number;\n weeklyTrends?: Array;\n appointments?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkOrderExcelReport { \n bookingId?: number;\n appointmentStatus?: string;\n documentStatus?: string;\n failureDate?: string;\n plannedArrivalDate?: string;\n actualArrivalDate?: string;\n repairStartTime?: string;\n repairEndTime?: string;\n plannedDeliveryDate?: string;\n actualDeliveryDate?: string;\n lastWorkingDate?: string;\n invoiceDate?: string;\n negotiationMailCount?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopSale } from './workshopSale';\nimport { OpeningDay } from './openingDay';\n\n\n/**\n * Data for workshop.\n */\nexport interface Workshop { \n id: number;\n name: string;\n address?: string;\n city?: string;\n country?: string;\n phone?: string;\n email?: string;\n sapCode?: string;\n workshopSalesOrganizations?: Array;\n logoUrl?: string;\n dmsUrl?: string;\n dmsAuthenticationId?: string;\n isImportStaffFromDms?: boolean;\n isTrWorkflow?: boolean;\n dmsAuthenticationPassword?: string;\n openingDays?: Array;\n /**\n * Currency code following ISO 4217\n */\n currencyCode?: string;\n countryId?: number;\n marketId?: number;\n isDmsMaster?: boolean;\n enableSafetyChecklist?: boolean;\n cspsUserId?: string;\n locatedInGB?: boolean;\n enabled?: boolean;\n enableCsps?: boolean;\n allowedTimePreferred?: string;\n checkInMandatorySign?: boolean;\n completionMandatorySign?: boolean;\n labourCost?: number;\n dmsErrorCount?: number;\n operationId?: number;\n standAloneMode?: boolean;\n dmsClockingBehavior?: Workshop.DmsClockingBehaviorEnum;\n dmsProvider?: string;\n addressDMSLimit?: number;\n eWarrantyFieldsMandatory?: boolean;\n enableForceClockStop?: boolean;\n forceClockStopEndTime?: string;\n selected?: boolean;\n}\nexport namespace Workshop {\n export type DmsClockingBehaviorEnum = 'REPLACE' | 'UPDATE' | 'IGNORE';\n export const DmsClockingBehaviorEnum = {\n REPLACE: 'REPLACE' as DmsClockingBehaviorEnum,\n UPDATE: 'UPDATE' as DmsClockingBehaviorEnum,\n IGNORE: 'IGNORE' as DmsClockingBehaviorEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\n\n\nexport interface WorkshopBay { \n id?: number;\n name?: string;\n type?: string;\n workshopId?: number;\n weight?: number;\n isActive?: boolean;\n leadTechnician?: string;\n bayCode?: string;\n maximumUtilisation?: number;\n technicians?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopChecklistType { \n id?: number;\n checklistType?: string;\n workshopId?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { WorkshopUser } from './workshopUser';\nimport { Workshop } from './workshop';\n\n\n/**\n * Workshop discount\n */\nexport interface WorkshopDiscount { \n id?: number;\n dmsCode?: string;\n name?: string;\n percentage?: number;\n additionalInformation?: string;\n discountType?: string;\n workshop?: Workshop;\n workshopUsers?: Array;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Workshop enabled information.\n */\nexport interface WorkshopEnabled { \n workshopId?: number;\n workshopSapCode?: string;\n workshopEnabled?: boolean;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopFigures { \n nbCustomers?: number;\n nbVehicles?: number;\n nbParts?: number;\n nbOperations?: number;\n nbOtherItems?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Workshop with Sales organizations\n */\nexport interface WorkshopSale {\n id?: number;\n brand?: string;\n division?: string;\n salesCode?: string;\n version?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopSalesDto { \n retailSales?: number;\n retailMargin?: number;\n warrantySales?: number;\n warrantyMargin?: number;\n otherSales?: number;\n otherMargin?: number;\n}\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Role } from './role';\nimport { Shift } from './shift';\nimport { Skill } from './skill';\nimport { Workshop } from './workshop';\nimport { WorkshopUserUnavailability } from './workshopUserUnavailability';\nimport { WorkshopBay } from './workshopBay';\n\n\nexport interface WorkshopUser { \n id: string;\n views?: WorkshopUser.ViewsEnum;\n isActivityApproval?: WorkshopUser.IsActivityApprovalEnum;\n dmsUserId?: string;\n firstName?: string;\n lastName?: string;\n language?: string;\n workshopId?: number;\n workshopSalesOrganizationId?: number;\n isActive?: boolean;\n isAdmin?: boolean;\n isManualJobStatusOverride?: boolean;\n role?: Role;\n workshopBay?: WorkshopBay;\n workshopBays?: Array;\n unavailabilities?: Array;\n isTechnicianView?: boolean;\n isAssociateUser?: boolean;\n deviceToken?: string;\n appVersion?: string;\n canEditJobcard?: boolean;\n displayedName?: string;\n skills?: Array;\n efficiencyStart?: string;\n efficiencyLevel?: number;\n weeklyHours?: number;\n monthlyHours?: number;\n shifts?: Array;\n canSeePrice?: boolean;\n isAutomaticApproval?: WorkshopUser.IsAutomaticApprovalEnum;\n leadWorkshopBayId?: number;\n url?: string;\n costRate?: number;\n email?: string;\n canSelfAssign?: boolean;\n isDisplayingOccupancy?: boolean;\n clockingLogDate?: string;\n workshopList?: Array;\n}\nexport namespace WorkshopUser {\n export type ViewsEnum = 'workshopAgendaView' | 'technicianAgendaView' | 'courtesyVehicleAgendaView' | 'workshopPlanningView' | 'workshopUtilisationView' | 'technicianPlanningView' | 'courtesyVehiclePlanningView';\n export const ViewsEnum = {\n WorkshopAgendaView: 'workshopAgendaView' as ViewsEnum,\n TechnicianAgendaView: 'technicianAgendaView' as ViewsEnum,\n CourtesyVehicleAgendaView: 'courtesyVehicleAgendaView' as ViewsEnum,\n WorkshopPlanningView: 'workshopPlanningView' as ViewsEnum,\n WorkshopUtilisationView: 'workshopUtilisationView' as ViewsEnum,\n TechnicianPlanningView: 'technicianPlanningView' as ViewsEnum,\n CourtesyVehiclePlanningView: 'courtesyVehiclePlanningView' as ViewsEnum\n };\n export type IsActivityApprovalEnum = 'yesToDoStatus' | 'yesNewStatusOnly' | 'outOfHoursNewStatus' | 'outOfHoursNo' | 'nope';\n export const IsActivityApprovalEnum = {\n YesToDoStatus: 'yesToDoStatus' as IsActivityApprovalEnum,\n YesNewStatusOnly: 'yesNewStatusOnly' as IsActivityApprovalEnum,\n OutOfHoursNewStatus: 'outOfHoursNewStatus' as IsActivityApprovalEnum,\n OutOfHoursNo: 'outOfHoursNo' as IsActivityApprovalEnum,\n Nope: 'nope' as IsActivityApprovalEnum\n };\n export type IsAutomaticApprovalEnum = 'yesImmediateAccess' | 'yesDraftOnly' | 'outOfHoursDraftOnly' | 'outOfHoursNo' | 'yesAnytime' | 'yesOffline' | 'nope';\n export const IsAutomaticApprovalEnum = {\n YesImmediateAccess: 'yesImmediateAccess' as IsAutomaticApprovalEnum,\n YesDraftOnly: 'yesDraftOnly' as IsAutomaticApprovalEnum,\n OutOfHoursDraftOnly: 'outOfHoursDraftOnly' as IsAutomaticApprovalEnum,\n OutOfHoursNo: 'outOfHoursNo' as IsAutomaticApprovalEnum,\n YesAnytime: 'yesAnytime' as IsAutomaticApprovalEnum,\n YesOffline: 'yesOffline' as IsAutomaticApprovalEnum,\n Nope: 'nope' as IsAutomaticApprovalEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * A technician\\'s GPS position for a specific travel.\n */\nexport interface WorkshopUserTravelPosition { \n id?: number;\n /**\n * Technician\\'s ID.\n */\n workshopUserId?: string;\n /**\n * Travel ID (if attached to a jobcard).\n */\n jobcardTravelId?: number;\n /**\n * Travel ID (if attached to a jobcard item).\n */\n jobcardItemTravelId?: number;\n latitude?: number;\n longitude?: number;\n /**\n * Position date-time\n */\n positionDate?: string;\n /**\n * Position type (start/ongoing/stop)\n */\n positionType?: WorkshopUserTravelPosition.PositionTypeEnum;\n /**\n * Device features\\' status when the position has been sent.\n */\n deviceStatus?: string;\n}\nexport namespace WorkshopUserTravelPosition {\n export type PositionTypeEnum = 'START' | 'ONGOING' | 'STOP';\n export const PositionTypeEnum = {\n START: 'START' as PositionTypeEnum,\n ONGOING: 'ONGOING' as PositionTypeEnum,\n STOP: 'STOP' as PositionTypeEnum\n };\n}\n\n\n","/**\n * Job Card API - Smart View Interfaces\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface WorkshopUserUnavailability { \n id?: number;\n startDate?: string;\n endDate?: string;\n type?: WorkshopUserUnavailability.TypeEnum;\n}\nexport namespace WorkshopUserUnavailability {\n export type TypeEnum = 'holiday' | 'sickness' | 'training' | 'admin';\n export const TypeEnum = {\n Holiday: 'holiday' as TypeEnum,\n Sickness: 'sickness' as TypeEnum,\n Training: 'training' as TypeEnum,\n Admin: 'admin' as TypeEnum\n };\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse, HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, Observable, from, throwError } from 'rxjs';\nimport { catchError, filter, finalize, mergeMap, switchMap, take } from 'rxjs/operators';\nimport { MsalService } from '@azure/msal-angular';\nimport { InteractionRequiredAuthError } from '@azure/msal-browser';\nimport { loginRequest } from './auth-config';\nimport { UserService } from '../core/user/user.service';\nimport jwt_decode from 'jwt-decode';\nimport { LoginControllerService } from 'src/api/djc-auth-service/api/loginController.service';\n\n@Injectable()\nexport class AccessTokenInterceptor implements HttpInterceptor {\n constructor(\n private msalService: MsalService,\n private http: HttpClient,\n private userService: UserService\n ) {}\n\n private isRefreshingToken = false;\n private tokenSubject: BehaviorSubject = new BehaviorSubject(null);\n\n /**\n * Intercepts HTTP requests and manages token handling and refreshing.\n */\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n // Bypass the interceptor for token or authentication requests\n if (this.shouldBypassInterceptor(req.url)) {\n return next.handle(req);\n }\n\n const accessToken = this.userService.accessToken; // Recupera il token salvato\n\n // Check if the token has expired\n if (!accessToken || this.isTokenExpired(accessToken)) {\n // If the token has expired or doesn't exist, try renewing it\n return this.handleTokenRefresh(req, next);\n } else {\n // If the token is valid, submit the request with the token\n return this.forwardRequestWithToken(req, next, accessToken);\n }\n }\n\n /**\n * Controls whether the request should bypass the interceptor.\n */\n private shouldBypassInterceptor(url: string): boolean {\n return url.includes('token') ||\n url.includes('auth') ||\n url.includes('login') ||\n url.includes('blob.core') ||\n url.includes('/summary/') ||\n (url.includes('djcworkitem/workshops') && url.includes('payment-types')) ||\n (url.includes('djcworkitem/workshops') && url.includes('permissions')) ||\n url.includes('djcworkitem/azure-token');\n }\n\n /**\n * Manages token renewal in a synchronized manner to avoid duplicate requests.\n */\n private handleTokenRefresh(req: HttpRequest, next: HttpHandler): Observable> {\n if (!this.isRefreshingToken) {\n this.isRefreshingToken = true;\n this.tokenSubject.next(null);\n\n return from(this.msalService.instance.acquireTokenSilent({\n scopes: ['openid', 'profile'],\n forceRefresh: true\n })).pipe(\n switchMap((newTokenResponse: any) => {\n const newAccessToken = newTokenResponse.accessToken;\n\n this.userService.accessToken = newAccessToken;\n\n this.isRefreshingToken = false;\n this.tokenSubject.next(newAccessToken);\n\n const authReq = this.addTokenToRequest(req, newAccessToken);\n return next.handle(authReq);\n }),\n catchError((tokenError: any) => {\n this.isRefreshingToken = false;\n return this.handleTokenError(tokenError);\n })\n );\n } else {\n // If the renewal is already underway, wait for the result\n return this.waitForTokenRefresh(req, next);\n }\n }\n\n private waitForTokenRefresh(req: HttpRequest, next: HttpHandler): Observable> {\n return this.tokenSubject.pipe(\n filter(token => token !== null),\n take(1),\n switchMap((token) => {\n const authReq = this.addTokenToRequest(req, token as string);\n return next.handle(authReq);\n })\n );\n }\n\n\n private forwardRequestWithToken(req: HttpRequest, next: HttpHandler, token: string): Observable> {\n const authReq = this.addTokenToRequest(req, token);\n return next.handle(authReq);\n }\n\n private addTokenToRequest(req: HttpRequest, token: string): HttpRequest {\n return req.clone({\n setHeaders: {\n authorization: `Bearer ${token}`\n }\n });\n }\n\n /**\n * Checks if a JWT token is near its expiry.\n *\n * @param {string} token\n * @returns {boolean}\n */\n private isTokenExpired(token: string): boolean {\n const decodedToken: any = jwt_decode(token);\n const expiryDate = new Date(decodedToken.exp * 1000);\n const now = new Date();\n return now >= expiryDate;\n }\n\n private handleTokenError(tokenError: any): Observable {\n console.error('Errore durante l’acquisizione del token:', tokenError);\n return throwError(() => tokenError);\n }\n}\n","import { query } from '@angular/animations';\nimport { Configuration, LogLevel } from '@azure/msal-browser';\nimport { environment } from 'src/environments/environment';\n\nexport const msalConfig: Configuration = {\n auth: {\n clientId: environment.clientId,\n authority: environment.authority,\n redirectUri: environment.redirectUri,\n // In locale reindirizzare a localhost4200\n // redirectUri: 'http://localhost:4200/jobcard-auth',\n\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: false\n },\n system: {\n loggerOptions: {\n loggerCallback(logLevel: LogLevel, message: string) {\n console.log(message);\n },\n logLevel: LogLevel.Info,\n piiLoggingEnabled: false\n }\n }\n};\n\nexport const loginRequest = {\n scopes: ['openid', 'profile'],\n domainHint: 'fgextranet.ivecogroup.com'\n};\n\nexport const protectedResources = {\n graphMe: {\n endpoint: \"https://graph.microsoft.com/v1.0/me\",\n scopes: [\"user.read\"]\n }\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MsalModule as AngularMsalModule, MsalInterceptor, MsalGuard, MsalInterceptorConfiguration } from '@azure/msal-angular';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { msalConfig, loginRequest, protectedResources } from './auth-config';\nimport { PublicClientApplication, InteractionType } from '@azure/msal-browser';\nimport { AccessTokenInterceptor } from './access-token.interceptor';\n\nexport function MSALInstanceFactory() {\n return new PublicClientApplication(msalConfig);\n}\n\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\n const protectedResourceMap = new Map>();\n // protectedResourceMap.set(protectedResources.graphMe.endpoint, protectedResources.graphMe.scopes);\n protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);\n // protectedResourceMap.set('https://graph.microsoft-ppe.com/v1.0/me', ['user.read']); // PPE testing environment\n return {\n interactionType: InteractionType.Redirect, // Specifica chiaramente InteractionType.Redirect\n protectedResourceMap\n };\n}\n\n@NgModule({\n imports: [\n CommonModule,\n AngularMsalModule.forRoot(MSALInstanceFactory(), {\n interactionType: InteractionType.Redirect,\n authRequest: loginRequest\n }, MSALInterceptorConfigFactory())\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MsalInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AccessTokenInterceptor,\n multi: true,\n },\n MsalGuard\n ]\n})\nexport class AuthMsalModule { }\n","import { Component, OnInit } from '@angular/core';\n// import { NotificationService } from '@api-jobcard';\nimport { Appointment, Notification, WorkshopUser } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n// import { UserService } from '../../core/user/user.service';\nimport { AppointmentDto } from 'src/api/djc-workitem-service';\nimport { WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { NotificationCreationDto } from '../../../api/djc-admin-service/model/notificationCreationDto';\nimport { User } from '../../../api/document/model/user';\nimport { NotificationService } from 'src/api/djc-booking-service/api/notification.service';\n\n@Component({\n selector: 'jc-add-notification-modal',\n templateUrl: './add-notification-modal.component.html',\n styleUrls: ['./add-notification-modal.component.scss'],\n})\nexport class AddNotificationModalComponent implements OnInit {\n user: WorkshopUserDto;\n notifications: Notification[];\n appointment: AppointmentDto;\n notificationTitle = '';\n notificationBody = '';\n\n constructor(\n private notificationService: NotificationService,\n public activeModal: NgbActiveModal,\n private userService: UserAdminService\n ) {}\n\n ngOnInit(): void {\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n });\n }\n\n onSubmit() {\n //TODO(Matteo) change with new service notification\n // simple\n // this.notificationService\n // .createNotification({\n // notificationDto: {\n // type: 'SENT_BACK',\n // appointment: this.appointment.id,\n // body: this.notificationBody,\n // notificationTitle: this.notificationTitle, // },\n // noLoader: true,\n // workshopId: this.user.workshopId,\n // authorization: this.userService.accessToken,\n // })\n // .subscribe();\n this.notificationService.saveSentBackRequest({\n sentBackCreationDto: {\n type: 'SENT_BACK',\n appointmentId: this.appointment.id,\n body: this.notificationBody,\n notificationTitle: this.notificationTitle,\n },\n applicationToken: this.userService.newToken,\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n })\n .subscribe(() => {\n this.activeModal.close();\n });\n }\n\n // onSubmit() {\n // this.notificationService\n // .postNewNotification({\n // notificationCreation: {\n // type: 'SENT_BACK',\n // appointmentId: this.appointment.id,\n // body: this.notificationBody,\n // notificationTitle: this.notificationTitle,\n // },\n // })\n // .subscribe(() => {\n // this.activeModal.close();\n // });\n}\n","
\n

Send back to technician

\n \n ×\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n Cancel\n \n \n Add\n \n
\n
\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n Appointment,\n JobcardItem,\n /* Notification, */\n NotificationType,\n WorkshopUser,\n} from 'src/app/models/model/models';\nimport * as moment from 'moment';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { JobcardItemDto, NotificationDto, WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { UserService } from '../core/user/user.service';\nimport { Util } from '../core/util/util';\nimport { UserAdminService } from '../core/user/user-admin.service';\nimport { AppointmentsService } from 'src/api/djc-booking-service/api/appointments.service';\nimport { AccessTokenInterceptor } from '../msal/access-token.interceptor';\nimport { AppointmentViewDto, FlagNotificationAsViewedByIdRequestParams, NotificationService, RemoveAllNotificationsByworkshopUserIdRequestParams, RemoveNotificationByIdRequestParams } from 'src/api/djc-booking-service';\n\n@Component({\n selector: 'jc-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n})\nexport class NotificationComponent implements OnChanges {\n @Input() notifications: NotificationDto[];\n @Input() displayed: boolean;\n @Input() displayedJobcard: boolean;\n @Input() appointment: Appointment;\n @Output() notificationEvent: EventEmitter = new EventEmitter();\n @Output() closeNotification: EventEmitter = new EventEmitter();\n user: WorkshopUserDto;\n textShow = false;\n elementClicked = false;\n workshopId: number;\n\n constructor(\n private notificationService: NotificationService,\n private appointmentsBookingService: AppointmentsService,\n private userService: UserAdminService,\n private router: Router\n ) {\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n this.workshopId = user.workshopId;\n });\n }\n\n /**\n * Function which will perform the translation of a notification for the user's current language.\n * @param notification: The notification to be translated\n */\n translateNotification(notification: NotificationDto) {\n switch (notification.type) {\n case NotificationType.JOBCARDCREATED:\n notification.body = $localize`A new jobcard has been created`;\n break;\n case NotificationType.JOBCARDDRAFT:\n notification.body = Util.stringFormat(\n $localize`A jobcard has been raised by [0] [1], please review`,\n notification.sender.firstName,\n notification.sender.lastName\n );\n break;\n case NotificationType.JOBCARDVALIDATED:\n notification.body = $localize`Jobcard validated, contact customer`;\n break;\n case NotificationType.ASSIGNACTIVITY:\n notification.body = $localize`A new jobcard has been assigned to you`;\n break;\n case NotificationType.CONFIRMACTIVITY:\n notification.body = $localize`Additional activity has been added to the jobcard`;\n break;\n case NotificationType.WARRANTYVALIDITY:\n notification.body = $localize`Jobcard completed, validation required`;\n break;\n case NotificationType.CHECKEDIN:\n if (environment.isIveco === true) {\n notification.body = $localize`Vehicle has been checked-in`;\n } else {\n notification.body = $localize`Machine has been checked-in`;\n }\n break;\n case NotificationType.CUSTOMERAPPROVED:\n /* Retrieve the number of approved and declined activities for the jobcard and translate based upon their values */\n let nbApproved = 0;\n let nbDeclined = 0;\n this.appointmentsBookingService\n .getAppointmentById({ id: notification.appointment, applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n })\n .subscribe((app: AppointmentViewDto) => {\n app.jobcard?.jobcardItems?.forEach((item: JobcardItemDto) => {\n if (item.isCustomerAgreed) {\n nbApproved++;\n } else {\n nbDeclined++;\n }\n\n if (nbApproved > 0 && nbDeclined > 0) {\n notification.body = Util.stringFormat(\n $localize`[0] Approved and [1] Declined additional activities have been updated by the customer`,\n nbApproved,\n nbDeclined\n );\n } else if (nbApproved > 0) {\n notification.body = Util.stringFormat(\n $localize`[0] Approved additional activities have been updated by the customer`,\n nbApproved\n );\n } else if (nbDeclined > 0) {\n notification.body = Util.stringFormat(\n $localize`[0] Declined additional activities have been updated by the customer`,\n nbDeclined\n );\n } else {\n notification.body = $localize`Additional activities have been updated by the customer`;\n }\n });\n },\n () => {\n notification.body = $localize`Additional activities have been updated by the customer`;\n },\n );\n\n break;\n case NotificationType.ACTIVITYAPPROVED:\n notification.body = $localize`Additional activities have been approved`;\n break;\n case NotificationType.WARRANTYJOBVALIDATED:\n notification.body = $localize`Warranty jobcard validated`;\n break;\n case NotificationType.WARRANTYACTIVITIESDONE:\n /* Get list of warranty activities which are done (list of activity IDs provided by notification object) */\n const notificationDoneActs = notification.doneActivities;\n const doneActsArray = notificationDoneActs.split(',').map(parseInt);\n let doneActivitiesString = '';\n let ji: JobcardItemDto;\n this.appointmentsBookingService\n .getAppointmentById({ id: notification.appointment, applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n })\n .subscribe((app: AppointmentViewDto) => {\n doneActivitiesString = '';\n doneActsArray.forEach((doneAct: number) => {\n ji = app.jobcard?.jobcardItems?.find(\n (it: JobcardItemDto) => it.id === doneAct\n );\n doneActivitiesString = doneActivitiesString.concat(\n '
- ',\n ji.name\n );\n notification.body = Util.stringFormat(\n $localize`Following warranty activities have been completed: [0]`,\n doneActivitiesString\n );\n });\n },\n () => {\n doneActivitiesString = '';\n notification.body = Util.stringFormat(\n $localize`Following warranty activities have been completed: [0]`,\n doneActivitiesString\n );\n },\n );\n\n break;\n case NotificationType.WARRANTYNEARDEADLINE:\n notification.body = $localize`Warranty deadline approaching`;\n break;\n case NotificationType.MACHINEUSAGEUPDATED:\n if (environment.isIveco === true) {\n notification.body = $localize`Mileage updated, check the SmartView for any updated information`;\n } else {\n notification.body = $localize`Machine usage updated, check the SmartView for any updated information`;\n }\n break;\n case NotificationType.ETIMBASKET:\n notification.title = Util.stringFormat(\n $localize`eTim basket received on appointment [0]`,\n notification.appointment\n );\n break;\n case NotificationType.BREAKDOWN:\n notification.title = Util.stringFormat(\n $localize`Appointment [0] Vehicle under Breakdown`,\n notification.appointment\n );\n\n /* Retrieve repair address for translating the body of the notification */\n let repairAddress = '';\n this.appointmentsBookingService\n .getAppointmentById({ id: notification.appointment, applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n })\n .subscribe((appointment: AppointmentViewDto) => {\n repairAddress = appointment?.repairAddress;\n notification.body = Util.stringFormat(\n $localize`A vehicle is under breakdown at this address: [0]`,\n repairAddress\n );\n },\n () => {\n repairAddress = '';\n notification.body = Util.stringFormat(\n $localize`A vehicle is under breakdown at this address: [0]`,\n repairAddress\n );\n },\n );\n break;\n case NotificationType.SENTBACK:\n case NotificationType.EPARTSBASKET:\n case NotificationType.CLOCKINGSUMMARY:\n case NotificationType.PARTS:\n default:\n break;\n }\n }\n\n ngOnChanges() {\n /* Whenever new notifications are added or when it is the first time notifications are displayed, translate each of them */\n this.notifications?.forEach((notification) => {\n this.translateNotification(notification);\n });\n }\n\n @HostListener('click', ['$event'])\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onLocalClick(_event: Event) {\n this.elementClicked = true;\n }\n\n @HostListener('document:click', ['$event'])\n onClick(event: Event) {\n const elementId = (event.target as Element).id;\n if (elementId?.includes('notification-flag')) {\n return;\n }\n if (!this.elementClicked) {\n this.closeNotification.emit(true);\n }\n this.elementClicked = false;\n }\n\n markNotificationAsViewed(notification: NotificationDto): void {\n if (notification?.type === 'ASSIGN_ACTIVITY') {\n this.router.navigateByUrl(\n `/workspace?appointmentId=${notification.appointment}`\n );\n } else if (\n notification?.type === 'CONFIRM_ACTIVITY' ||\n notification?.type === 'CUSTOMER_APPROVED' ||\n notification?.type === NotificationType.EPARTSBASKET ||\n notification?.type === NotificationType.ETIMBASKET\n ) {\n this.router.navigateByUrl(\n `/appointment/${notification.appointment}/operations`\n );\n } else if (notification?.type === 'JOBCARD_DRAFT') {\n this.router.navigateByUrl(\n `/appointment/${notification.appointment}/customer`\n );\n } else if (notification?.type === 'MACHINE_USAGE_UPDATED') {\n this.router.navigateByUrl(\n `/appointment/${notification.appointment}/activity`\n );\n } else if (\n notification?.type === 'FOLLOW_ACTIVITY' ||\n notification?.type === 'SENT_BACK' ||\n notification?.type === 'WARRANTY_VALIDITY' ||\n notification?.type === 'JOBCARD_CREATED' ||\n notification?.type === 'CHECKED_IN' ||\n notification?.type === 'ACTIVITY_APPROVED'\n ) {\n this.router.navigateByUrl(`/workfile/${notification.appointment}`);\n } else if (notification?.type === 'WARRANTY_ACTIVITIES_DONE') {\n this.router.navigate([`/workfile/${notification.appointment}`], {\n queryParams: {\n jobcardItemIds: notification.doneActivities,\n },\n });\n } else if (notification?.type === NotificationType.WARRANTYNEARDEADLINE) {\n // same router will update if notification link\n this.router\n .navigateByUrl(`/workfile/warranty?listIds=true`, {\n skipLocationChange: true,\n })\n .then(() => {\n this.router.navigate([`/workfile/warranty`], {\n queryParams: {\n listIds: notification.doneActivities,\n },\n });\n });\n }\n\n // Mark Notification as viewed\n if (!notification.viewDate || notification.viewDate === null) {\n notification.viewDate = moment().format('YYYY-MM-DD HH:mm:ss');\n const params: FlagNotificationAsViewedByIdRequestParams = {\n id: notification.id,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n };\n\n this.notificationService\n .flagNotificationAsViewedById(params)\n .subscribe((notif) => {\n this.notifications.splice(\n this.notifications.findIndex((w) => w.id === notif.id),\n 1,\n notif\n );\n this.notificationEvent.emit();\n });\n } else {\n console.debug('NULL Value');\n }\n }\n\n close(notification: NotificationDto, event: any) {\n event.stopPropagation();\n const notificationSends: Set> = new Set();\n const params: RemoveNotificationByIdRequestParams = {\n id: notification.id,\n noLoader: true,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n };\n this.notificationService.removeNotificationById(params).subscribe(() => {\n this.notifications.splice(\n this.notifications.findIndex((w) => w.id === notification?.id),\n 1\n );\n this.notificationEvent.emit();\n });\n notificationSends.delete(\n this.notificationService.removeNotificationById(params)\n );\n }\n\n showText() {\n this.textShow = true;\n }\n\n closeAllNotif(event: any): void {\n event.stopPropagation();\n const notificationSends: Set> = new Set();\n this.userService.getUser().subscribe((currentUser) => {\n const params: RemoveAllNotificationsByworkshopUserIdRequestParams = {\n id: Number(currentUser.id),\n noLoader: true,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n applicationToken: this.userService.newToken,\n };\n\n this.notificationService.removeAllNotificationsByworkshopUserId(params)\n .subscribe(() => {\n this.notifications = [];\n this.notificationEvent.emit();\n });\n notificationSends.delete(\n this.notificationService.removeAllNotificationsByworkshopUserId(params)\n );\n });\n this.textShow = false;\n }\n onCloseNotification() {\n this.closeNotification.emit(true);\n }\n}\n","\n \n No notifications\n \n 0\">\n \n \n \n Clear all\n \n\n \n
\n {{ notification?.title }}\n \n \n \n \n
\n
\n

\n \n {{ notification?.sentDate | date }}\n \n sent by \n {{ notification?.sender?.displayedName }}\n \n \n
\n \n\n","import { Directive, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Appointment, AppointmentStatus } from 'src/app/models/model/models';\r\n/*import {\r\n Appointment,\r\n AppointmentStatus,\r\n JobcardItem,\r\n JobcardItemSpell,\r\n JobcardItemTechnician,\r\n WorkshopUser,\r\n} from '@models-jobcard';*/\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as moment from 'moment';\r\nimport { Subject } from 'rxjs';\r\nimport { JobcardItemSpellDto } from 'src/api/djc-admin-service';\r\nimport { JobcardItemTechnicianDto } from 'src/api/djc-booking-service';\r\nimport { AppointmentDto, JobcardItemDto, WorkshopUserDto } from 'src/api/djc-workitem-service/model/models';\r\nimport { Util } from 'src/app/core/util/util';\r\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\r\nimport { DeleteAppointmentModalComponent } from 'src/app/shared/delete-appointment-modal/delete-appointment-modal.component';\r\nexport interface AppointmentGridOld extends Appointment {\r\n line?: number;\r\n colStart?: number;\r\n colEnd?: number;\r\n dayBefore?: boolean;\r\n dayAfter?: boolean;\r\n multipleDays?: boolean;\r\n current?: boolean;\r\n isDisabled?: boolean;\r\n jobcardItem?: JobcardItemDto;\r\n jobcardItemSpell?: JobcardItemSpellDto;\r\n technician?: JobcardItemTechnicianDto;\r\n scheduled?: boolean;\r\n dragOrigin?:\r\n | 'activity-pending'\r\n | 'jobcard-pending'\r\n | 'all-pending'\r\n | 'tech-unscheduled'\r\n | 'tech-scheduled'\r\n | 'calendar';\r\n displayRemoveAssignment?: boolean;\r\n colReceptionStart?: number;\r\n colDeliveryEnd?: number;\r\n assignPendingRemove?: boolean;\r\n}\r\nexport interface AppointmentGrid extends AppointmentDto {\r\n line?: number;\r\n colStart?: number;\r\n colEnd?: number;\r\n dayBefore?: boolean;\r\n dayAfter?: boolean;\r\n multipleDays?: boolean;\r\n current?: boolean;\r\n isDisabled?: boolean;\r\n jobcardItem?: JobcardItemDto;\r\n jobcardItemSpell?: JobcardItemSpellDto;\r\n technician?: JobcardItemTechnicianDto;\r\n scheduled?: boolean;\r\n dragOrigin?:\r\n | 'activity-pending'\r\n | 'jobcard-pending'\r\n | 'all-pending'\r\n | 'tech-unscheduled'\r\n | 'tech-scheduled'\r\n | 'calendar';\r\n displayRemoveAssignment?: boolean;\r\n colReceptionStart?: number;\r\n colDeliveryEnd?: number;\r\n assignPendingRemove?: boolean;\r\n}\r\n\r\nexport interface DayCol {\r\n date?: Date;\r\n dateString?: string;\r\n notWorked?: boolean;\r\n occupancy?: number;\r\n totalTimeAvailable?: number;\r\n}\r\n\r\n@Directive()\r\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\r\nexport abstract class PlanningDayRangeComponent implements OnInit {\r\n @Input() startDate: string | Date;\r\n @Input() endDate: string | Date;\r\n @Input() date: string | Date;\r\n @Input() appointments: AppointmentDto[];\r\n @Input() isAppointmentDeletable: boolean;\r\n @Input() disabled = false;\r\n @Input() isBooking: boolean;\r\n @Input() currentAppointment: AppointmentDto;\r\n @Input() dblClickCreation = false;\r\n @Input() moduleView: 'booking' | null;\r\n @Output() appointmentCancelled: EventEmitter = new EventEmitter();\r\n @Output() resizeItem: EventEmitter = new EventEmitter();\r\n @Output()\r\n nbAppointmentsTechnician: EventEmitter = new EventEmitter();\r\n days: DayCol[] = [];\r\n gridTemplateColumns: string;\r\n shortFormat = false;\r\n statusEnum = AppointmentStatus.StatusEnum;\r\n dragAppointment: AppointmentGrid;\r\n weekdaysWorked: number[] = [];\r\n isAlreadyOpenDragConfirm = false;\r\n intialCallSubjects = new Subject();\r\n\r\n constructor(\r\n protected router: Router,\r\n protected ngbModal: NgbModal,\r\n protected workshopService: WorkshopAdminService,\r\n protected locale: string\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.weekdaysWorked = [];\r\n this.workshopService.getWorkshop().subscribe((workshop) => {\r\n workshop.openingDays.forEach((day) => {\r\n if (day.periods && day.periods.length > 0) {\r\n const weekday = Util.enumToWeekday(day.weekday);\r\n this.weekdaysWorked.push(weekday);\r\n }\r\n });\r\n this.initCols();\r\n });\r\n }\r\n\r\n delete(appointment: AppointmentDto) {\r\n const modalRef = this.ngbModal.open(DeleteAppointmentModalComponent);\r\n modalRef.componentInstance.appointment = appointment;\r\n modalRef.result.then((success: boolean) => {\r\n if (success === true) {\r\n this.appointmentCancelled.emit();\r\n }\r\n });\r\n }\r\n\r\n onAppointmentCancelled() {\r\n this.appointmentCancelled.emit();\r\n }\r\n\r\n stopPropagation(event: Event) {\r\n event.stopPropagation();\r\n }\r\n\r\n dragstart(e: DragEvent, appointment: AppointmentDto, user?: WorkshopUserDto) {\r\n if (\r\n (appointment.status.status === this.statusEnum.Schedule ||\r\n appointment.status.status === this.statusEnum.AppointmentPrepared ||\r\n appointment.status.status === this.statusEnum.New ||\r\n appointment.status.status === this.statusEnum.Draft) &&\r\n (!user || appointment?.workshopUserId === user.id)\r\n ) {\r\n (e.target as HTMLElement).parentElement.parentElement.style.zIndex = '11';\r\n this.dragAppointment = appointment;\r\n }\r\n }\r\n\r\n dragend(e: DragEvent, appointment: AppointmentGrid) {\r\n this.confirm(appointment);\r\n }\r\n\r\n protected initCols() {\r\n this.days = [];\r\n const startDate = new Date(this.startDate);\r\n const endDate = new Date(this.endDate);\r\n const deltaDays =\r\n moment([\r\n endDate.getFullYear(),\r\n endDate.getMonth(),\r\n endDate.getDate(),\r\n ]).diff(\r\n moment([\r\n startDate.getFullYear(),\r\n startDate.getMonth(),\r\n startDate.getDate(),\r\n ]),\r\n 'days'\r\n ) + 1;\r\n this.shortFormat = deltaDays > 10;\r\n this.gridTemplateColumns = 'auto';\r\n const date = moment(this.startDate).subtract(1, 'days');\r\n for (let i = 0; i < deltaDays; i++) {\r\n this.days.push({\r\n date: date.add(1, 'days').toDate(),\r\n notWorked: this.weekdaysWorked.indexOf(date.weekday()) === -1,\r\n });\r\n this.gridTemplateColumns += ` minmax(0, 1fr)`;\r\n }\r\n // This subject variable emit once calculat the date\r\n this.intialCallSubjects.next(this.days);\r\n }\r\n\r\n protected dateToCol(date: Date): number {\r\n let col = -1;\r\n this.days.forEach((day, index) => {\r\n if (moment(date).isSame(day.date, 'days')) {\r\n col = index;\r\n }\r\n });\r\n\r\n if (col < 0) {\r\n return moment(date).isBefore(moment(this.days[0]?.date)) ? 0 : Infinity;\r\n } else if (col + 1 > this.days.length) {\r\n return Infinity;\r\n }\r\n return col + 1;\r\n }\r\n\r\n protected colToDate(col: number, currendDate: Date): Date {\r\n const date = moment(this.days[col - 1].date);\r\n const mCurrentDate = moment(currendDate);\r\n date.set('hour', mCurrentDate.hour());\r\n date.set('minute', mCurrentDate.minute());\r\n date.set('second', mCurrentDate.second());\r\n date.set('millisecond', mCurrentDate.millisecond());\r\n return date.toDate();\r\n }\r\n\r\n protected isConflict(\r\n newAppointment: AppointmentGrid,\r\n lineAppointments: AppointmentGrid[]\r\n ): boolean {\r\n let conflict = false;\r\n lineAppointments.forEach((appointment) => {\r\n if (\r\n (newAppointment.colStart >= appointment.colStart &&\r\n newAppointment.colStart <= appointment.colEnd) ||\r\n (newAppointment.colEnd >= appointment.colStart &&\r\n newAppointment.colEnd <= appointment.colEnd) ||\r\n (appointment.colStart >= newAppointment.colStart &&\r\n appointment.colEnd <= newAppointment.colEnd) ||\r\n newAppointment.colStart === appointment.colEnd\r\n ) {\r\n conflict = true;\r\n }\r\n });\r\n return conflict;\r\n }\r\n\r\n protected checkSameOrAfter(currentDate: Date, days: any[]): boolean {\r\n return days.some((day) =>\r\n moment(currentDate).isSameOrAfter(new Date(day.date), 'days')\r\n );\r\n }\r\n\r\n protected checkSameOrbefore(currentDate: Date, days: any[]): boolean {\r\n return days.some((day) =>\r\n moment(currentDate).isSameOrBefore(new Date(day.date), 'days')\r\n );\r\n }\r\n\r\n protected abstract confirm(appointment: AppointmentGrid): void;\r\n}\r\n","import {\n CdkDragDrop,\n moveItemInArray,\n transferArrayItem,\n} from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n LOCALE_ID,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\n// import {\n// ChecklistService,\n// DiscountService,\n// GetOperationWarrantyRequestParams,\n// GetPartsRequestParams,\n// JobcardItemService,\n// OperationService,\n// PartService,\n// ApiAppointmentService,\n// NotificationService,\n// ActivityMaintenanceService,\n// MaintenanceService,\n// UpdateMaintenanceCouponRequestParams,\n// WorkshopUserChecklistTypesService,\n// UpdateAppointmentRequestParams,\n// JobcardService,\n// AddJobcardTravelsRequestParams,\n// SaveMaintenanceRequestParams,\n// CreateAppointmentStatusRequestParams,\n// CountryService,\n// ExtraOperationService,\n// WarrantyTypesService,\n// GetWarrantyTypesRequestParams,\n// } from '@api-jobcard';\nimport {\n GetGeoStoreDetailsRequestParams,\n GetVehicleTelematicsRequestParams,\n SmartViewService,\n} from '@api-smartview';\nimport {\n Appointment,\n AppointmentStatus,\n ExtraOperation,\n JobcardAttachment,\n JobcardItem,\n JobcardItemStatus,\n JobcardItemTechnician,\n JobcardTravel,\n Kit,\n Operation,\n OperationWarranty,\n Part,\n PartReturn,\n PaymentSubType,\n PaymentType,\n WorkshopBay,\n WorkshopDiscount,\n WorkshopUser,\n ChecklistTemplate,\n ChecklistInstance,\n Workshop,\n JobcardItemCustomerStatus,\n WorkshopChecklistType,\n JobcardPartsBacklog,\n ApiError,\n OperationPartLocation,\n JobcardItemSpell,\n PaymentSubSubType,\n Country,\n WarrantyType,\n Permission,\n} from 'src/app/models/model/models';\nimport {\n SapFailure,\n SrtSupplierCode,\n WarrantyServices,\n} from '@models-smartview';\nimport { NgbDateStruct, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, of, Subject, Subscription } from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n switchMap,\n tap,\n} from 'rxjs/operators';\nimport { ActivatedRoute } from '@angular/router';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { PaymentsService } from 'src/app/core/payments/payments.service';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { WorkshopUsersService } from 'src/app/core/workshop-user/workshop-user.service';\nimport { WorkshopService } from 'src/app/core/workshop/workshop.service';\nimport { WorkspaceTimeService } from 'src/app/workspace/workspace-main-planning/workspace-time/workspace-time.service';\nimport { environment } from 'src/environments/environment';\nimport {\n EmailTypeEnum,\n emailType,\n} from 'src/app/appointment/appointment-footer/appointment-footer.component';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { locales } from 'src/locale/locales';\nimport { Util } from 'src/app/core/util/util';\nimport { PermissionsService } from 'src/app/core/permissions/permissions.service';\nimport { AppointmentInCreation, NewAppointmentService } from 'src/app/appointment/new-appointment.service';\nimport { JobcardItemDto, KitDto, WorkshopBayDto, WorkshopDto, WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { JobcardItemExtraOperationDto } from 'src/api/djc-booking-service/model/jobcardItemExtraOperationDto';\nimport { WorkshopUsersAdminService } from 'src/app/core/workshop-user-admin/workshop-user-admin.service';\nimport { PaymentsServiceAdmin } from 'src/app/core/payments/payments.serviceAdmin';\nimport { AppointmentDto, AppointmentShortDto, PaymentTypeDto } from 'src/api/djc-booking-service/model/models';\nimport { AttachmentsModalComponent } from '../attachments-modal/attachments-modal.component';\nimport { ClientVerbalAgreementModalComponent } from '../client-verbal-agreement-modal/client-verbal-agreement-modal.component';\nimport { ClockedTimeModalComponent } from '../clocked-time-modal/clocked-time-modal.component';\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\nimport { DateTimePickerModalComponent } from '../date-time-picker-modal/date-time-picker-modal.component';\nimport { DeferActivityModalComponent } from '../defer-activity-modal/defer-activity-modal.component';\nimport { EditFieldModalComponent } from '../edit-field-modal/edit-field-modal.component';\nimport { EditMaintenanceModalComponent } from '../edit-maintenance-modal/edit-maintenance-modal.component';\nimport { EditOperationModalComponent } from '../edit-operation-modal/edit-operation-modal.component';\nimport { EditWorkshopModalComponent } from '../edit-workshop-modal/edit-workshop-modal.component';\nimport { KitDetailsModalComponent } from '../kit-details-modal/kit-details-modal.component';\nimport { TravelModalComponent } from '../travel-modal/travel-modal.component';\nimport { UserCommentComponent } from '../user-comment/user-comment.component';\nimport { ClockModalComponent } from '../clock-modal/clock-modal.component';\nimport { ChangeStatusModalComponent } from '../change-status-modal/change-status-modal.component';\nimport { DisplayChecklistModalComponent } from '../display-checklist-modal/display-checklist-modal.component';\nimport {\n EstimateTravel,\n TravelMapDisplayComponent,\n} from '../travel-modal/travel-map-display/travel-map-display.component';\nimport { GoogleWebService } from '../googleMap-service/google-web.service';\nimport { WarningModalComponent } from '../warning-modal/warning-modal.component';\nimport { IuLinksModalComponent } from '../iu-links-modal/iu-links-modal.component';\nimport { EditMaintenanceActivityModalComponent } from '../edit-maintenance-activity-modal/edit-maintenance-activity-modal.component';\nimport { ChecklistTemplateService } from 'src/api/djc-booking-service/api/checklistTemplate.service';\nimport { KitService } from 'src/api/djc-booking-service/api/kit.service';\nimport { WorkshopChecklistTypeService } from 'src/api/djc-booking-service/api/workshopChecklistType.service';\n\ninterface ChecklistTemplateDisplayed {\n groupName?: string;\n groupItemValue?: ChecklistTemplate[];\n}\n\nexport interface JobcardItemCollapsable extends JobcardItem {\n /** Indicates if jobcard item is displayed collapsed. */\n collapsed?: boolean;\n warrantyCoverage?: boolean;\n causalParts?: Part[];\n causalPartCodes?: string[];\n isMaintenance?: boolean;\n noData?: boolean;\n totalDuration?: number;\n techniciansDuration?: number[];\n isPartAvailable?: boolean;\n currentStatus?: JobcardItemStatus;\n checklist?: ChecklistInstance;\n inspectionChecklist?: ChecklistInstance[];\n clockedTechnicians?: JobcardItemTechnician[];\n discounts?: WorkshopDiscount[];\n checklistIconVisible?: boolean;\n hasMissingParts?: ActivityDetails[];\n paymentWarrantyType?: WarrantyType;\n}\n\ninterface ActivityDetails {\n activityId: number;\n activityName: string;\n opePartCode: string;\n missingParts: string[];\n}\n\nexport interface AppointmentAgendaDisplayed extends Appointment {\n hasMissingParts?: ActivityDetails[];\n}\n\n@Component({\n selector: 'jc-activities',\n templateUrl: './activities.component.html',\n styleUrls: ['./activities.component.scss'],\n})\nexport class ActivitiesComponent implements OnInit, OnChanges, OnDestroy {\n @Input() contentType: EmailTypeEnum;\n @Input() jobcardItems: JobcardItemCollapsable[] = [];\n @Input() status: AppointmentStatus;\n @Input() isKit = false;\n @Input() isWorkfile = false;\n @Input() isActivity = false;\n @Input() isSummary = false;\n @Input() isCustomerAccessible = false;\n @Input() srtOperations: Operation[] = [];\n @Input() defects: Operation[] = [];\n @Input() supplierCode: SrtSupplierCode[] = [];\n @Input() editable = true;\n @Input() warrantyServices: WarrantyServices[] = [];\n @Input() nbMaintenances: number;\n @Input() nbUpdatedMaintenances: number;\n @Input() srtExtraOperations: JobcardItemExtraOperationDto[];\n @Input() appointmentId: number;\n //TODO(Matteo) change type old Appointment\n @Input() appointment: any;\n @Input() isAppointmentRemote = false;\n @Input() workshopBays: WorkshopBayDto[] = [];\n @Input() defaultBay: WorkshopBayDto;\n @Input() failureCodes: SapFailure[] = [];\n\n @Input() checklistDetail: ChecklistTemplate[] = [];\n @Input() checklistItem: ChecklistInstance[] = [];\n @Input() isDisabled = false;\n @Input() travelArray: JobcardTravel[] = [];\n @Input() travelEdit = true;\n @Input() isVisibleTravel: any = false;\n @Input() refreshCalculation: Observable;\n @Output() update = new EventEmitter();\n @Output() jobcardItemOpenChecklist = new EventEmitter();\n @Output() jobcardItemsChange = new EventEmitter();\n @Input() updatePipTravel: Observable;\n @Input() warrantyTypes: WarrantyType[] = [];\n @Input() appointmentInCreation: AppointmentInCreation;\n\n updateStatus = new Subject();\n subscriptions: Subscription[] = [];\n newActivity: string;\n newKit: Kit;\n kits: KitDto[] = [];\n jobcardItemExist = false;\n lastActivityIndex: number;\n parts: Part[] = [];\n partsReturn: PartReturn[] = [];\n paymentTypes: PaymentTypeDto[] = [];\n checkListItems: ChecklistInstance[] = [];\n operationWarranty: OperationWarranty;\n user: WorkshopUser;\n operation: Operation;\n filteredJobcardItems: JobcardItemCollapsable[] = [];\n currencyCode = 'XXX';\n workshopUsers: WorkshopUserDto[] = [];\n paymentTypesEnum = PaymentType.TypeEnum;\n selectedPaymentType: PaymentType;\n jobcardItemType = JobcardItem.TypeEnum;\n isEditAvailable: boolean;\n environment = environment;\n maintenancesUpdated = false;\n discounts: WorkshopDiscount[] = [];\n jobcardItemsForSummary: JobcardItem[] = [];\n assemblyDate: Date[] = [];\n statusEnum = JobcardItemStatus.StatusEnum;\n maxDateStruct: NgbDateStruct;\n searchingPart = false;\n otherCausalPart: string[] = [];\n partsList: Part[] = [];\n checklistView: boolean;\n checklistViewForItem: boolean;\n supplier: SrtSupplierCode;\n checklistTemplateGroup: ChecklistTemplateDisplayed[] = [];\n summaryType = emailType;\n appointmentStatus: string;\n workshopUser: WorkshopUserDto;\n allocatedTime: number;\n authorizerNameEnum = JobcardItem.AuthorizerNameEnum;\n groupReplacedEnum = JobcardItem.GroupReplacedEnum;\n workshop: WorkshopDto = { id: -1, name: '' };\n isVisiableAuthorizerName = false;\n fromNotify: string;\n jobcardItemsIds: string;\n statusColor: any;\n // hidden by task 372202\n // isDiscountAvailable: boolean;\n discount: WorkshopDiscount;\n isBreakDownAppointment: boolean;\n yesToDoStatus: boolean;\n dayOfAppointment: string;\n outOfHour: boolean;\n apptAvailable = false;\n remoteWorkshopBay: WorkshopBayDto;\n jobcardPartsBacklog?: JobcardPartsBacklog[] = [];\n machineConnected = false;\n hasMissingParts?: ActivityDetails[];\n selectedWarrantyType: WarrantyType;\n standAloneMode: boolean;\n\n isPresent = false;\n itemStatus: string;\n travelExist = false;\n newTravel: string;\n travelFromAddressLine1: string;\n travelToAddressLine1: string;\n travelFromAddressLine2: string;\n travelToAddressLine2: string;\n travelFromAddressLine3: string;\n travelToAddressLine3: string;\n travelFromAddressLine4: string;\n travelToAddressLine4: string;\n travelFromPostalCode: string;\n travelToPostalCode: string;\n travelFromLatitude: number;\n travelFromLongitude: number;\n travelToLatitude: number;\n travelToLongitude: number;\n lastTravelIndex: number;\n selectedLanguageId: string;\n\n reasonsList: string[] = [\n $localize`Technician was helping another Technician`,\n $localize`Technical errors (computer/system/hardware down)`,\n $localize`Technician forgot to record travel information`,\n $localize`Technician forgot to start/stop the travel time`,\n $localize`Discount (for specific situations like customer satisfaction)`,\n $localize`Other`,\n ];\n travelFromShowCoordinatesEnum = JobcardTravel.TravelFromShowCoordinatesEnum;\n travelToShowCoordinatesEnum = JobcardTravel.TravelToShowCoordinatesEnum;\n lastImportedDate: boolean;\n alert: string;\n loadingTravelToDisplay = false;\n loadingActualTravelToDisplay = false;\n measurementUnit = 'KM';\n isEstimateTravelLoader: string = null;\n newAppointment: AppointmentAgendaDisplayed;\n enableArrow = true;\n travelTypeFrom: string;\n countries: Country[] = [];\n countryAbbrev: string;\n otherWorkshopType = ExtraOperation.TypeEnum;\n extraOperationsFiltered: ExtraOperation[] = [];\n level2Filter = { subLevel: 2, isVisible: true };\n level3Filter = { subLevel: 3, isVisible: true };\n travelPrice = 0;\n noReordering = false;\n isCvFrance = false;\n maxLength: number;\n alertMessage: string;\n activityNameLength: number;\n\n constructor(\n private elRef: ElementRef,\n private modalService: NgbModal,\n //TODO(Matteo) ignorare RemoveYaml activities\n // private jobcardItemService: JobcardItemService,\n private workshopService: WorkshopAdminService,\n public appointmentService: AppointmentService,\n //TODO(Matteo) ignorare RemoveYaml activities\n // private operationService: OperationService,\n private paymentsService: PaymentsServiceAdmin,\n private kitService: KitService,\n private toastrService: ToastrService,\n private userService: UserService,\n private workshopUserService: WorkshopUsersAdminService,\n private smartViewService: SmartViewService,\n // hidden by task 372202\n // private discountService: DiscountService,\n //TODO(Matteo) ignorare RemoveYaml activities\n// private partService: PartService,\n private checklistService: ChecklistTemplateService,\n private workshopChecklistService: WorkshopChecklistTypeService,\n //TODO(Matteo) ignorare RemoveYaml activities\n // private apiAppointmentService: ApiAppointmentService,\n private activatedRoute: ActivatedRoute,\n //TODO(Matteo) ignorare RemoveYaml activities\n // private notificationService: NotificationService,\n //TODO(Matteo) ignorare RemoveYaml activities\n // private activityMaintenanceService: ActivityMaintenanceService,\n //TODO(Matteo) ignorare RemoveYaml activities\n\n // private maintenanceService: MaintenanceService,\n private cdRef: ChangeDetectorRef,\n //TODO(Matteo) ignorare RemoveYaml activities\n // private jobcardService: JobcardService,\n private googleService: GoogleWebService,\n public workspaceTimeService: WorkspaceTimeService,\n //TODO(Matteo) ignorare RemoveYaml activities\n\n // private countryService: CountryService,\n // private extraOperationService: ExtraOperationService,\n // private warrantyTypeService: WarrantyTypesService,\n private permissionService: PermissionsService,\n public zone: NgZone,\n public newAppointmentService: NewAppointmentService,\n @Inject(LOCALE_ID) public localeId: string\n ) {}\n\n ngOnInit(): void {\n this.measurementUnit = locales.find(\n (locale) => locale.id.toUpperCase() === this.localeId.toUpperCase()\n ).measurementUnits;\n const dateappt = new Date();\n if (environment.isIveco) {\n this.isBreakDownAppointment = this.newAppointmentService?.appointmentInCreation?.isBreakdownAppt;\n } else {\n this.remoteWorkshopBay = this.workshopBays?.find(\n (bay) => bay.type === 'Remote'\n );\n this.isBreakDownAppointment =\n this.newAppointmentService?.appointmentInCreation?.workshopBayId ===\n this.remoteWorkshopBay?.id;\n }\n const dateOfAppointment = moment().toISOString();\n switch (dateappt.getDay()) {\n case 0:\n this.dayOfAppointment = 'Sunday';\n break;\n case 1:\n this.dayOfAppointment = 'Monday';\n break;\n case 2:\n this.dayOfAppointment = 'Tuesday';\n break;\n case 3:\n this.dayOfAppointment = 'Wednesday';\n break;\n case 4:\n this.dayOfAppointment = 'Thursday';\n break;\n case 5:\n this.dayOfAppointment = 'Friday';\n break;\n case 6:\n this.dayOfAppointment = 'Saturday';\n }\n\n if (!this.isSummary && !this.isCustomerAccessible) {\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n // pour editer un comment il faut le role de warranty writer, sevice writer ou admin\n this.isEditAvailable = true\n ? this.user.role.roleAbbrev === 'WARR' ||\n this.user.role.roleAbbrev === 'ADVISOR' ||\n this.user.isAdmin\n : false;\n });\n this.statusColor = 'btn btn-outline-danger border-0 btn-icon';\n this.appointmentStatus = 'delivered';\n this.workshopUserService\n .getWorkshopUsers()\n .subscribe((workshopUsers: WorkshopUserDto[]) => {\n this.workshopUsers = workshopUsers;\n this.workshopUser = this.workshopUsers.filter(\n (wu) => wu.id === this.user.id\n )[0];\n if (this.isBreakDownAppointment) {\n this.newActivity = null;\n } else if (\n undefined !== this.workshopUser &&\n undefined !== this.workshopUser.isActivityApproval &&\n this.workshopUser.isActivityApproval === 'nope'\n ) {\n this.newActivity = '';\n this.yesToDoStatus = false;\n } else if (\n undefined === this.workshopUser.isActivityApproval ||\n this.workshopUser.isActivityApproval === 'yesToDoStatus' ||\n this.workshopUser.isActivityApproval === 'yesNewStatusOnly' ||\n this.workshopUser.isActivityApproval === 'outOfHoursNewStatus' ||\n this.workshopUser.isActivityApproval === 'outOfHoursNo'\n ) {\n this.newActivity = null;\n this.yesToDoStatus = true;\n } else {\n this.newActivity = '';\n }\n });\n\n this.workshopService.getWorkshop().subscribe((workshop) => {\n this.workshop = workshop;\n this.standAloneMode = workshop.standAloneMode;\n if (!this.countries.length && !environment.isIveco) {\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.countryService.getCountries().subscribe((countriesData) => {\n // this.countries = countriesData;\n // this.getCountryDetailsFromWorkshopCountry(workshop);\n // });\n }\n this.workshop.openingDays.forEach((wu) => {\n if (\n null !== this.dayOfAppointment &&\n undefined !== this.dayOfAppointment\n ) {\n if (\n this.dayOfAppointment.toLowerCase() === wu.weekday.toLowerCase()\n ) {\n wu.periods.forEach((period) => {\n if (!this.apptAvailable) {\n const beforeTime = moment(period.start).format('HH:mm:ss');\n const afterTime = moment(period.end).format('HH:mm:ss');\n const appointmentTime = moment(dateOfAppointment).format(\n 'HH:mm:ss'\n );\n\n const beforeTimeSeconds: any = beforeTime.split(':'); // splitting the string by colo\n const beforeSeconds =\n beforeTimeSeconds[0] * 3600 +\n beforeTimeSeconds[1] * 60 +\n +beforeTimeSeconds[2]; // converting\n\n const afterTimeSeconds: any = afterTime.split(':');\n const afterSeconds =\n afterTimeSeconds[0] * 3600 +\n afterTimeSeconds[1] * 60 +\n +afterTimeSeconds[2]; // converting\n\n const appoinmentTimeSeconds: any = appointmentTime.split(':');\n const appointmentSeconds =\n appoinmentTimeSeconds[0] * 3600 +\n appoinmentTimeSeconds[1] * 60 +\n +appoinmentTimeSeconds[2]; // converting\n if (wu.periods.length === 1) {\n if (\n appointmentSeconds > beforeSeconds &&\n appointmentSeconds < afterSeconds\n ) {\n this.outOfHour = false;\n }\n // else if (wu.periods.length != 1) {\n // this.outOfHour = true;\n // // this.apptAvailable = true;\n // }\n else {\n this.outOfHour = true;\n this.apptAvailable = true;\n }\n } else {\n if (\n appointmentSeconds > beforeSeconds &&\n appointmentSeconds < afterSeconds\n ) {\n this.outOfHour = false;\n this.apptAvailable = true;\n } else {\n this.outOfHour = true;\n }\n }\n }\n });\n }\n }\n });\n if (\n undefined !== this.workshopUser &&\n undefined !== this.workshopUser.isActivityApproval &&\n this.workshopUser.isActivityApproval === 'outOfHoursNewStatus'\n ) {\n this.newActivity = null;\n this.yesToDoStatus = true;\n } else if (\n undefined !== this.workshopUser &&\n undefined !== this.workshopUser.isActivityApproval &&\n this.workshopUser.isActivityApproval === 'outOfHoursNo' &&\n !this.outOfHour\n ) {\n this.newActivity = '';\n this.yesToDoStatus = false;\n }\n if (workshop?.currencyCode) {\n this.currencyCode = workshop.currencyCode;\n }\n this.isVisiableAuthorizerName = this.newAppointmentService.getDefaultAuthorizerName(\n this.appointment?.salesOrganizationId,\n this.workshop\n )\n ? true\n : false;\n });\n this.kitService.getKits({ workshopId: this.user.workshopId, authorization: this.userService.accessToken}).subscribe((kits) => {\n this.kits = kits;\n });\n // hidden by task 372202\n // this.discountService.getDiscounts().subscribe((discounts) => {\n // discounts.forEach((discount) => {\n // discount.workshopUsers?.forEach((wu) => {\n // if (wu.id === this.user.id) {\n // this.discounts.push(discount);\n // }\n // });\n // });\n // });\n this.paymentsService.getPaymentTypes(this.user.workshopId).subscribe((types) => {\n if (\n environment.isIveco &&\n this.workshop?.countryId === 69 &&\n this.workshop.country === ('FRANCE' || 'FR')\n ) {\n this.isCvFrance = true;\n }\n this.paymentTypes.push(...types.filter((type) => type.isVisible));\n //To set the jobcard paymenttype\n this.paymentTypes.forEach((payment) => {\n if (payment.paymentSubTypes) {\n const subTypes: PaymentSubType[] = payment.paymentSubTypes.filter(\n (subType) => subType.isVisible\n );\n payment.paymentSubTypes = [];\n subTypes.forEach((subType) => {\n const subSubTypes: PaymentSubSubType[] = subType.paymentSubSubTypes.filter(\n (subSubType) => subSubType.isVisible\n );\n subType.paymentSubSubTypes = [];\n subSubTypes.forEach((subSubType) => {\n subType.paymentSubSubTypes.push(subSubType);\n });\n payment.paymentSubTypes.push(subType);\n });\n\n // Sort payment types based on weight\n this.paymentTypes = this.paymentTypes.sort((a, b) =>\n a.weight > b.weight ? 1 : b.weight > a.weight ? -1 : 0\n );\n this.paymentTypes.forEach((subType: PaymentType) => {\n subType.paymentSubTypes = subType.paymentSubTypes.sort((a, b) =>\n a.weight > b.weight ? 1 : b.weight > a.weight ? -1 : 0\n );\n });\n }\n });\n\n this.calculTotalDuration();\n this.jobcardItems?.forEach((jobcardItem, index) => {\n this.setClockedTechnicians(jobcardItem);\n // hidden by task 372202\n // if (\n // jobcardItem.paymentType?.type === PaymentType.TypeEnum.Retail ||\n // jobcardItem.discountTypeId\n // ) {\n // jobcardItem.isDiscountAvailable = true;\n // }\n // Set warranty date for type D\n this.assemblyDate.push(\n jobcardItem.installedDate\n ? moment(jobcardItem.installedDate).toDate()\n : null\n );\n\n jobcardItem.isMaintenance =\n jobcardItem.type === JobcardItem.TypeEnum.NextMaintenance ||\n jobcardItem.type === JobcardItem.TypeEnum.ProposedMaintenance;\n if (jobcardItem.isMaintenance) {\n if (environment.isIveco && !jobcardItem.causalPartCode) {\n //TODO Matteo release 2 work\n // const params: GetPartsRequestParams = {\n // noLoader: true,\n // name: 'UNKNOWCSP',\n // };\n // this.partService.getParts(params).subscribe((parts: Part[]) => {\n // if (parts?.length > 0) {\n // jobcardItem.causalPartId = -1;\n // jobcardItem.causalPartCode = parts[0].code;\n // }\n // });\n }\n if (!jobcardItem.failureDescription) {\n this.buildFailureDescription(jobcardItem);\n }\n }\n this.newAppointmentService.refreshParts(jobcardItem);\n this.setPaymentTypes(jobcardItem);\n this.setEnableAutoWarranty(jobcardItem);\n if (!environment.isIveco) {\n this.setWarrantyType(jobcardItem);\n }\n // If we enter the first time in the screen\n // Then calculate the paymentType and paymentSubType that are used\n // to display the correct value in the select box.\n // These objects are used to display all the linked values in the select box (*ngFor)\n\n if (environment.isIveco) {\n if (!jobcardItem.paymentType || !jobcardItem.paymentSubType) {\n this.defectCodeChanged(jobcardItem);\n this.supplierCodeChanged(jobcardItem);\n this.setEnableAutoWarranty(jobcardItem);\n }\n }\n jobcardItem.causalParts = [];\n jobcardItem.causalPartCodes = [];\n this.otherCausalPart = [];\n if (jobcardItem.operations) {\n jobcardItem.operations.forEach((ope) => {\n if (ope.parts) {\n ope.parts.forEach((opePart) => {\n if (\n jobcardItem.causalParts\n .map((part) => part.id)\n .indexOf(opePart.part?.id) === -1\n ) {\n jobcardItem.causalParts.push(opePart.part);\n jobcardItem.causalPartCodes.push(opePart.part.code);\n }\n });\n }\n });\n }\n if (\n !jobcardItem.causalPartCodes.includes(jobcardItem.causalPartCode) &&\n jobcardItem.causalPartCode\n ) {\n this.otherCausalPart.push(jobcardItem.causalPartCode);\n // const params: GetPartsRequestParams = {\n // noLoader: true,\n // name: jobcardItem.causalPartCode,\n // };\n //TODO Matteo release 2 work\n // this.partService.getParts(params).subscribe((parts: Part[]) => {\n // if (parts?.length > 0) {\n // const availablepart = parts.filter(\n // (part) => part.code === jobcardItem.causalPartCode\n // )[0];\n // this.otherCausalPart[index] =\n // availablepart.code +\n // (availablepart.description\n // ? (availablepart.code ? ' - ' : '') +\n // availablepart.description\n // : '') +\n // (availablepart.manufacturer\n // ? ' - ' + availablepart.manufacturer\n // : '');\n // }\n // });\n } else {\n this.otherCausalPart[index] = '';\n }\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPrice(\n jobcardItem\n );\n this.appointmentService.setItemsWeight(this.jobcardItems);\n jobcardItem.currentStatus = this.newAppointmentService.getCurrentItemStatus(\n jobcardItem\n );\n jobcardItem.checklist =\n jobcardItem.checklistInstances?.length > 0\n ? { ...jobcardItem.checklistInstances[0] }\n : { id: null, checklistTemplateId: null };\n });\n this.newAppointmentService.arePartsAvailable(\n this.jobcardItems,\n this.workshop\n );\n });\n } else {\n this.jobcardItems.forEach((jobcardItem) => {\n jobcardItem.currentStatus = this.newAppointmentService.getCurrentItemStatus(\n jobcardItem\n );\n });\n }\n this.getVehicleTelematics();\n this.activatedRoute.queryParamMap.subscribe((params) => {\n this.jobcardItemsIds = params.get('jobcardItemIds');\n });\n if (this.jobcardItemsIds !== null && this.jobcardItemsIds.length) {\n const jidPresent = this.jobcardItems?.some(\n (ji) =>\n this.jobcardItemsIds?.split(',')?.includes(ji.id.toString()) &&\n ji?.jobcardItemStatus[0]?.status !== JobcardItemStatus.StatusEnum.Done\n );\n if (jidPresent) {\n this.toastrService.info(\n $localize`This activity is no longer in done state.`\n );\n }\n }\n\n // Disabling the future dates\n const date = new Date();\n this.maxDateStruct = {\n day: date.getDate(),\n month: date.getMonth() + 1,\n year: date.getFullYear(),\n };\n\n this.userService.getUser().subscribe(() => {\n this.workshopChecklistService\n .getChecklistTypesByWorkshopId({\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n })\n .subscribe((checklistTypes: WorkshopChecklistType[]) => {\n this.checklistService\n .getChecklistTemplates({\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken\n })\n .subscribe((data: ChecklistTemplate[]) => {\n const types = [\n ...checklistTypes.map((type) => type.checklistType),\n ];\n if (!environment.isIveco) {\n types.unshift('inspection');\n }\n types.unshift('reception');\n\n this.checklistDetail = data.filter(\n (template) => types.indexOf(template.type) > -1\n );\n this.checklistTemplateGroup = [];\n new Set(types).forEach((type) => {\n const templates: ChecklistTemplate[] = [];\n this.checklistDetail.forEach(\n (temp: ChecklistTemplate, index) => {\n if (temp.type === type) {\n templates.push(temp);\n }\n if (index === this.checklistDetail.length - 1) {\n const label =\n type === 'inspection'\n ? $localize`Inspection`\n : type === 'reception'\n ? $localize`Reception`\n : type;\n this.checklistTemplateGroup.push({\n groupName: label,\n groupItemValue: templates,\n });\n }\n }\n );\n });\n });\n });\n });\n\n if (this.appointment?.jobcard?.jobcardTravels) {\n if (this.isVisibleTravel || this.editable) {\n this.refreshTravel();\n }\n }\n this.subscriptions.push(\n this.refreshCalculation?.subscribe((jobcardItems: any) => {\n setTimeout(() => {\n this.calculTotalDuration();\n }, 300);\n })\n );\n this.subscriptions.push(\n this.updatePipTravel?.subscribe((isTravelPip: boolean) => {\n if (isTravelPip) {\n this.refreshTravel();\n }\n })\n );\n\n if (!environment.isIveco) {\n // PIP travel for item code select field\n //TODO(Matteo) ignorare RemoveYaml activities\n\n // this.extraOperationService.getOtherItems({}).subscribe((items) => {\n // items = items\n // .sort((a, b) => (a.code < b.code ? -1 : a.code > b.code ? 1 : 0))\n // .filter(\n // (op: ExtraOperation) => op.type === this.otherWorkshopType.Travel\n // );\n // this.extraOperationsFiltered = [...items];\n // });\n }\n this.permissionService\n .hasPermissions([Permission.NoReordering])\n .subscribe((noReordering) => {\n this.noReordering = noReordering;\n });\n if (environment.isIveco) {\n this.maxLength = 100;\n this.activityNameLength = 1000;\n } else {\n this.maxLength = 1000;\n }\n this.alertMessage = Util.stringFormat(\n $localize`Maximum input character limit [0] reached`,\n this.activityNameLength\n );\n }\n\n refreshTravel() {\n this.travelArray = this.appointment?.jobcard?.jobcardTravels;\n this.travelArray.sort((a, b) => (a.id < b.id ? -1 : 1));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // 367073 - Removed, cause BUG in DMS...\n //this.appointment.jobcard.jobcardItems = this.checkWarrantyDetails.jobcard.jobcardItems;\n if (\n this.nbMaintenances > 0 &&\n this.nbUpdatedMaintenances > 0 &&\n this.nbMaintenances === this.nbUpdatedMaintenances &&\n !this.maintenancesUpdated\n ) {\n this.filterJobcardItems();\n this.updateOperationsMaintenances();\n }\n this.calculTotalDuration();\n\n const defaultBay = changes['defaultBay'];\n if (defaultBay && !defaultBay.firstChange) {\n this.jobcardItems.forEach((item) => {\n if (!item.workshopBayId) {\n item.workshopBayId = this.defaultBay.id;\n this.assignTechnicianBay(item, this.defaultBay.id);\n }\n });\n }\n\n if (changes.jobcardItems) {\n this.jobcardItems.forEach((jobcardItem) => {\n this.setClockedTechnicians(jobcardItem);\n jobcardItem.checklist =\n jobcardItem.checklistInstances?.length > 0\n ? { ...jobcardItem.checklistInstances[0] }\n : { id: null, checklistTemplateId: null };\n });\n }\n\n if (changes.workshopBays && !environment.isIveco) {\n this.remoteWorkshopBay = this.workshopBays?.find(\n (bay) => bay.type === 'Remote'\n );\n this.isBreakDownAppointment =\n this.newAppointmentService?.appointmentInCreation?.workshopBayId ===\n this.remoteWorkshopBay?.id;\n }\n\n if (\n (changes.appointments || changes.workshopBays) &&\n !environment.isIveco\n ) {\n this.fetchPartsAvailability();\n }\n if (\n environment.isIveco &&\n this.workshop?.countryId === 69 &&\n this.workshop.country === ('FRANCE' || 'FR')\n ) {\n this.isCvFrance = true;\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription?.unsubscribe());\n }\n\n updateOperationsMaintenances() {\n //fix con any per incompatibilià campi. componente non piu utilizzato\n const maintenances: any = this.jobcardItems.filter((item) => item.isMaintenance);\n this.smartViewService\n .updateKitsPartsMaintenances({ jobcardItem: maintenances })\n .subscribe((updatedMaintenances) => {\n updatedMaintenances.forEach((updatedMaintenance) => {\n this.jobcardItems\n .filter((jobcardItem) => jobcardItem.isMaintenance)\n .find((maintenance) => maintenance.code === updatedMaintenance.code)\n .operations.forEach((operation) => {\n const updatedOperation = updatedMaintenance.operations.find(\n (op) => (op.label = operation.label)\n );\n operation.isKitComplete = updatedOperation.isKitComplete;\n operation.useKitPart = updatedOperation.useKitPart;\n\n if (operation.parts) {\n operation.parts.forEach((part) => {\n if (!operation.id && part.selected === undefined) {\n if (\n part.part.isKit &&\n operation.isKitComplete &&\n operation.useKitPart &&\n !this.environment.isIveco\n ) {\n part.selected = true;\n } else if (!part.part.isKit && !operation.useKitPart) {\n const selectedPart = operation.parts.find(\n (p) => p.selected\n );\n if (!selectedPart && !this.environment.isIveco) {\n operation.parts[0].selected = true;\n }\n } else {\n part.selected = false;\n }\n }\n });\n // Put Selected as false for all other parts if selected is undefined\n operation.parts.forEach(\n (part) =>\n (part.selected =\n part.selected === undefined ? false : part.selected)\n );\n }\n if (operation.consumables && operation.consumables.length > 0) {\n const selectedCons = operation.consumables.find(\n (cons) => cons.selected\n );\n if (!selectedCons && !this.environment.isIveco) {\n operation.consumables[0].selected = true;\n }\n }\n });\n });\n this.maintenancesUpdated = true;\n this.appointmentService.setItemsWeight(this.jobcardItems);\n });\n }\n\n /**\n * Add a new activity (jobcard item) to the list.\n */\n addActivity(isBreakDownAppointment: boolean, activityStatus: string) {\n this.jobcardItemExist = false;\n if (this.newActivity) {\n const creationData = this.newAppointmentService.getCreationData();\n const technicians: JobcardItemTechnician[] = [];\n const technicianId: string =\n this.newAppointmentService.appointmentInCreation?.workshopUserId ||\n this.getTechLead(this.newAppointmentService.appointmentInCreation);\n // For AG in booking view have pending assign\n if (technicianId && technicianId !== '' && environment.isIveco) {\n technicians.push({\n workshopUserId: technicianId,\n startDate: this.newAppointmentService.appointmentInCreation?.receptionDate,\n });\n } else if (!environment.isIveco && creationData?.workshopUserId) {\n const date = creationData.startDateTime\n ? creationData.startDateTime\n : creationData.startDate;\n technicians.push({\n workshopUserId: creationData.workshopUserId,\n startDate: date.toISOString(),\n estimatedDuration: 0,\n });\n }\n\n const newJobcardItem: JobcardItemCollapsable = {\n name: this.newActivity,\n operations: [],\n jobcardItemAttachments: [],\n jobcardItemStatus: [],\n collapsed: true,\n type: 'free',\n visible: true,\n deferred: false,\n deleted: false,\n technicians,\n workshopBayId: this.defaultBay?.id,\n checklist: { id: null, checklistTemplateId: null },\n checklistInstances: [],\n jobcardItemSpells: [],\n tempJId: (\n Date.now().toString(36) + Math.random().toString(36).substr(2, 5)\n ).toUpperCase(),\n estimatedDuration: 0,\n officialTime: 0,\n };\n newJobcardItem.jobcardItemSpells.push({\n weight: 1,\n technicians,\n estimatedDuration: 0,\n startDate: this.newAppointmentService?.appointmentInCreation?.receptionDate\n ? this.newAppointmentService?.appointmentInCreation?.receptionDate\n : new Date().toISOString(),\n });\n this.setStatus(newJobcardItem);\n if (this.defaultBay?.id) {\n newJobcardItem.jobcardItemSpells[0].workshopBayId = this.defaultBay.id;\n this.assignTechnicianBay(newJobcardItem, this.defaultBay.id);\n }\n newJobcardItem.jobcardItemStatus = [];\n this.addConfiguration(\n isBreakDownAppointment,\n newJobcardItem,\n activityStatus\n );\n this.jobcardItems.forEach((jb) => {\n if (jb.name === newJobcardItem.name) {\n this.jobcardItemExist = true;\n }\n });\n if (!newJobcardItem?.operations) {\n newJobcardItem.operations = [];\n }\n const defaultOperation = this.srtOperations.find(\n (x) => x?.isDefault === true\n );\n if (environment.isIveco && defaultOperation) {\n newJobcardItem.operations.push({\n code: defaultOperation?.code,\n manufacturer: defaultOperation?.manufacturer,\n label: defaultOperation?.label,\n durationTime: 0,\n officialTime: defaultOperation?.officialTime,\n isDefault: defaultOperation?.isDefault,\n parts: [],\n srt: false,\n weight: 1,\n });\n }\n if (!this.jobcardItemExist) {\n if (environment.isIveco && this.supplierCode?.length > 0) {\n newJobcardItem.supplierCode = this.supplierCode[0].code;\n }\n this.jobcardItems.push(newJobcardItem);\n this.newActivity = null;\n this.lastActivityIndex = this.jobcardItems.indexOf(newJobcardItem);\n if (!this.isKit) {\n newJobcardItem.totalPrice = this.newAppointmentService.fullOperationPrice(\n newJobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n }\n this.filterJobcardItems();\n }\n this.appointmentService.setItemsWeight(this.jobcardItems);\n } else {\n this.newActivity = '';\n }\n }\n\n addConfiguration(\n isBreakDownAppointment: boolean,\n newJobcardItem: JobcardItemCollapsable,\n activityStatus: string\n ) {\n if (isBreakDownAppointment) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n } else if (\n undefined === activityStatus ||\n activityStatus === 'yesToDoStatus'\n ) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'yesNewStatusOnly') {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.New,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'outOfHoursNewStatus' && this.outOfHour) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'outOfHoursNewStatus' && !this.outOfHour) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.New,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'outOfHoursNo' && this.outOfHour) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'outOfHoursNo' && !this.outOfHour) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n this.newActivity = '';\n this.yesToDoStatus = false;\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n }\n }\n\n setStatus(newJobcardItem: JobcardItem) {\n // Manage new Activities\n // If appointment creation => Status = new\n // then is not a new Activity, and we have the client validation\n // Otherwise, we need to confirm the new activity\n const customerName = this.status?.customerCompanyUser\n ? this.status?.customerCompanyUser?.firstName\n ? this.status?.customerCompanyUser?.firstName +\n ' ' +\n this.status?.customerCompanyUser?.lastName\n : this.status?.customerCompanyUser?.lastName\n : null;\n if (this.status) {\n switch (this.status?.status) {\n case AppointmentStatus.StatusEnum.New:\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = true;\n newJobcardItem.agreementCustomerName = customerName;\n break;\n case AppointmentStatus.StatusEnum.Schedule:\n case AppointmentStatus.StatusEnum.AppointmentPrepared:\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = true;\n break;\n default:\n newJobcardItem.isExtraActivity = true;\n newJobcardItem.isCustomerAgreed = false;\n break;\n }\n } else {\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = true;\n newJobcardItem.agreementCustomerName = customerName;\n }\n }\n\n editName(jobcardItem: JobcardItemCollapsable, event: Event) {\n //event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.title = $localize`Edit name`;\n modalRef.componentInstance.field = $localize`Name`;\n modalRef.componentInstance.value = jobcardItem.name;\n modalRef.componentInstance.isActivityName = true;\n modalRef.componentInstance.JobcardItems = this.jobcardItems;\n modalRef.result.then(\n (newValue) => {\n jobcardItem.name = newValue.value;\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n searchPart = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n tap(() => (this.searchingPart = true)),\n switchMap((term) => {\n if (term.length < 3) {\n return of([]);\n }\n // const params: GetPartsRequestParams = {\n // noLoader: true,\n // name: term.toUpperCase(),\n // start: 0,\n // limit: 100,\n // };\n //TODO Matteo release 2 work\n //TODO(Matteo) ignorare RemoveYaml activities\n // return this.partService.getParts(params).pipe(catchError(() => of([]))\n // );\n return null;\n }),\n tap(() => (this.searchingPart = false))\n );\n\n resultFormatPartValue(value: Part): string {\n return (\n value.code +\n (value.description ? (value.code ? ' - ' : '') + value.description : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '')\n );\n }\n\n inputFormatPartValue(value: Part | any): string {\n if (value.id) {\n return (\n value.code +\n (value.description\n ? (value.code ? ' - ' : '') + value.description\n : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '')\n );\n } else {\n return value;\n }\n }\n\n partChanged(data: Part, i: number): void {\n this.jobcardItems.forEach((item, index) => {\n if (i === index) {\n if (data.id) {\n item.causalPartCode = data.code;\n } else {\n item.causalPartCode = this.otherCausalPart[i];\n }\n }\n });\n }\n\n removeKitActivity(\n jobcardItem: JobcardItemCollapsable,\n index: number,\n event: Event\n ) {\n // event.stopPropagation();\n if (this.isKit) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const modalComponent = modalRef.componentInstance as ConfirmModalComponent;\n modalComponent.title = $localize`Remove activity`;\n modalComponent.message = Util.stringFormat(\n $localize`Are you sure you want to remove this activity ([0]) from the current kit?`,\n jobcardItem.name\n );\n modalComponent.action = $localize`Delete`;\n modalRef.result.then(\n (confirmed) => {\n if (confirmed === true) {\n this.jobcardItems.splice(index, 1);\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n }\n\n updatesPartBySpanner(jobcardItem: JobcardItemCollapsable, event: Event) {\n //event.stopPropagation();\n let nbPartAdded = 0;\n if (this.workshop.enableCsps) {\n jobcardItem.operations?.forEach((op) => {\n op.parts?.forEach((opePart) => {\n if (opePart.selected === undefined || opePart.selected) {\n this.jobcardPartsBacklog.push({\n jobcardItemId: jobcardItem.id,\n partId: Number(opePart.part.id),\n appointmentId: this.newAppointmentService?.appointmentInCreation?.id,\n quantity: opePart.quantity,\n partStatus: 'To be ordered',\n customerCompanyId: this.newAppointmentService?.appointmentInCreation\n ?.customerCompany?.id,\n workshopId: this.workshop.id,\n });\n nbPartAdded++;\n }\n });\n jobcardItem.jobcardPartsBacklog = this.jobcardPartsBacklog;\n });\n this.jobcardPartsBacklog = [];\n if (this.isWorkfile || this.appointment.id) {\n this.editApptMent();\n this.toastrService.success(\n $localize`The part(s) has/have been added to the backlog`\n );\n }\n if (nbPartAdded > 0 && !this.appointment.id) {\n this.toastrService.success(\n $localize`The part(s) has/have been added to the backlog, please save the appointment to confirm the action`\n );\n } else if (nbPartAdded === 0) {\n this.toastrService.warning($localize`No part was added to the backlog`);\n }\n }\n }\n\n openOperationModal(\n jobcardItem: JobcardItemCollapsable,\n operation?: Operation\n ) {\n if (\n jobcardItem.isMaintenance ||\n jobcardItem?.type === JobcardItem.TypeEnum.NextMaintenance ||\n jobcardItem?.type === JobcardItem.TypeEnum.ProposedMaintenance\n ) {\n this.editMaintenanceModal(operation);\n } else {\n this.editOperationModal(jobcardItem, operation);\n }\n }\n openMaintenanceActivityModal(jobcardItem: JobcardItemCollapsable) {\n if (\n jobcardItem.isMaintenance ||\n jobcardItem?.type === JobcardItem.TypeEnum.NextMaintenance ||\n jobcardItem?.type === JobcardItem.TypeEnum.ProposedMaintenance\n ) {\n this.editMaintenanceActivityModal(jobcardItem);\n }\n }\n editMaintenanceActivityModal(jobcardItem: JobcardItemCollapsable) {\n const modalRef = this.modalService.open(\n EditMaintenanceActivityModalComponent,\n {\n size: 'lg',\n }\n );\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.result.then(\n (updatedJobcardItem: JobcardItemCollapsable) => {\n if (updatedJobcardItem) {\n jobcardItem.operations = updatedJobcardItem.operations;\n jobcardItem.isMaintenance = true;\n updatedJobcardItem?.operations?.forEach((editedOperation) => {\n const kitPart = editedOperation?.parts?.find(\n (op) => op?.part?.isKit\n )?.part;\n this.jobcardItems\n ?.filter((item) =>\n [\n JobcardItem.TypeEnum.NextMaintenance,\n JobcardItem.TypeEnum.ProposedMaintenance,\n ].includes(item.type)\n )\n ?.forEach((maintenance) => {\n maintenance.operations?.forEach((ope) => {\n // Set on each Ope where the Kit is present, the boolean if part is used or not\n if (\n ope.isKitComplete &&\n ope.parts &&\n ope.parts\n .filter((operationPart) => operationPart.part.isKit)\n ?.find(\n (operationPart) =>\n operationPart.part.code === kitPart.code\n )\n ) {\n ope.useKitPart = editedOperation.useKitPart;\n }\n });\n });\n });\n if (!environment.isIveco) {\n this.fetchPartsAvailability();\n }\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n editOperationModal(\n jobcardItem: JobcardItemCollapsable,\n operation?: Operation\n ) {\n if (!environment.isIveco && jobcardItem.type === 'pip') {\n const modalRef = this.modalService.open(ConfirmModalComponent, {\n size: 'md',\n backdrop: 'static',\n });\n modalRef.componentInstance.title = $localize`Disclaimer`;\n modalRef.componentInstance.message = $localize`Changing the contents of the PiP will cause the claim to be potentially rejected.`;\n modalRef.componentInstance.action = $localize`Continue`;\n modalRef.result.then(\n () => {\n this.openOperationalModal(jobcardItem, operation);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n } else {\n this.openOperationalModal(jobcardItem, operation);\n this.setEnableAutoWarranty(jobcardItem);\n }\n }\n\n openOperationalModal(\n jobcardItem: JobcardItemCollapsable,\n operation?: Operation\n ) {\n let index: number;\n if (operation) {\n index = jobcardItem.operations?.indexOf(operation);\n }\n\n const modalRef = this.modalService.open(EditOperationModalComponent, {\n size: 'lg',\n });\n if (operation) {\n modalRef.componentInstance.operation = JSON.parse(\n JSON.stringify(operation)\n );\n }\n\n modalRef.componentInstance.jobcard = jobcardItem;\n modalRef.componentInstance.appointment = this.appointment;\n modalRef.componentInstance.srtOperations = this.srtOperations;\n modalRef.componentInstance.availableParts = this.parts;\n modalRef.componentInstance.partsReturn = this.partsReturn;\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.result.then(\n (response) => {\n if (!jobcardItem.operations) {\n jobcardItem.operations = [];\n }\n if (response.operation.code || response.operation.label) {\n if (index > -1) {\n jobcardItem.operations.splice(index, 1, response.operation);\n } else {\n // since srt operation are not flagged correctly, setup manually (since US AG #336734)\n if (!environment.isIveco && response.operation.srt !== false) {\n response.operation.srt = true;\n }\n jobcardItem.operations.push(response.operation);\n }\n this.newAppointmentService.recalculateGlobalDurations();\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPrice(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n }\n response.operationsList.forEach((operationResult: Operation) => {\n // Create the new operations coming from SRT\n if (operationResult.code || operationResult.label) {\n const presentOperation = jobcardItem.operations.find(\n (oldOperation) => oldOperation.code === operationResult.code\n );\n if (!presentOperation) {\n jobcardItem.operations.push(operationResult);\n }\n this.newAppointmentService.recalculateGlobalDurations();\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPrice(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n // SetDelivery Date based on Operation Hours\n }\n });\n if (!environment.isIveco) {\n this.newAppointmentService.isOperationUpdated = true;\n this.fetchPartsAvailability();\n const creationData = this.newAppointmentService.getCreationData();\n if (creationData?.assignActivities) {\n this.updateTechEstimation(jobcardItem);\n }\n if (this.newAppointmentService?.appointmentInCreation?.id) {\n // For AG Not Updating Delivery date when updating operation\n this.updateTechEstimation(jobcardItem);\n setTimeout(() => {\n this.updateDeliveryDate();\n }, 600);\n }\n }\n this.newAppointmentService.refreshParts(jobcardItem);\n this.newAppointmentService.arePartsAvailable(\n this.jobcardItems,\n this.workshop\n );\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n updateTechEstimation(jobcardItem: JobcardItemCollapsable) {\n if (jobcardItem?.jobcardItemSpells?.length) {\n jobcardItem?.jobcardItemSpells?.forEach((spell: JobcardItemSpell) => {\n if (\n spell?.estimatedDuration &&\n spell.technicians?.length === 1 &&\n spell.technicians?.[0]?.estimatedDuration < 1\n ) {\n spell.technicians[0].estimatedDuration = spell.estimatedDuration;\n }\n });\n }\n }\n\n updateDeliveryDate() {\n const receptionDate =\n this.newAppointmentService?.appointmentInCreation?.receptionDate ??\n moment(new Date()).toISOString();\n const deliveryDate = this.newAppointmentService.getDeliveryDate(\n receptionDate,\n this.newAppointmentService?.appointmentInCreation?.jobcard,\n this.workspaceTimeService.periods,\n this.workspaceTimeService\n );\n if (\n moment(this.newAppointmentService.appointmentInCreation.deliveryDate).isBefore(\n moment(deliveryDate)\n ) &&\n moment(receptionDate).isAfter(moment(deliveryDate))\n ) {\n this.newAppointmentService.appointmentInCreation.deliveryDate = deliveryDate.toISOString();\n }\n }\n\n editMaintenanceModal(operation?: Operation) {\n const modalRef = this.modalService.open(EditMaintenanceModalComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.operation = operation;\n\n modalRef.result.then(\n (editedOperation: Operation) => {\n if (editedOperation) {\n operation.parts = editedOperation.parts;\n operation.consumables = editedOperation.consumables;\n operation.useKitPart = editedOperation.useKitPart;\n const kitPart = editedOperation.parts.find((op) => op.part.isKit)\n .part;\n this.jobcardItems\n .filter((item) =>\n [\n JobcardItem.TypeEnum.NextMaintenance,\n JobcardItem.TypeEnum.ProposedMaintenance,\n ].includes(item.type)\n )\n ?.forEach((maintenance) => {\n maintenance.operations.forEach((ope) => {\n // Set on each Ope where the Kit is present, the boolean if part is used or not\n if (\n ope.isKitComplete &&\n ope.parts &&\n ope.parts\n .filter((operationPart) => operationPart.part.isKit)\n ?.find(\n (operationPart) =>\n operationPart.part.code === kitPart.code\n )\n ) {\n ope.useKitPart = editedOperation.useKitPart;\n }\n if (!this.environment.isIveco) {\n ope.parts?.forEach((opPart) => {\n if (\n (opPart.part.isKit &&\n ope.isKitComplete &&\n ope.useKitPart) ||\n (!opPart.part.isKit && !ope.useKitPart)\n ) {\n opPart.selected = true;\n } else {\n opPart.selected = false;\n }\n });\n }\n });\n });\n if (!environment.isIveco) {\n this.fetchPartsAvailability();\n }\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n removeOperation(jobcardItem: JobcardItemCollapsable, operation: Operation) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Operation deletion`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to delete the operation \"[0]\"?`,\n operation.label\n );\n confirmModal.action = $localize`Delete`;\n modalRef.result.then(\n () => {\n jobcardItem.operations.splice(\n jobcardItem.operations.indexOf(operation),\n 1\n );\n this.newAppointmentService.recalculateGlobalDurations();\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPrice(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n this.appointmentService.setItemsWeight([jobcardItem]);\n if (!environment.isIveco) {\n this.fetchPartsAvailability();\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n /**\n * Defer a jobcard item from the list.\n *\n * @param jobcardItem Jobcard item to defer.\n */\n openDeferActivityModal(jobcardItem: JobcardItem, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(DeferActivityModalComponent);\n const deferModal = modalRef.componentInstance as DeferActivityModalComponent;\n deferModal.title = $localize`Defer an activity`;\n deferModal.reason = $localize`Reason for deferring`;\n deferModal.message = $localize`defer activity`;\n deferModal.jobcardItem = jobcardItem;\n deferModal.jobcardItems = this.jobcardItems;\n deferModal.deferringDate = moment(new Date()).add(3, 'months').toDate();\n modalRef.result.then(\n (managedItem: JobcardItem) => {\n if (\n managedItem?.deleted &&\n managedItem?.type?.includes('Maintenance')\n ) {\n if (!this.newAppointmentService.appointmentInCreation.jobcard.jobcardItemDeleted) {\n this.newAppointmentService.appointmentInCreation.jobcard.jobcardItemDeleted = [];\n }\n this.newAppointmentService.appointmentInCreation.jobcard.jobcardItemDeleted.push({\n code: managedItem.code,\n name: managedItem.name,\n type: managedItem.type,\n jobcardId: this.newAppointmentService.appointmentInCreation.jobcard?.id,\n });\n }\n\n // set defered activity to smart view as well\n\n if (\n this.newAppointmentService.appointmentInCreation.vehicle?.id &&\n managedItem?.deferred &&\n this.newAppointmentService.appointmentsInCreationByVehicle.length\n ) {\n if (this.newAppointmentService?.appointmentInCreation?.id) {\n const findIndex = this.newAppointmentService.appointmentsInCreationByVehicle.findIndex(\n (app: AppointmentDto) =>\n app.id === this.newAppointmentService.appointmentInCreation.id\n );\n if (findIndex > -1) {\n this.newAppointmentService.appointmentsInCreationByVehicle.splice(\n findIndex,\n 1,\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n } else {\n this.newAppointmentService.appointmentsInCreationByVehicle.push(\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n }\n } else {\n const appointmentsInCreationByVehicleChecked: any = [];\n const appointmentsInCreationByVehicleAny: any = this.newAppointmentService.appointmentsInCreationByVehicle[0];\n appointmentsInCreationByVehicleAny?.jobcard?.jobcardItems.forEach((act: any) => {\n appointmentsInCreationByVehicleChecked.push(act);\n });\n this.newAppointmentService.appointmentsInCreationByVehicle = [];\n this.newAppointmentService.appointmentsInCreationByVehicle.push(\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n const appointmentsInCreationByVehicleAnyPostRefresh: any = this.newAppointmentService.appointmentsInCreationByVehicle[0];\n appointmentsInCreationByVehicleChecked.forEach((acti: any) => {\n if(!appointmentsInCreationByVehicleAnyPostRefresh?.jobcard?.jobcardItems.some((ji: any) => ji.name === acti.name)) {\n appointmentsInCreationByVehicleAnyPostRefresh?.jobcard?.jobcardItems.unshift(acti);\n };\n });\n }\n } else if (\n this.newAppointmentService.appointmentInCreation.vehicle?.id &&\n managedItem?.deferred &&\n !this.newAppointmentService.appointmentsInCreationByVehicle.length\n ) {\n this.newAppointmentService.appointmentsInCreationByVehicle.push(\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n }\n\n this.newAppointmentService.recalculateGlobalDurations();\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPrice(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n this.filterJobcardItems();\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n getClientAgreement(jobcardItem: JobcardItem, event: Event): void {\n //event.stopPropagation();\n const modalRef = this.modalService.open(\n ClientVerbalAgreementModalComponent\n );\n modalRef.componentInstance.customer = {\n lastName: jobcardItem.agreementCustomerName,\n };\n modalRef.componentInstance.isCustomerAgreed = jobcardItem.isCustomerAgreed;\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.result.then(\n (customer) => {\n if (!jobcardItem.jobcardItemStatus) {\n jobcardItem.jobcardItemStatus = [];\n }\n if (customer === false) {\n jobcardItem.agreementCustomerName = null;\n jobcardItem.isCustomerAgreed = false;\n\n jobcardItem.jobcardItemStatus.unshift({\n status: JobcardItemStatus.StatusEnum.New,\n time: moment(new Date()).toISOString(),\n workshopUserId: this.user.id,\n });\n\n // Remove the previously saved Service Advisor approval\n const itemIndex = this.newAppointmentService.approvedActivities.findIndex(\n (item) => item.id === jobcardItem.id\n );\n if (itemIndex > -1) {\n this.newAppointmentService.approvedActivities.splice(itemIndex, 1);\n }\n } else {\n if (typeof customer === 'string') {\n jobcardItem.agreementCustomerName = customer;\n } else {\n jobcardItem.agreementCustomerName = `${customer.firstName || ''} ${\n customer.lastName || ''\n }`.trim();\n }\n jobcardItem.isCustomerAgreed = true;\n jobcardItem.visible = true;\n if (jobcardItem.jobcardItemStatus[0].status === 'new') {\n jobcardItem.jobcardItemStatus.unshift({\n status: JobcardItemStatus.StatusEnum.Todo,\n duration: 0,\n time: new Date(moment().format()).toISOString(),\n jobcardItemId: jobcardItem.id,\n });\n }\n\n // Save the Service Advisor approval\n if (this.newAppointmentService.appointmentInCreation?.id && jobcardItem.id) {\n const originalItem = this.newAppointmentService.basedAppointmentInCreation?.jobcard?.jobcardItems?.find(\n (ji: any) => ji.id === jobcardItem.id\n );\n if (originalItem?.jobcardItemStatus[0].status === 'new') {\n this.newAppointmentService.approvedActivities.push(jobcardItem);\n }\n }\n }\n\n if (!jobcardItem.jobcardItemCustomerStatus) {\n jobcardItem.jobcardItemCustomerStatus = [];\n }\n\n jobcardItem.jobcardItemCustomerStatus.push({\n action: jobcardItem.isCustomerAgreed\n ? JobcardItemCustomerStatus.ActionEnum.Approve\n : JobcardItemCustomerStatus.ActionEnum.Decline,\n actionDateTime: new Date().toISOString(),\n actionType: JobcardItemCustomerStatus.ActionTypeEnum.Offline,\n actionPerformedBy: this.user?.displayedName,\n });\n\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n this.updateStatus.next('');\n // If its in workfile screen then update jobcardItem\n if (jobcardItem?.id && this.isWorkfile) {\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItem({ id: jobcardItem.id, jobcardItem })\n // .subscribe((ji) => {\n // this.replaceActivity(ji);\n // this.jobcardItemsChange.emit(this.jobcardItems);\n // });\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n onJobcardItemDrop(event: CdkDragDrop) {\n if (event.previousContainer === event.container) {\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n this.appointmentService.setItemsWeight(this.jobcardItems);\n if (this.jobcardItems.every((item) => item.id)) {\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItems({\n // jobcardItem: this.jobcardItems,\n // view: 'activities',\n // })\n // .subscribe();\n }\n }\n\n changeStartDate(jobcardItem: JobcardItem, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(DateTimePickerModalComponent);\n modalRef.componentInstance.title = $localize`Change date`;\n modalRef.componentInstance.isDeliveryAndReceptionScreen = false;\n if (jobcardItem.startDate) {\n modalRef.componentInstance.date = jobcardItem.startDate;\n } else {\n modalRef.componentInstance.date = this.newAppointmentService.appointmentInCreation.receptionDate;\n }\n modalRef.componentInstance.minDate = this.newAppointmentService.appointmentInCreation.receptionDate;\n modalRef.componentInstance.maxDate = this.newAppointmentService.appointmentInCreation.deliveryDate;\n modalRef.result.then(\n (responsedata) => {\n jobcardItem.startDate = responsedata.changeDate;\n\n jobcardItem.jobcardItemSpells.forEach((spell) => {\n if (\n moment(spell.startDate).isBefore(\n moment(this.newAppointmentService.appointmentInCreation.receptionDate)\n )\n ) {\n spell.startDate = this.newAppointmentService.appointmentInCreation.receptionDate;\n spell.technicians.forEach((tech) => {\n if (\n moment(tech.startDate).isBefore(\n moment(this.newAppointmentService.appointmentInCreation.receptionDate)\n )\n ) {\n tech.startDate = this.newAppointmentService.appointmentInCreation.receptionDate;\n }\n });\n }\n });\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n hideActivityToCustomer(jobcardItem: JobcardItem, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Hiding activity`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to hide the activity \"[0]\" from the customer view?`,\n jobcardItem.name\n );\n confirmModal.action = $localize`Hide`;\n modalRef.result.then(\n () => {\n jobcardItem.visible = false;\n if (jobcardItem?.id) {\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItem({ id: jobcardItem.id, jobcardItem })\n // .subscribe();\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n showActivityToCustomer(jobcardItem: JobcardItem, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Show activity`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to show the activity \"[0]\" in the customer view?`,\n jobcardItem.name\n );\n confirmModal.action = $localize`Show`;\n modalRef.result.then(\n () => {\n jobcardItem.visible = true;\n if (jobcardItem?.id) {\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItem({ id: jobcardItem.id, jobcardItem })\n // .subscribe();\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n searchDefectCode = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n map((term) =>\n term && term.length > 1\n ? this.defects\n .map((o) => o.code + ' - ' + o.label)\n .filter(\n (v) =>\n v.toLowerCase().indexOf(term.toLocaleLowerCase()) > -1 ||\n v.replace(/\\s/g, '').indexOf(term.toLocaleLowerCase()) > -1\n )\n .splice(0, 150)\n : []\n )\n );\n searchsupplierCode = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n map((term) =>\n term && term.length > 1\n ? this.supplierCode\n .map((o) => o.code + ' - ' + o.description)\n .filter(\n (v) =>\n v.toLowerCase().indexOf(term.toLocaleLowerCase()) > -1 ||\n v.replace(/\\s/g, '').indexOf(term.toLocaleLowerCase()) > -1\n )\n .splice(0, 150)\n : []\n )\n );\n\n openExtraOperationModal(\n jobcardItem: JobcardItemCollapsable,\n extraOperation?: ExtraOperation\n ) {\n let index: number;\n if (extraOperation) {\n index = jobcardItem.extraOperations?.indexOf(extraOperation);\n }\n const modalRef = this.modalService.open(EditWorkshopModalComponent);\n if (extraOperation) {\n modalRef.componentInstance.extraOperation = JSON.parse(\n JSON.stringify(extraOperation)\n );\n }\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.componentInstance.srtExtraOperations = this.srtExtraOperations;\n\n modalRef.result.then(\n (editedExtraOperation: ExtraOperation) => {\n if (!jobcardItem.extraOperations) {\n jobcardItem.extraOperations = [];\n }\n if (editedExtraOperation) {\n editedExtraOperation.id = null;\n if (index > -1) {\n jobcardItem.extraOperations.splice(index, 1, editedExtraOperation);\n } else {\n jobcardItem.extraOperations.push(editedExtraOperation);\n }\n }\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPrice(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n removeExtraOperation(\n jobcardItem: JobcardItemCollapsable,\n extraOperation: ExtraOperation\n ) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Other workshop deletion`;\n confirmModal.message = $localize`Are you sure you want to delete this other workshop?`;\n confirmModal.action = $localize`Delete`;\n modalRef.result.then(\n () => {\n jobcardItem.extraOperations.splice(\n jobcardItem.extraOperations.indexOf(extraOperation),\n 1\n );\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPrice(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n getTitle(jobcardItem: JobcardItem, operation: Operation) {\n if (jobcardItem.type === JobcardItem.TypeEnum.Pip) {\n return operation.code + ' - ' + $localize`Level` + ' ' + operation.label;\n } else {\n return operation.code\n ? operation.code +\n (operation.label ? ' - ' + operation.label : '') +\n (operation.manufacturer ? '-' + operation.manufacturer : '')\n : operation.label;\n }\n }\n\n getTitleExtraOperation(operation: ExtraOperation) {\n switch (operation.type) {\n case ExtraOperation.TypeEnum.ExtraCharges:\n return $localize`Extra Charges`;\n case ExtraOperation.TypeEnum.Travel:\n return $localize`Travel`;\n case ExtraOperation.TypeEnum.Freight:\n return $localize`Freight`;\n case ExtraOperation.TypeEnum.Sublet: {\n if (environment.isIveco) {\n return $localize`Sublet`;\n } else {\n return $localize`External Work`;\n }\n }\n case ExtraOperation.TypeEnum.Material:\n return $localize`Material`;\n }\n return null;\n }\n\n addKit(isBreakDownAppointment: boolean, activityStatus: string) {\n if (this.newKit) {\n const kit: Kit = JSON.parse(JSON.stringify(this.newKit));\n const missingOpes: Operation[] = [];\n const items: JobcardItemCollapsable[] = [];\n kit.jobcardItems.forEach((jobcardItem) => {\n jobcardItem.tempJId = (\n Date.now().toString(36) + Math.random().toString(36).substr(2, 5)\n ).toUpperCase();\n const newJobcardItem: JobcardItemCollapsable = { ...jobcardItem };\n const newCheckList = newJobcardItem.checklistInstances\n ? newJobcardItem.checklistInstances[0]?.checklistTemplateId\n : null;\n newJobcardItem.checklist = {\n id: null,\n checklistTemplateId: newCheckList,\n };\n newJobcardItem.checklistInstances = [\n {\n id: null,\n checklistTemplateId: newCheckList,\n },\n ];\n\n newJobcardItem.jobcardItemSpells = [];\n newJobcardItem.jobcardItemSpells.push({\n weight: 1,\n estimatedDuration: 0,\n technicians: [],\n startDate: this.newAppointmentService?.appointmentInCreation?.receptionDate\n ? this.newAppointmentService?.appointmentInCreation?.receptionDate\n : new Date().toISOString(),\n });\n\n if (this.defaultBay?.id) {\n newJobcardItem.jobcardItemSpells[0].workshopBayId = this.defaultBay.id;\n this.assignTechnicianBay(newJobcardItem, this.defaultBay.id);\n }\n\n const operations: Operation[] = [];\n this.setStatus(newJobcardItem);\n newJobcardItem.deferred = false;\n newJobcardItem.visible = true;\n newJobcardItem.estimatedDuration = 0;\n newJobcardItem.id = null;\n newJobcardItem.checklist = {\n id: null,\n checklistTemplateId:\n newJobcardItem.checklistInstances[0].checklistTemplateId,\n };\n newJobcardItem.checklistInstances = [\n {\n id: null,\n checklistTemplateId:\n newJobcardItem.checklistInstances[0].checklistTemplateId,\n },\n ];\n if (!newJobcardItem?.operations) {\n newJobcardItem.operations = [];\n }\n const defaultOperation = this.srtOperations.find(\n (x) => x?.isDefault === true\n );\n if (environment.isIveco && defaultOperation) {\n newJobcardItem.operations.push({\n code: defaultOperation?.code,\n manufacturer: defaultOperation?.manufacturer,\n label: defaultOperation?.label,\n durationTime: 0,\n officialTime: defaultOperation?.officialTime,\n isDefault: defaultOperation?.isDefault,\n parts: [],\n srt: false,\n weight: 1,\n });\n }\n if (newJobcardItem.operations) {\n newJobcardItem.operations.forEach((operation) => {\n if (environment.isIveco) {\n newJobcardItem.supplierCode = this.supplierCode[0].code;\n }\n operation.id = null;\n if (operation.parts) {\n operation.parts.forEach((p) => {\n p.id = null;\n });\n }\n\n if (operation.code && operation.srt) {\n const srtOperation = this.srtOperations.find(\n (srtOpe) => srtOpe.code === operation.code\n );\n if (srtOperation) {\n const ope: Operation = { ...operation, ...srtOperation };\n if (!ope.durationTime) {\n ope.durationTime = srtOperation.officialTime;\n }\n ope.officialTime = srtOperation.officialTime;\n ope.id = null;\n operations.push(ope);\n } else {\n missingOpes.push(operation);\n }\n } else {\n operations.push(operation);\n }\n });\n newJobcardItem.operations = operations;\n }\n if (newJobcardItem.extraOperations) {\n newJobcardItem.extraOperations.forEach((extraOpe) => {\n extraOpe.id = null;\n });\n }\n\n newJobcardItem.jobcardItemStatus = [];\n this.addConfiguration(\n isBreakDownAppointment,\n newJobcardItem,\n activityStatus\n );\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n if (!newJobcardItem?.technicians) {\n newJobcardItem.technicians = [];\n }\n items.push(newJobcardItem);\n });\n\n if (missingOpes.length > 0) {\n this.toastrService.warning(\n $localize`Some operations have not been imported as they are not applicable to your vehicle.`\n );\n }\n this.jobcardItems.push(...items);\n this.newAppointmentService.recalculateGlobalDurations();\n this.appointmentService.setItemsWeight(this.jobcardItems);\n //126552 | Based this US commented below line. We can keep the kit also added becase once delete the added kit activity we are not have the kit info again to push to kits list\n /* this.kits.splice(\n this.kits.findIndex((k) => k.id === this.newKit.id),\n 1\n ); */\n this.newKit = null;\n }\n }\n\n kitDetails() {\n if (this.newKit) {\n const modalRef = this.modalService.open(KitDetailsModalComponent, {\n size: 'xl',\n });\n modalRef.componentInstance.kit = this.newKit;\n }\n }\n\n displayTravels(event: Event, jobcardItem: JobcardItem): void {\n //event.stopPropagation();\n const modalRef = this.modalService.open(TravelModalComponent, {\n backdrop: 'static',\n size: 'lg',\n });\n modalRef.componentInstance.travels = jobcardItem.travels;\n const technicians: JobcardItemTechnician[] = [];\n jobcardItem.technicians.forEach((technician) => {\n if (\n technicians\n .map((t) => t.workshopUserId)\n .indexOf(technician.workshopUserId) === -1\n ) {\n technicians.push(technician);\n }\n });\n modalRef.componentInstance.technicians = technicians;\n modalRef.result.then(\n (travels: JobcardTravel[]) => {\n jobcardItem.travels = travels;\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItem({ id: jobcardItem.id, jobcardItem })\n // .subscribe((j: JobcardItem) => {\n // this.replaceActivity(j);\n // this.calculTotalDuration();\n // this.updateCurrentItemStatus();\n // });\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n updateCurrentItemStatus() {\n this.jobcardItems.forEach((jobcardItem) => {\n jobcardItem.currentStatus = this.newAppointmentService.getCurrentItemStatus(\n jobcardItem\n );\n });\n }\n\n addFile(event: Event, jobcardItem: JobcardItemCollapsable): void {\n event.stopPropagation();\n const modalRef = this.modalService.open(AttachmentsModalComponent, {\n backdrop: 'static',\n size: 'xl',\n });\n modalRef.componentInstance.jobcardAttachments =\n jobcardItem.jobcardItemAttachments;\n modalRef.componentInstance.readonly =\n jobcardItem.currentStatus?.status === this.statusEnum.Invoiced;\n modalRef.componentInstance.activity = true;\n modalRef.componentInstance.azureFolder = `appointments/${this.appointmentId}/jobcard`;\n modalRef.result.then(\n (jobcardItemAttachments: JobcardAttachment[]) => {\n jobcardItem.jobcardItemAttachments = jobcardItemAttachments;\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItem({ id: jobcardItem.id, jobcardItem })\n // .subscribe((j: JobcardItem) => {\n // this.replaceActivity(j);\n // this.calculTotalDuration();\n // this.updateCurrentItemStatus();\n // this.cdRef.markForCheck();\n // });\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n // TODO(Marco) jobcardItemDto does not have all the fields of jobcardItem, temporarily put any\n changeSelectedPaymentType(jobcardItem: any) {\n this.paymentTypes.forEach((paymentType) => {\n if (paymentType.id === jobcardItem.paymentTypeId) {\n jobcardItem.paymentType = paymentType;\n jobcardItem.paymentCode = paymentType.code;\n\n if (\n environment.isIveco &&\n (jobcardItem.type === JobcardItem.TypeEnum.ProposedMaintenance ||\n jobcardItem.type === JobcardItem.TypeEnum.NextMaintenance)\n ) {\n const subType = paymentType.paymentSubTypes.find(\n (s) => s?.type === 'M'\n );\n if (subType) {\n jobcardItem.paymentSubcode = subType?.code;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubTypeId = subType?.id;\n } else {\n jobcardItem.paymentSubTypeId = paymentType.paymentSubTypes[0]?.id;\n jobcardItem.paymentSubType = paymentType.paymentSubTypes[0];\n jobcardItem.paymentSubcode = paymentType.paymentSubTypes[0]?.code;\n }\n } else {\n jobcardItem.paymentSubTypeId = paymentType.paymentSubTypes[0]?.id;\n jobcardItem.paymentSubType = paymentType.paymentSubTypes[0];\n jobcardItem.paymentSubcode = paymentType.paymentSubTypes[0]?.code;\n }\n // hidden by task 372202\n // if (paymentType.type === PaymentType.TypeEnum.Retail) {\n // jobcardItem.isDiscountAvailable = true;\n // } else {\n // jobcardItem.isDiscountAvailable = false;\n // jobcardItem.discountTypeId = null;\n // }\n if (!environment.isIveco) {\n jobcardItem.warrantyCoverage =\n paymentType.type === PaymentType.TypeEnum.Warranty;\n this.setWarrantyType(jobcardItem);\n } else if (paymentType.type === PaymentType.TypeEnum.Warranty) {\n this.getWarrantyServicesForDefect(jobcardItem, true);\n jobcardItem.serviceParticipation = 100;\n } else {\n jobcardItem.warrantyContract = null;\n jobcardItem.contractNumber = null;\n this.removeClientVerbalAgreementStatus(jobcardItem);\n }\n if (\n environment.isIveco &&\n paymentType.type === PaymentType.TypeEnum.Warranty\n ) {\n jobcardItem.authorizerName =\n jobcardItem.authorizerName ??\n this.newAppointmentService.getDefaultAuthorizerName(\n this.appointment?.salesOrganizationId,\n this.workshop\n ) ??\n null;\n } else {\n jobcardItem.authorizerName = null;\n }\n if (!jobcardItem.paymentSubTypeId) {\n jobcardItem.warrantyContract = null;\n jobcardItem.contractNumber = null;\n }\n\n if (\n (!environment.isIveco || this.isCvFrance) &&\n jobcardItem.paymentSubType?.paymentSubSubTypes?.length > 0\n ) {\n const paymentSubtype2 = this.filterSubSubTypes(\n paymentType.paymentSubTypes[0].paymentSubSubTypes,\n 2\n );\n const paymentSubtype3 = this.filterSubSubTypes(\n paymentType.paymentSubTypes[0].paymentSubSubTypes,\n 3\n );\n if (paymentSubtype2.length > 0) {\n jobcardItem.paymentSubType2Id = paymentSubtype2[0]?.id;\n jobcardItem.paymentSubType2 = paymentSubtype2[0];\n jobcardItem.paymentSub2Code = paymentSubtype2[0]?.code;\n } else {\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n }\n if (paymentSubtype3.length > 0) {\n jobcardItem.paymentSubType3Id = paymentSubtype3[0]?.id;\n jobcardItem.paymentSubType3 = paymentSubtype3[0];\n jobcardItem.paymentSub3Code = paymentSubtype3[0]?.code;\n } else {\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n } else {\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n }\n this.setEnableAutoWarranty(jobcardItem);\n });\n }\n\n changeSelectedPaymentSubType(jobcardItem: JobcardItem) {\n this.paymentTypes.forEach((paymentType) => {\n paymentType.paymentSubTypes.forEach((subType) => {\n if (subType.id === jobcardItem.paymentSubTypeId) {\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n if (\n (!environment.isIveco || this.isCvFrance) &&\n subType.paymentSubSubTypes?.length > 0\n ) {\n const paymentSubtype2 = this.filterSubSubTypes(\n subType.paymentSubSubTypes,\n 2\n );\n const paymentSubtype3 = this.filterSubSubTypes(\n subType.paymentSubSubTypes,\n 3\n );\n if (paymentSubtype2.length > 0) {\n jobcardItem.paymentSubType2Id = paymentSubtype2[0]?.id;\n jobcardItem.paymentSubType2 = paymentSubtype2[0];\n jobcardItem.paymentSub2Code = paymentSubtype2[0]?.code;\n } else {\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n }\n if (paymentSubtype3) {\n jobcardItem.paymentSubType3Id = paymentSubtype3[0]?.id;\n jobcardItem.paymentSubType3 = paymentSubtype3[0];\n jobcardItem.paymentSub3Code = paymentSubtype3[0]?.code;\n } else {\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n } else {\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n }\n });\n });\n if (\n jobcardItem.paymentSubcode.toUpperCase() === 'D' ||\n jobcardItem.paymentSubcode.toUpperCase() === 'Q'\n ) {\n jobcardItem.groupReplaced =\n jobcardItem.groupReplaced ?? JobcardItem.GroupReplacedEnum.N;\n }\n this.isDefectCoveredByPaymentTypes(jobcardItem);\n }\n\n changeSelectedPaymentSubSubType(jobcardItem: JobcardItem, subLevel: number) {\n this.paymentTypes.forEach((paymentType) => {\n paymentType.paymentSubTypes.forEach((subType) => {\n this.filterSubSubTypes(subType.paymentSubSubTypes, subLevel).forEach(\n (subSubType) => {\n if (\n subLevel === 2 &&\n subSubType.id === jobcardItem.paymentSubType2Id\n ) {\n jobcardItem.paymentSubType2 = subSubType;\n jobcardItem.paymentSub2Code = subSubType.code;\n } else if (\n subLevel === 3 &&\n subSubType.id === jobcardItem.paymentSubType3Id\n ) {\n jobcardItem.paymentSubType3 = subSubType;\n jobcardItem.paymentSub3Code = subSubType.code;\n }\n }\n );\n });\n });\n }\n\n filterSubSubTypes(paymentSubSubTypes: PaymentSubSubType[], subLevel: number) {\n return paymentSubSubTypes.filter(\n (subSubType) => subSubType?.subLevel === subLevel\n );\n }\n\n inspectionChecklistChanged(jobcardItem: JobcardItemCollapsable, event: any) {\n if (jobcardItem.checklist?.checkListResult?.length > 0) {\n const modalRef = this.modalService.open(WarningModalComponent);\n modalRef.result.then(\n () => {\n jobcardItem.checklist.checkListResult = [];\n if (event) {\n jobcardItem.checklistInstances = [\n {\n id: null,\n checklistTemplateId: event,\n },\n ];\n } else {\n jobcardItem.checklistInstances = [];\n jobcardItem.checklistIconVisible = false;\n }\n\n jobcardItem.checklist.checklistTemplateId = event;\n },\n () => {\n //Handle dismiss or close\n const previousId = JSON.parse(\n JSON.stringify(jobcardItem.checklist.checklistTemplateId)\n );\n jobcardItem.checklist.checklistTemplateId = null;\n setTimeout(() => {\n jobcardItem.checklist.checklistTemplateId = previousId;\n }, 5);\n }\n );\n } else if (event) {\n jobcardItem.checklistInstances = [\n {\n id: null,\n checklistTemplateId: event,\n },\n ];\n } else {\n jobcardItem.checklistInstances = [];\n jobcardItem.checklistIconVisible = false;\n }\n }\n\n defectCodeChanged(jobcardItem: JobcardItemCollapsable) {\n if (jobcardItem.defectCode) {\n const found = this.defects.filter((o) =>\n jobcardItem.defectCode.startsWith(o.code)\n )[0];\n if (found) {\n window.setTimeout(() => {\n const operation: Operation = JSON.parse(JSON.stringify(found));\n jobcardItem.defectCode = operation.code\n .replace(/\\s/g, '')\n .substr(0, 7);\n jobcardItem.defectDescription = operation.label;\n this.buildFailureDescription(jobcardItem);\n this.getWarrantyServicesForDefect(jobcardItem);\n }, 0);\n }\n this.setEnableAutoWarranty(jobcardItem);\n }\n }\n\n supplierCodeChanged(jobcardItem: JobcardItemCollapsable) {\n if (jobcardItem.supplierCode) {\n const found = this.supplierCode.filter((o) =>\n jobcardItem.supplierCode.startsWith(o.code)\n )[0];\n if (found) {\n window.setTimeout(() => {\n const supplier: SrtSupplierCode = JSON.parse(JSON.stringify(found));\n jobcardItem.supplierCode = supplier.code;\n jobcardItem.supplierDescription = supplier.description;\n }, 0);\n }\n this.setEnableAutoWarranty(jobcardItem);\n }\n }\n\n getWarrantyServicesForDefect(\n jobcardItem: JobcardItem,\n paymentTypeChanged: boolean = false\n ) {\n jobcardItem.warrantyCoverage = false;\n this.removeClientVerbalAgreementStatus(jobcardItem);\n jobcardItem.warrantyType = undefined;\n this.buildFailureDescription(jobcardItem);\n\n // if (jobcardItem.defectCode && jobcardItem.failureCode) {\n // const params: GetOperationWarrantyRequestParams = {\n // operationId: jobcardItem.defectCode.replace(/\\s/g, '').substring(0, 6),\n // failure: jobcardItem.failureCode,\n // noLoader: true,\n // };\n // this.operationService\n // .getOperationWarranty(params)\n // .subscribe((operationWarranty) => {\n // this.operationWarranty = operationWarranty;\n // this.isDefectCoveredByWarranty(jobcardItem, paymentTypeChanged);\n // if (paymentTypeChanged) {\n // this.isDefectCoveredByPaymentTypes(jobcardItem);\n // }\n // });\n // }\n }\n\n isDefectCoveredByPaymentTypes(jobcardItem: JobcardItemCollapsable) {\n if (\n jobcardItem.defectCode &&\n jobcardItem.failureCode &&\n !this.isWorkfile &&\n !this.isSummary &&\n environment.isIveco\n ) {\n jobcardItem.warrantyCoverage = false;\n jobcardItem.warrantyContract = undefined;\n jobcardItem.contractNumber = undefined;\n jobcardItem.warrantyType = undefined;\n if (\n this.warrantyServices &&\n this.operationWarranty &&\n this.operationWarranty.warrantyTypes\n ) {\n for (let i = 0; i <= this.operationWarranty.warrantyTypes.length; i++) {\n const warranty = this.operationWarranty.warrantyTypes[i];\n const j = this.warrantyServices\n .map((elt) => elt.number)\n .indexOf(warranty);\n\n if (\n j >= 0 &&\n jobcardItem.paymentSubType.type ===\n this.warrantyServices[j].warrantyType\n ) {\n jobcardItem.warrantyCoverage = true;\n this.setEnableAutoWarranty(jobcardItem);\n jobcardItem.warrantyContract = this.warrantyServices[j].number;\n jobcardItem.contractNumber = this.warrantyServices[j].contract;\n jobcardItem.warrantyType = this.warrantyServices[j].warrantyType;\n break;\n }\n }\n }\n }\n }\n\n isDefectCoveredByWarranty(\n jobcardItem: JobcardItemCollapsable,\n paymentTypeChanged: boolean = false\n ) {\n if (\n jobcardItem.defectCode &&\n jobcardItem.failureCode &&\n !this.isWorkfile &&\n !this.isSummary &&\n environment.isIveco\n ) {\n if (this.warrantyServices && this.operationWarranty?.warrantyTypes) {\n if (this.isSelectedWarrantyTypeCoverActivity(jobcardItem)) {\n return;\n }\n // If no Contract are covering exactly the couple Defect / Failure Code,\n // So loop through all the active warranty Services\n for (const warrantyService of this.warrantyServices) {\n const warranty = warrantyService.number;\n const j = this.operationWarranty.warrantyTypes.indexOf(warranty);\n if (j >= 0) {\n if (\n this.setPaymentTypesForDefectCoverage(\n warrantyService,\n jobcardItem,\n paymentTypeChanged\n )\n ) {\n break;\n } else {\n jobcardItem.warrantyCoverage = false;\n this.removeClientVerbalAgreementStatus(jobcardItem);\n jobcardItem.warrantyContract = undefined;\n jobcardItem.contractNumber = undefined;\n jobcardItem.warrantyType = undefined;\n }\n }\n }\n }\n }\n }\n\n isSelectedWarrantyTypeCoverActivity(jobcardItem: JobcardItemCollapsable) {\n // Check if there is a Selected Warranty Type\n // That means one warranty is covering exactly the couple of data\n // Defect Code / Failure Code\n if (this.operationWarranty.selectedWarrantyType) {\n const index = this.warrantyServices\n .map((w) => w.number)\n .indexOf(this.operationWarranty.selectedWarrantyType);\n if (\n index > -1 &&\n this.setPaymentTypesForDefectCoverage(\n this.warrantyServices[index],\n jobcardItem\n )\n ) {\n return true;\n }\n }\n return false;\n }\n// TODO(Marco) jobcardItemDto does not have all the fields of jobcardItem, temporarily put any\n setPaymentTypes(jobcardItem: any) {\n this.paymentTypes.forEach((payment) => {\n if (jobcardItem.paymentTypeId === payment.id) {\n payment.paymentSubTypes.forEach((subType) => {\n if (jobcardItem.paymentSubTypeId === subType.id) {\n jobcardItem.paymentCode = payment.code;\n jobcardItem.paymentType = payment;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n\n if (\n (!environment.isIveco || this.isCvFrance) &&\n subType.paymentSubSubTypes?.length > 0\n ) {\n const paymentSubtype2 = subType.paymentSubSubTypes.find(\n (subsubtype) => subsubtype.id === jobcardItem.paymentSubType2Id\n );\n const paymentSubtype3 = subType.paymentSubSubTypes.find(\n (subsubtype) => subsubtype.id === jobcardItem.paymentSubType3Id\n );\n if (paymentSubtype2) {\n jobcardItem.paymentSubType2 = paymentSubtype2;\n jobcardItem.paymentSub2Code = paymentSubtype2?.code;\n } else {\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n }\n if (paymentSubtype3) {\n jobcardItem.paymentSubType3 = paymentSubtype3;\n jobcardItem.paymentSub3Code = paymentSubtype3?.code;\n } else {\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n }\n }\n });\n }\n });\n }\n\n //TODO IAZ Entry point\n etimUpdateMaintenance(jobcardItem: JobcardItem) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n modalRef.componentInstance.title = $localize`Update maintenance on eTim`;\n modalRef.componentInstance.message = Util.stringFormat(\n $localize`Do you confirm that the maintenance activity [0] is completed? By selecting 'Yes' the maintenance plan for this machine will be updated in eTIM.`,\n jobcardItem?.name\n );\n modalRef.componentInstance.action = $localize`Yes`;\n modalRef.componentInstance.cancelAction = $localize`No`;\n modalRef.result.then(\n () => {\n // const mpParams: SaveMaintenanceRequestParams = {\n // appointmentId: this.appointment.id,\n // jobcardItemIdList: [jobcardItem.id],\n // };\n //TODO(Matteo) ignorare RemoveYaml activities\n\n // this.maintenanceService.saveMaintenance(mpParams).subscribe(() => {\n // const params: UpdateMaintenanceCouponRequestParams = {\n // activityValidated: {\n // ids: [jobcardItem.id],\n // },\n // };\n // this.activityMaintenanceService\n // .updateMaintenanceCoupon(params)\n // .subscribe(() => {\n // jobcardItem.activityValidated = true;\n // });\n // });\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {\n //\n }\n );\n }\n\n updateJobCardItemBasedOnMP(jobCardItem: JobcardItem) {\n this.appointment?.jobcard?.jobcardItems.map((jc: JobcardItem) => {\n if (jc.id === jobCardItem.id) {\n jc.activityValidated = jobCardItem.activityValidated;\n }\n return jc;\n });\n }\n\n // TODO(Marco) jobcardItemDto does not have all the fields of jobcardItem, temporarily put any\n setPaymentTypesForDefectCoverage(\n warrantyService: WarrantyServices,\n jobcardItem: any,\n paymentTypeChanged: boolean = false\n ): boolean {\n let isCovered = false;\n\n /*\n Check if the selected payment Type is a warranty payment Type and if you come from a modification of payment Type.\n - If yes so verify that a subtype under this payment type is covering the defect / failure.\n - If no, so search on other warranty payment types if something is covering the defect / failure.\n */\n\n if (\n paymentTypeChanged &&\n jobcardItem.paymentType &&\n jobcardItem.paymentType?.type === PaymentType.TypeEnum.Warranty\n ) {\n const paymentType = this.paymentTypes.find(\n (pt) => pt.code === jobcardItem.paymentType.code\n );\n if (paymentType) {\n paymentType.paymentSubTypes.forEach((subType) => {\n if (subType.type === warrantyService.warrantyType) {\n jobcardItem.paymentSubTypeId = subType.id;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n jobcardItem.warrantyCoverage = true;\n this.setEnableAutoWarranty(jobcardItem);\n jobcardItem.warrantyContract = warrantyService.number;\n jobcardItem.contractNumber = warrantyService.contract;\n jobcardItem.warrantyType = warrantyService.warrantyType;\n isCovered = true;\n }\n });\n }\n }\n if (!paymentTypeChanged) {\n this.paymentTypes.forEach((payment) => {\n payment.paymentSubTypes.forEach((subType) => {\n if (\n subType.type === warrantyService.warrantyType &&\n payment.type === PaymentType.TypeEnum.Warranty\n ) {\n jobcardItem.paymentTypeId = payment.id;\n jobcardItem.paymentCode = payment.code;\n jobcardItem.paymentType = payment;\n jobcardItem.paymentSubTypeId = subType.id;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n jobcardItem.warrantyCoverage = true;\n this.setEnableAutoWarranty(jobcardItem);\n jobcardItem.warrantyContract = warrantyService.number;\n jobcardItem.contractNumber = warrantyService.contract;\n jobcardItem.warrantyType = warrantyService.warrantyType;\n isCovered = true;\n }\n });\n });\n }\n\n return isCovered;\n }\n\n // display comment\n displayComment(event: Event, jobcardItem: JobcardItemCollapsable) {\n event.stopPropagation();\n const modalRef = this.modalService.open(UserCommentComponent, {\n backdrop: 'static',\n size: 's',\n });\n if (\n environment.isIveco &&\n this.workshop.countryId === 96 &&\n this.newAppointmentService.appointmentInCreation?.customerCompany?.creditStatus ===\n '3 Barzahler !'\n ) {\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.componentInstance.isEditAvailable = this.isEditAvailable;\n } else {\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.componentInstance.isEditAvailable =\n this.isEditAvailable &&\n jobcardItem.currentStatus?.status !== this.statusEnum.Invoiced;\n }\n }\n buildFailureDescription(jobcardItem: JobcardItem) {\n jobcardItem.failureDescription = '';\n if (jobcardItem.defectDescription) {\n jobcardItem.failureDescription = jobcardItem.defectDescription;\n }\n if (jobcardItem.failureCode) {\n const failure = this.failureCodes.find(\n (fail) => fail.failureCode === jobcardItem.failureCode\n );\n if (failure) {\n jobcardItem.failureDescription += ' - ' + failure.description;\n }\n }\n if (jobcardItem.failureSeverity) {\n switch (jobcardItem.failureSeverity) {\n case 1:\n jobcardItem.failureDescription += ' - ' + $localize`Light`;\n break;\n case 2:\n jobcardItem.failureDescription += ' - ' + $localize`Medium`;\n break;\n case 5:\n jobcardItem.failureDescription += ' - ' + $localize`Severe`;\n break;\n case 9:\n jobcardItem.failureDescription += ' - ' + $localize`Very severe`;\n break;\n }\n }\n }\n\n changeOperationSelection(operation: Operation) {\n operation.selected = !operation.selected;\n this.newAppointmentService.recalculateGlobalDurations();\n }\n\n changeExtraOperationSelection(operation: ExtraOperation) {\n operation.selected = !operation.selected;\n }\n\n causalPartChange(jobcardItem: JobcardItem) {\n jobcardItem.causalPartCode = null;\n }\n\n hasAttachmentsNotDeleted(jobcardItem: JobcardItem) {\n return (\n jobcardItem?.jobcardItemAttachments?.filter(\n (attachment) => !attachment.isDeleted\n )?.length > 0\n );\n }\n\n\n assignTechnicianBay(jobcardItem: JobcardItem, bayId: number) {\n const bay = this.workshopBays.find((b) => b.id === bayId);\n if (bay) {\n jobcardItem.jobcardItemSpells[0].workshopBayId = bay.id;\n const oldTech: JobcardItemTechnician =\n jobcardItem?.jobcardItemSpells[0]?.technicians?.length > 0\n ? { ...jobcardItem?.jobcardItemSpells[0]?.technicians[0] }\n : null;\n if (bay?.leadTechnician) {\n jobcardItem.jobcardItemSpells[0].technicians = [];\n jobcardItem?.jobcardItemSpells[0]?.technicians?.push({\n workshopUserId: bay.leadTechnician,\n startDate:\n oldTech &&\n oldTech.workshopUserId === bay.leadTechnician &&\n oldTech.startDate\n ? oldTech.startDate\n : jobcardItem?.jobcardItemSpells[0]?.startDate,\n estimatedDuration: jobcardItem.estimatedDuration,\n });\n }\n } else {\n // For unassigned selection\n jobcardItem.jobcardItemSpells[0].technicians = [];\n jobcardItem.jobcardItemSpells[0].workshopBayId = null;\n }\n }\n\n openListModal(jobcardItem: JobcardItem) {\n const curentItemList: JobcardItemDto[] = [\n JSON.parse(JSON.stringify(jobcardItem)),\n ];\n const modalRef = this.modalService.open(ClockedTimeModalComponent, {\n size: 'xl',\n backdrop: 'static',\n });\n const clockModal = modalRef.componentInstance as ClockedTimeModalComponent;\n clockModal.jobcardItemsList = curentItemList;\n clockModal.workshopUsers = this.workshopUsers;\n clockModal.appointment = this.appointment;\n modalRef.result.then(\n (item: JobcardItem[]) => {\n item.forEach((ji) => {\n ji.jobcardItemStatus.forEach((status) => {\n this.itemStatus = status.status;\n if (\n this.itemStatus === 'inProgress' ||\n this.itemStatus === 'done'\n ) {\n this.isPresent = true;\n }\n });\n });\n if (\n this.isPresent &&\n this.appointment?.id &&\n this.appointment?.status?.status === 'received'\n ) {\n const updatedAppointmentStatus: AppointmentStatus = {} as AppointmentStatus;\n this.appointment.status.status = 'reparing';\n updatedAppointmentStatus.status =\n AppointmentStatus?.StatusEnum?.Reparing;\n // const params: CreateAppointmentStatusRequestParams = {\n // appointmentId: this.appointment.id,\n // appointmentStatus: updatedAppointmentStatus,\n // };\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.apiAppointmentService\n // .createAppointmentStatus(params)\n // .subscribe((status) => {\n // this.appointment.status = status;\n // });\n // this.apiAppointmentService\n // .updateAppointment({\n // id: this.appointment.id,\n // appointment: this.appointment,\n // })\n // .subscribe();\n }\n\n jobcardItem = item[0];\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItem({ id: jobcardItem.id, jobcardItem })\n // .subscribe((j: JobcardItemCollapsable) => {\n // j.causalParts = [];\n // if (j.operations) {\n // j.operations.forEach((ope) => {\n // if (ope.parts) {\n // ope.parts.forEach((opePart) => {\n // if (\n // j.causalParts\n // .map((part) => part.id)\n // .indexOf(opePart.part?.id) === -1\n // ) {\n // j.causalParts.push(opePart.part);\n // }\n // });\n // }\n // });\n // }\n // if (j?.causalPartCode) {\n // j.causalPartId = -1;\n // }\n\n // // Send notification to Warranty managers in case of Done Warranty activity (NA only)\n // this.sendWarrantyNotification(this.appointment, j);\n\n // this.replaceActivity(j);\n // this.setPaymentTypes(j);\n // setTimeout(() => {\n // this.calculTotalDuration();\n // }, 300);\n // this.setClockedTechnicians(j);\n\n // this.jobcardItemsChange.emit(this.jobcardItems);\n // });\n },\n (items: JobcardItem[]) => {\n jobcardItem = JSON.parse(JSON.stringify(items[0]));\n this.updateCurrentItemStatus();\n setTimeout(() => {\n this.calculTotalDuration();\n }, 300);\n this.setClockedTechnicians(jobcardItem);\n }\n );\n }\n\n resetWarrantyInformation(jobcardItem: JobcardItem) {\n jobcardItem.paymentTypeId = null;\n jobcardItem.paymentCode = null;\n jobcardItem.paymentType = null;\n jobcardItem.paymentSubTypeId = null;\n jobcardItem.paymentSubType = null;\n jobcardItem.paymentSubcode = null;\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n\n warrantyAssemblyDateChanged(i: number) {\n this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems.forEach(\n (item: any, index: any) => {\n if (i === index) {\n item.installedDate = moment(this.assemblyDate[i]).format(\n 'YYYY-MM-DD'\n );\n }\n }\n );\n }\n\n approveOrRejectActivity(\n event: Event,\n jobcardItem: JobcardItem,\n isCustomerAgreed: boolean = true\n ) {\n event.stopPropagation();\n jobcardItem.isCustomerAgreed = isCustomerAgreed;\n const newStatusType = isCustomerAgreed\n ? JobcardItemStatus.StatusEnum.Todo\n : JobcardItemStatus.StatusEnum.New;\n\n // Has the customer already updated the agreement before?\n const newStatus = jobcardItem.jobcardItemStatus.find(\n (status) => !status.id\n );\n if (newStatus) {\n newStatus.status = newStatusType;\n } else {\n jobcardItem.jobcardItemStatus.unshift({\n status: newStatusType,\n time: moment(new Date()).toISOString(),\n });\n }\n\n if (\n !this.jobcardItemsForSummary.find((item) => item.id === jobcardItem.id)\n ) {\n this.jobcardItemsForSummary.push(jobcardItem);\n }\n this.updateStatus.next('');\n this.update.emit();\n }\n\n updateJobcard() {\n this.jobcardItemsForSummary.forEach((jobcardItem) => {\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItem({ id: jobcardItem.id, jobcardItem })\n // .subscribe();\n });\n }\n\n updateAllowedTime(ji: JobcardItem, event: Event) {\n event.stopPropagation();\n if (\n environment.isIveco &&\n (ji.type === JobcardItem.TypeEnum.NextMaintenance ||\n ji.type === JobcardItem.TypeEnum.ProposedMaintenance ||\n ji.type === JobcardItem.TypeEnum.Pip) &&\n !this.isWorkfile\n ) {\n const modalRef = this.modalService.open(ClockModalComponent, {\n size: 'md',\n });\n\n modalRef.componentInstance.jobcardItem = ji;\n modalRef.componentInstance.msg = $localize`Change Allowed Time`;\n modalRef.componentInstance.label = $localize`Allowed Time`;\n modalRef.componentInstance.allowedTime = ji.estimatedDuration;\n modalRef.result.then((allowedTime: number) => {\n ji.estimatedDuration = allowedTime;\n\n this.newAppointmentService.recalculateGlobalDurations(\n this.newAppointmentService?.appointmentInCreation?.jobcard,\n 'pipManualUpdate'\n );\n });\n }\n }\n\n openStatus(ji: JobcardItem) {\n if (\n (this.appointment.status.status === 'received' ||\n this.appointment.status.status === 'reparing' ||\n this.appointment.status.status === 'sentBackError') &&\n this.workshopUser.isManualJobStatusOverride === true &&\n ji.isCustomerAgreed === true\n ) {\n const modalRef = this.modalService.open(ChangeStatusModalComponent);\n modalRef.componentInstance.JobcardItem = JSON.parse(JSON.stringify(ji));\n\n modalRef.componentInstance.jobcardItemStatus = JSON.parse(\n JSON.stringify(ji.jobcardItemStatus[0])\n );\n modalRef.result.then(\n (jobcardItemStatus: JobcardItemStatus) => {\n ji.jobcardItemStatus[0] = jobcardItemStatus;\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.jobcardItemService\n // .updateJobcardItem({ id: ji.id, jobcardItem: ji })\n // .subscribe(() => {\n // if (\n // this.appointment?.id &&\n // this.appointment?.status?.status === 'received' &&\n // ['inProgress', 'done'].includes(jobcardItemStatus.status)\n // ) {\n // const updatedAppointmentStatus: AppointmentStatus = {} as AppointmentStatus;\n // this.appointment.status.status = 'reparing';\n // updatedAppointmentStatus.status =\n // AppointmentStatus?.StatusEnum?.Reparing;\n // const params: CreateAppointmentStatusRequestParams = {\n // appointmentId: this.appointment.id,\n // appointmentStatus: updatedAppointmentStatus,\n // };\n // //TODO(Matteo) ignorare RemoveYaml activities\n // // this.apiAppointmentService\n // // .createAppointmentStatus(params)\n // // .subscribe((status) => {\n // // this.appointment.status = status;\n // // });\n // // this.apiAppointmentService\n // // .updateAppointment({\n // // id: this.appointment.id,\n // // appointment: this.appointment,\n // // })\n // .subscribe();\n // }\n // //Send warranty notification when status done\n // this.sendWarrantyNotification(this.appointment, ji);\n // });\n this.updateStatus.next('');\n },\n () => {\n /*cancel */\n }\n );\n }\n }\n updateView(event: boolean) {\n this.checklistView = event;\n //this.router.navigate(['/'])\n }\n\n openJobcardItemChecklist(jobcardItem: JobcardItemCollapsable) {\n this.jobcardItemOpenChecklist.emit(jobcardItem);\n }\n\n openChecklist(jobcardItem: JobcardItemCollapsable, appointment: Appointment) {\n const modalRef = this.modalService.open(DisplayChecklistModalComponent);\n modalRef.componentInstance.appointment = appointment;\n\n modalRef.componentInstance.jobcardItemForChecklistView = jobcardItem;\n modalRef.componentInstance.checklistInstanceId =\n jobcardItem.checklistInstances[0].id;\n }\n\n onUpdateNegativeValue(value: any, index: number, field: string) {\n if (value && (isNaN(value) || value < 0)) {\n if (\n field === 'failedComponentSerialNumber' &&\n this.jobcardItems[index].failedComponentSerialNumber\n ) {\n this.jobcardItems[index].failedComponentSerialNumber = 0;\n }\n if (\n field === 'replacedComponentSerialNumber' &&\n this.jobcardItems[index].replacedComponentSerialNumber\n ) {\n this.jobcardItems[index].replacedComponentSerialNumber = 0;\n }\n if (\n field === 'serviceParticipation' &&\n this.jobcardItems[index].serviceParticipation\n ) {\n this.jobcardItems[index].serviceParticipation = 0;\n }\n }\n if (value > 100) {\n if (\n field === 'serviceParticipation' &&\n this.jobcardItems[index].serviceParticipation\n ) {\n this.jobcardItems[index].serviceParticipation = 100;\n }\n }\n }\n\n groupReplacedSwitch(jobcardItem: JobcardItem, switchRef: HTMLInputElement) {\n if (switchRef.checked) {\n jobcardItem.groupReplaced = JobcardItem.GroupReplacedEnum.N;\n } else {\n jobcardItem.groupReplaced = JobcardItem.GroupReplacedEnum.R;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n scrollToItem(event: any) {\n const elements = this.elRef.nativeElement.querySelectorAll('.active');\n if (elements?.length > 0) {\n elements[0].scrollIntoView();\n }\n }\n\n // hidden by task 372202\n // selectedtDiscount(jobcardItem: JobcardItem, selectedDiscount: number) {\n // if (jobcardItem.weight === 1 && this.jobcardItems.length > 1) {\n // const modalRef = this.modalService.open(ConfirmModalComponent);\n // const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n // confirmModal.title = $localize`Confirmation`;\n // confirmModal.message = $localize`Do you want to apply this discount to all activities?`;\n // confirmModal.action = $localize`Yes`;\n // confirmModal.cancelAction = $localize`No`;\n // modalRef.result.then((resp: boolean) => {\n // if (resp) {\n // this.copyDiscountToActivites(selectedDiscount);\n // }\n // });\n // }\n // }\n\n // copyDiscountToActivites(selectedDiscount: number) {\n // this.jobcardItems.forEach((jobcardItem) => {\n // if (\n // jobcardItem.paymentType?.type === PaymentType.TypeEnum.Retail ||\n // jobcardItem.isDiscountAvailable\n // ) {\n // jobcardItem.discountTypeId = selectedDiscount;\n // }\n // });\n // }\n\n /* checking the price on travel whether entered values are negative */\n checkPrice(i: number): void {\n if (this.travelArray[i].price && this.travelArray[i].price <= 0) {\n this.alert = $localize`The Amount must be positive.`;\n } else {\n this.alert = null;\n }\n this.travelPrice = this.travelArray[i].price;\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n }\n\n activatePaymentTypeforMaintance(jobCardItem: JobcardItem) {\n jobCardItem.isPaymentTypeDisabled = false;\n }\n\n getVehicleTelematics() {\n const params: GetVehicleTelematicsRequestParams = {\n vin: this.newAppointmentService.appointmentInCreation?.vehicle?.vin,\n userId:\n this.newAppointmentService?.appointmentInCreation?.workshopUserId ?? this.user?.id,\n };\n\n if (params.vin) {\n this.smartViewService.getVehicleTelematics(params).subscribe(\n (res) => {\n this.machineConnected = res?.connected;\n },\n () => {\n /**/\n }\n );\n }\n }\n\n addTravel() {\n this.travelExist = false;\n if (this.newTravel) {\n const newJobcardTravelItem: JobcardTravel = {\n name: this.newTravel,\n deleted: false,\n };\n this.travelArray.forEach((travelArr) => {\n if (travelArr.name === this.newTravel && !travelArr.deleted) {\n this.travelExist = true;\n }\n });\n if (!this.travelExist) {\n if (this.travelArray && this.machineConnected) {\n newJobcardTravelItem.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n newJobcardTravelItem.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates;\n newJobcardTravelItem.travelTypeFrom = 'MANUALLY';\n newJobcardTravelItem.travelTypeTo = 'MACHINE';\n this.getMachineConnectedCoordinates(newJobcardTravelItem);\n } else {\n newJobcardTravelItem.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n newJobcardTravelItem.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n newJobcardTravelItem.travelTypeFrom = 'MANUALLY';\n newJobcardTravelItem.travelTypeTo = 'MANUALLY';\n }\n this.travelArray.push(newJobcardTravelItem);\n this.appointment.jobcard.jobcardTravels = this.travelArray;\n this.newTravel = '';\n this.lastTravelIndex = this.travelArray.indexOf(newJobcardTravelItem);\n }\n } else {\n this.newTravel = '';\n }\n }\n\n getMachineConnectedCoordinates(jobcardTravelItem: JobcardTravel) {\n const params: GetGeoStoreDetailsRequestParams = {\n vin: this.newAppointmentService.appointmentInCreation?.vehicle?.vin,\n };\n if (params.vin) {\n this.smartViewService.getGeoStoreDetails(params).subscribe(\n (res) => {\n if (res) {\n if (\n jobcardTravelItem.travelFromShowCoordinates ===\n JobcardTravel.TravelFromShowCoordinatesEnum\n .TravelFromCoordinates &&\n jobcardTravelItem.travelTypeFrom === 'MACHINE'\n ) {\n jobcardTravelItem.travelFromLatitude = Number(res.pos.lat);\n jobcardTravelItem.travelFromLongitude = Number(res.pos.lon);\n if (this.lastImportedDate) {\n jobcardTravelItem.travelFromGpsImportedDate = res.pos.time;\n }\n }\n if (\n jobcardTravelItem.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates &&\n jobcardTravelItem.travelTypeTo === 'MACHINE'\n ) {\n jobcardTravelItem.travelToLatitude = Number(res.pos.lat);\n jobcardTravelItem.travelToLongitude = Number(res.pos.lon);\n if (this.lastImportedDate) {\n jobcardTravelItem.travelToGpsImportedDate = res.pos.time;\n }\n }\n // Updated the vehicle db\n if (this.newAppointmentService?.appointmentInCreation?.vehicle) {\n this.newAppointmentService.appointmentInCreation.vehicle.latestUpdatedGeoStoreTime =\n res.pos.time;\n this.newAppointmentService.appointmentInCreation.vehicle.latitude = Number(\n res.pos.lat\n );\n this.newAppointmentService.appointmentInCreation.vehicle.longitude = Number(\n res.pos.lon\n );\n }\n }\n },\n () => {\n /**/\n }\n );\n }\n }\n\n showCoordinates(jobcardTravel: JobcardTravel, field: string) {\n if (field === 'travelFromCoordinates') {\n jobcardTravel.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates;\n if (!this.machineConnected) {\n jobcardTravel.travelTypeFrom = 'MANUALLY';\n }\n } else if (field === 'travelFromAddress') {\n jobcardTravel.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n jobcardTravel.travelTypeFrom = 'MANUALLY';\n } else if (field === 'travelToCoordinates') {\n jobcardTravel.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates;\n if (!this.machineConnected) {\n jobcardTravel.travelTypeTo = 'MANUALLY';\n }\n } else if (field === 'travelToAddress') {\n jobcardTravel.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n jobcardTravel.travelTypeTo = 'MANUALLY';\n }\n }\n\n editTravel(jobcardTravelItem: JobcardTravel, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Edit name`;\n modalRef.componentInstance.field = $localize`Name`;\n modalRef.componentInstance.value = jobcardTravelItem.name;\n modalRef.result.then(\n (newValue) => {\n jobcardTravelItem.name = newValue.value;\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n hideTravelData(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Hiding travel`;\n confirmModal.message =\n $localize`Are you sure you want to hide the travel ` +\n travelArrayData.name +\n ` from the customer view?`;\n confirmModal.action = $localize`Hide`;\n modalRef.result.then(\n () => {\n travelArrayData.travelVisible = true;\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n showTravelData(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Show travel`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to show the travel [0] in the customer view?`,\n travelArrayData.name\n );\n confirmModal.action = $localize`Show`;\n modalRef.result.then(\n () => {\n travelArrayData.travelVisible = false;\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n deleteTravelData(index: number, travelData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Delete travel`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to delete the travel [0] from the customer view?`,\n travelData.name\n );\n confirmModal.action = $localize`Delete`;\n modalRef.result.then(\n () => {\n travelData.deleted = true;\n if (!travelData.id) {\n this.appointment.jobcard.jobcardTravels.splice(index, 1);\n }\n // refresh total price\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n editActualTravel(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Actual Travel distance and time `;\n modalRef.componentInstance.technicianLabel = $localize`Technician`;\n modalRef.componentInstance.country = this.workshop?.country;\n modalRef.componentInstance.distanceLabel = $localize`Distance (HH:MM)`;\n modalRef.componentInstance.durationLabel = $localize`Duration (HH:MM)`;\n modalRef.componentInstance.techniciansList = this.workshopUsers;\n modalRef.componentInstance.reasonLabel = $localize`Reason (Miles)`;\n modalRef.componentInstance.technician = travelArrayData?.workshopUserId;\n modalRef.componentInstance.reason = travelArrayData.reason;\n modalRef.componentInstance.reasonsList = this.reasonsList;\n modalRef.componentInstance.otherReason = travelArrayData.otherReason;\n modalRef.componentInstance.isTravel = true;\n\n modalRef.componentInstance.travelArrayData = JSON.parse(\n JSON.stringify(travelArrayData)\n );\n modalRef.result.then(\n (response) => {\n travelArrayData.distance = response?.distance;\n travelArrayData.duration = response?.duration;\n travelArrayData.workshopUserId = response?.technician;\n travelArrayData.reason = response?.reason;\n travelArrayData.otherReason = response?.otherReason;\n },\n () => {\n /**/\n }\n );\n }\n\n returnTravel(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Return Travel`;\n modalRef.componentInstance.field = $localize`Travel name`;\n modalRef.result.then(\n (response) => {\n this.travelExist = false;\n if (response) {\n const newJobcardTravelItem: JobcardTravel = {\n name: response.value,\n deleted: false,\n travelFromAddressLine1: travelArrayData.travelToAddressLine1,\n travelToAddressLine1: travelArrayData.travelFromAddressLine1,\n travelFromAddressLine2: travelArrayData.travelToAddressLine2,\n travelToAddressLine2: travelArrayData.travelFromAddressLine2,\n travelFromAddressLine3: travelArrayData.travelToAddressLine3,\n travelToAddressLine3: travelArrayData.travelFromAddressLine3,\n travelFromAddressLine4: travelArrayData.travelToAddressLine4,\n travelToAddressLine4: travelArrayData.travelFromAddressLine4,\n travelFromPostalCode: travelArrayData.travelToPostalCode,\n travelToPostalCode: travelArrayData.travelFromPostalCode,\n travelFromLatitude: travelArrayData.travelToLatitude,\n travelFromLongitude: travelArrayData.travelToLongitude,\n travelToLatitude: travelArrayData.travelFromLatitude,\n travelToLongitude: travelArrayData.travelFromLongitude,\n travelFromShowCoordinates:\n travelArrayData.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates\n ? JobcardTravel.TravelFromShowCoordinatesEnum\n .TravelFromCoordinates\n : JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress,\n travelToShowCoordinates:\n travelArrayData.travelFromShowCoordinates ===\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates\n ? JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates\n : JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress,\n };\n this.travelArray.forEach((travelArr) => {\n if (travelArr.name === response.value && !travelArr.deleted) {\n this.travelExist = true;\n }\n });\n if (!this.travelExist) {\n this.travelArray.push(newJobcardTravelItem);\n this.appointment.jobcard.jobcardTravels = this.travelArray;\n this.lastTravelIndex = this.travelArray.indexOf(\n newJobcardTravelItem\n );\n }\n } else {\n response.value = '';\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n addNewTravel() {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`New Travel`;\n modalRef.componentInstance.field = $localize`Travel name`;\n modalRef.result.then(\n (response) => {\n this.travelExist = false;\n if (response) {\n const newJobcardTravelItem: JobcardTravel = {\n name: response.value,\n deleted: false,\n travelFromAddressLine1: this.travelFromAddressLine1,\n travelToAddressLine1: this.travelToAddressLine1,\n travelFromAddressLine2: this.travelToAddressLine2,\n travelToAddressLine2: this.travelToAddressLine2,\n travelFromAddressLine3: this.travelFromAddressLine3,\n travelToAddressLine3: this.travelToAddressLine3,\n travelFromAddressLine4: this.travelFromAddressLine4,\n travelToAddressLine4: this.travelToAddressLine4,\n travelFromPostalCode: this.travelFromPostalCode,\n travelToPostalCode: this.travelToPostalCode,\n travelFromLatitude: this.travelFromLatitude,\n travelFromLongitude: this.travelFromLongitude,\n travelToLatitude: this.travelToLatitude,\n travelToLongitude: this.travelToLongitude,\n travelTypeFrom: this.travelTypeFrom,\n };\n this.travelArray.forEach((travelArr) => {\n if (travelArr.name === response.value && !travelArr.deleted) {\n this.travelExist = true;\n }\n });\n if (!this.travelExist) {\n if (this.travelArray && this.machineConnected) {\n newJobcardTravelItem.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n newJobcardTravelItem.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates;\n newJobcardTravelItem.travelTypeFrom = 'MANUALLY';\n newJobcardTravelItem.travelTypeTo = 'MACHINE';\n this.getMachineConnectedCoordinates(newJobcardTravelItem);\n } else {\n newJobcardTravelItem.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n newJobcardTravelItem.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n newJobcardTravelItem.travelTypeFrom = 'MANUALLY';\n newJobcardTravelItem.travelTypeTo = 'MANUALLY';\n }\n this.travelArray.push(newJobcardTravelItem);\n this.appointment.jobcard.jobcardTravels = this.travelArray;\n this.lastTravelIndex = this.travelArray.indexOf(\n newJobcardTravelItem\n );\n }\n } else {\n response.value = '';\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n openMapView(jobcardTravelItem: EstimateTravel) {\n this.googleService\n .getEstimatePositionBasedOnAddress(jobcardTravelItem)\n .then((result: any) => {\n this.loadingTravelToDisplay = false;\n if (result && result.estimateTravelPosition?.length) {\n jobcardTravelItem.estimateTravelPosition =\n result.estimateTravelPosition;\n this.cdRef.markForCheck();\n this.openMapViewModel(jobcardTravelItem, true);\n }\n this.cdRef.markForCheck();\n });\n }\n\n openMapViewModel(travel: EstimateTravel, isEstimateTravel = false) {\n const modalRef = this.modalService.open(TravelMapDisplayComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.travel = travel;\n modalRef.componentInstance.enableModel = true;\n modalRef.componentInstance.isEstimateTravel = isEstimateTravel;\n modalRef.result.then(\n () => {\n /* do nothing on close */\n },\n () => {\n // close or Cancel the model\n }\n );\n this.cdRef.markForCheck();\n }\n\n updateEditEstimateTravel(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Estimated Travel distance and time `;\n modalRef.componentInstance.country = this.workshop?.country;\n modalRef.componentInstance.estimatedDistance = $localize`Distance`;\n modalRef.componentInstance.estimatedDuration = $localize`Duration (HH:MM)`;\n modalRef.componentInstance.travelArrayData = JSON.parse(\n JSON.stringify(travelArrayData)\n );\n modalRef.result.then(\n (response) => {\n travelArrayData.estimatedDistance = response?.estimatedDistance;\n travelArrayData.estimatedDuration = response?.estimatedDuration;\n this.saveTravelDetails(travelArrayData);\n },\n () => {\n /* do nothing on close */\n }\n );\n }\n\n updateEditActualTravel(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Actual Travel distance and time `;\n modalRef.componentInstance.technicianLabel = $localize`Technician`;\n modalRef.componentInstance.country = this.workshop?.country;\n modalRef.componentInstance.distanceLabel = $localize`Distance (HH:MM)`;\n modalRef.componentInstance.durationLabel = $localize`Duration (HH:MM)`;\n modalRef.componentInstance.techniciansList = this.workshopUsers;\n modalRef.componentInstance.reasonLabel = $localize`Reason (Miles)`;\n modalRef.componentInstance.technician = travelArrayData?.workshopUserId;\n modalRef.componentInstance.reason = travelArrayData.reason;\n modalRef.componentInstance.reasonsList = this.reasonsList;\n modalRef.componentInstance.otherReason = travelArrayData.otherReason;\n modalRef.componentInstance.isTravel = true;\n\n modalRef.componentInstance.travelArrayData = JSON.parse(\n JSON.stringify(travelArrayData)\n );\n modalRef.result.then(\n (response) => {\n travelArrayData.distance = response?.distance;\n travelArrayData.duration = response?.duration;\n travelArrayData.workshopUserId = response?.technician;\n travelArrayData.reason = response?.reason;\n travelArrayData.otherReason = response?.otherReason;\n this.saveTravelDetails(travelArrayData);\n },\n () => {\n /* do nothing on close */\n }\n );\n }\n\n saveTravelDetails(travelArrayData: JobcardTravel) {\n //TODO(Matteo) ignorare RemoveYaml activities\n\n // const travelParams: AddJobcardTravelsRequestParams = {\n // id: this.appointment.jobcard.id,\n // jobcardTravel: [travelArrayData],\n // };\n // this.jobcardService.addJobcardTravels(travelParams).subscribe();\n }\n\n checkNegativeValue(value: any, index: number, field: string) {\n if (value && (isNaN(value) || value < 0)) {\n if (\n field === 'distance' &&\n this.appointment.jobcard.jobcardTravels[index].distance\n ) {\n this.appointment.jobcard.jobcardTravels[index].distance = 0;\n }\n if (\n field === 'estimatedDistance' &&\n this.appointment.jobcard.jobcardTravels[index].estimatedDistance\n ) {\n this.appointment.jobcard.jobcardTravels[index].estimatedDistance = 0;\n }\n }\n this.cdRef.markForCheck();\n }\n\n /**\n * This function used to calculate the estimate distance and time based on address.\n *\n * @param travel jobcard travel object\n */\n\n calculateEstimate(travel: JobcardTravel) {\n this.isEstimateTravelLoader = JSON.parse(JSON.stringify(travel.name));\n this.addressFormat(travel).then((address: string[]) => {\n if (address?.length) {\n const unit =\n this.measurementUnit.toLowerCase() === 'km'\n ? google.maps.UnitSystem.METRIC\n : google.maps.UnitSystem.IMPERIAL;\n const request: google.maps.DistanceMatrixRequest = {\n origins:\n travel.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromAddress\n ? [address[0]]\n : [\n new google.maps.LatLng(\n Number(address[0][0]),\n Number(address[0][1])\n ),\n ],\n destinations:\n travel.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToAddress\n ? [address[1]]\n : [\n new google.maps.LatLng(\n Number(address[1][0]),\n Number(address[1][1])\n ),\n ],\n travelMode: google.maps.TravelMode.DRIVING,\n unitSystem: unit,\n avoidHighways: false,\n avoidTolls: false,\n };\n this.googleService\n .calculateDistanceMatrix(request)\n .subscribe((result: google.maps.DistanceMatrixResponse | null) => {\n this.isEstimateTravelLoader = null;\n if (result && result?.rows?.[0]?.elements?.length) {\n const element = result?.rows?.[0]?.elements[0];\n const distance = element.distance;\n const duration = element.duration;\n if (\n distance?.value &&\n duration?.value &&\n element.status === google.maps.DistanceMatrixElementStatus.OK\n ) {\n this.isEstimateTravelLoader =\n JSON.parse(JSON.stringify(travel.name)) + '_success';\n setTimeout(() => {\n this.isEstimateTravelLoader = null;\n }, 2000);\n let distanceValue;\n if (this.measurementUnit.toLowerCase() === 'km') {\n distanceValue = distance.value * 0.001;\n } else {\n distanceValue = distance.value * 0.0006213712;\n }\n\n if (distanceValue === Math.floor(distanceValue)) {\n travel.estimatedDistance = distanceValue;\n } else {\n travel.estimatedDistance = Number(distanceValue.toFixed(1));\n }\n // convert meter to miles 1 miles = 0.0006213712;\n // travel.estimatedDistance =\n // Number(distance.text.split(/[ ]+/)?.[0]?.replace(/,/g, '')) ??\n // null;\n // travel.estimatedDistance = Math.round(\n // distance.value * 0.0006213712\n // );\n //convert second to minutes\n travel.estimatedDuration = Math.round(duration.value / 60);\n } else {\n travel.estimatedDistance = null;\n //convert second to minutes\n travel.estimatedDuration = null;\n this.isEstimateTravelLoader =\n JSON.parse(JSON.stringify(travel.name)) + '_error_api';\n setTimeout(() => {\n this.isEstimateTravelLoader = null;\n }, 2000);\n }\n }\n });\n } else {\n this.isEstimateTravelLoader =\n JSON.parse(JSON.stringify(travel.name)) + '_error';\n setTimeout(() => {\n this.isEstimateTravelLoader = null;\n }, 2000);\n }\n });\n }\n\n addressFormat(travel: JobcardTravel) {\n return new Promise((resolve) => {\n let travelFrom;\n let travelTo;\n if (\n travel.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromAddress\n ) {\n travelFrom = [\n travel?.travelFromAddressLine1,\n travel?.travelFromAddressLine2,\n travel?.travelFromAddressLine3,\n travel?.travelFromAddressLine4,\n travel?.travelFromPostalCode,\n ]\n .filter(Boolean)\n .join(',');\n } else if (\n travel.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromCoordinates\n ) {\n travelFrom = [travel?.travelFromLatitude, travel?.travelFromLongitude];\n }\n if (\n travel.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToAddress\n ) {\n travelTo = [\n travel?.travelToAddressLine1,\n travel?.travelToAddressLine2,\n travel?.travelToAddressLine3,\n travel?.travelToAddressLine4,\n travel?.travelToPostalCode,\n ]\n .filter(Boolean)\n .join(',');\n } else if (\n travel.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToCoordinates\n ) {\n travelTo = [travel?.travelToLatitude, travel?.travelToLongitude];\n }\n\n if (\n (travel.travelToShowCoordinates !==\n this.travelToShowCoordinatesEnum.TravelToAddress &&\n travelTo?.length !== 2) ||\n (travel.travelFromShowCoordinates !==\n this.travelFromShowCoordinatesEnum.TravelFromAddress &&\n travelFrom?.length !== 2)\n ) {\n resolve(null);\n } else if (\n (travel.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromAddress &&\n typeof travelFrom === 'string' &&\n !travelFrom?.trim()?.length) ||\n (travel.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToAddress &&\n typeof travelTo === 'string' &&\n !travelTo?.trim()?.length)\n ) {\n resolve(null);\n } else {\n resolve([travelFrom, travelTo]);\n }\n });\n }\n\n /* This function is used for getting the address */\n getAddress(i: number, travelFrom: boolean, travelTo: boolean) {\n this.zone.run(() => {\n let input;\n if (travelFrom) {\n input = document.getElementById(\n 'travelFromAddressLine1-' + i\n ) as HTMLInputElement;\n } else {\n input = document.getElementById(\n 'travelToAddressLine1-' + i\n ) as HTMLInputElement;\n }\n\n const options: google.maps.places.AutocompleteOptions = {\n fields: ['address_components', 'geometry', 'formatted_address', 'name'],\n types: ['establishment'],\n strictBounds: false,\n };\n if (this.countryAbbrev) {\n options.componentRestrictions = { country: this.countryAbbrev };\n }\n\n const autocomplete = new google.maps.places.Autocomplete(input, options);\n\n // When the user selects an address from the drop-down, populate the\n // address fields in the form.\n const self = this;\n autocomplete.addListener('place_changed', () => {\n // Get the place details from the autocomplete object.\n const place = autocomplete.getPlace();\n self.cdRef.detectChanges();\n if (!place.geometry || !place.geometry.location) {\n // User entered the name of a Place that was not suggested and\n // pressed the Enter key, or the Place Details request failed.\n this.toastrService.warning(\n $localize`No details available for address entered: ` + place.name\n );\n return;\n }\n if (travelFrom) {\n this.clear(i, true, false);\n } else {\n this.clear(i, false, true);\n }\n let streetnumber;\n let streetaddress;\n let neighborhood;\n let route;\n let locality;\n let administrativeLocality1;\n let administrativeLocality2;\n let subLocality1;\n let sublocality2;\n let country;\n let postalTown;\n const aName = place?.name ?? '';\n // Get each component of the address from the place details,\n // and then fill-in the corresponding field on the form.\n // place.address_components are google.maps.GeocoderAddressComponent objects\n // which are documented at http://goo.gle/3l5i5Mr\n for (const component of place.address_components as google.maps.GeocoderAddressComponent[]) {\n if (\n component?.types.includes('street_number') &&\n component?.long_name\n ) {\n streetnumber = component.long_name;\n }\n\n if (\n component?.types.includes('street_address') &&\n component?.long_name\n ) {\n streetaddress = component.long_name;\n }\n\n if (\n component?.types.includes('neighborhood') &&\n component?.long_name\n ) {\n neighborhood = component.long_name;\n }\n\n if (component?.types.includes('route') && component?.long_name) {\n route = component.long_name;\n }\n\n if (\n component?.types.includes('sublocality_level_2') &&\n component?.long_name\n ) {\n sublocality2 = component.long_name;\n }\n\n if (\n component?.types.includes('sublocality_level_1') &&\n component?.long_name\n ) {\n subLocality1 = component.long_name;\n }\n\n if (component?.types.includes('locality') && component?.long_name) {\n locality = component.long_name;\n }\n\n if (\n component?.types.includes('administrative_area_level_2') &&\n component?.long_name\n ) {\n administrativeLocality2 = component.long_name;\n }\n\n if (\n component?.types.includes('administrative_area_level_1') &&\n component?.long_name\n ) {\n administrativeLocality1 = component.long_name;\n }\n\n if (\n component?.types.includes('postal_town') &&\n component?.long_name\n ) {\n postalTown = component.long_name;\n }\n\n if (component?.types.includes('country') && component?.long_name) {\n country = component.long_name;\n }\n\n if (\n component?.types.includes('postal_code') &&\n component?.long_name\n ) {\n if (travelFrom) {\n this.travelArray[\n i\n ].travelFromPostalCode = `${component.long_name}`;\n }\n if (travelTo) {\n this.travelArray[i].travelToPostalCode = `${component.long_name}`;\n }\n }\n if (travelFrom) {\n this.travelArray[i].travelFromAddressLine1 = [\n aName,\n streetnumber,\n streetaddress,\n neighborhood,\n route,\n ]\n .filter(Boolean)\n .join(', ');\n this.travelArray[i].travelFromAddressLine2 = [\n subLocality1,\n sublocality2,\n postalTown,\n ]\n .filter(Boolean)\n .join(', ');\n this.travelArray[i].travelFromAddressLine4 =\n (country && country) || '';\n this.travelArray[i].travelFromAddressLine3 = [\n locality,\n administrativeLocality1,\n administrativeLocality2,\n ]\n .filter(Boolean)\n .join(', ');\n }\n if (travelTo) {\n this.travelArray[i].travelToAddressLine1 = [\n aName,\n streetnumber,\n streetaddress,\n neighborhood,\n route,\n ]\n .filter(Boolean)\n .join(', ');\n this.travelArray[i].travelToAddressLine2 = [\n subLocality1,\n sublocality2,\n postalTown,\n ]\n .filter(Boolean)\n .join(', ');\n this.travelArray[i].travelToAddressLine4 =\n (country && country) || '';\n this.travelArray[i].travelToAddressLine3 = [\n locality,\n administrativeLocality1,\n administrativeLocality2,\n ]\n .filter(Boolean)\n .join(', ');\n }\n }\n self.cdRef.detectChanges();\n });\n });\n }\n\n /* Clear the address when try to change address */\n clear(i: number, travelFrom: boolean, travelTo: boolean) {\n if (travelFrom === true) {\n this.travelArray[i].travelFromAddressLine1 = '';\n this.travelArray[i].travelFromAddressLine2 = '';\n this.travelArray[i].travelFromAddressLine3 = '';\n this.travelArray[i].travelFromAddressLine4 = '';\n this.travelArray[i].travelFromPostalCode = '';\n }\n if (travelTo === true) {\n this.travelArray[i].travelToAddressLine1 = '';\n this.travelArray[i].travelToAddressLine2 = '';\n this.travelArray[i].travelToAddressLine3 = '';\n this.travelArray[i].travelToAddressLine4 = '';\n this.travelArray[i].travelToPostalCode = '';\n }\n }\n\n comparePaymentType(c1: any, c2: any) {\n return c1.id === c2?.id;\n }\n comparePaymentSubType(c1: any, c2: any) {\n return c1.id === c2?.id;\n }\n\n compareItemCode(c1: any, c2: any) {\n return c1.id === c2?.id;\n }\n\n compareWarrantyType(c1: any, c2: any) {\n return c1?.warranty === c2?.warranty;\n }\n\n setDealershipAddress(\n travelArrayData: JobcardTravel,\n formAddressType: string\n ) {\n if (formAddressType === 'From') {\n if (travelArrayData.travelTypeFrom === 'MACHINE') {\n travelArrayData.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n }\n travelArrayData.travelFromAddressLine1 = this.workshop.name;\n travelArrayData.travelFromAddressLine2 = this.workshop.address;\n travelArrayData.travelFromAddressLine3 = this.workshop.city;\n travelArrayData.travelFromAddressLine4 = this.workshop.country;\n travelArrayData.travelTypeFrom = 'DEALERSHIP';\n } else {\n travelArrayData.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n travelArrayData.travelToAddressLine1 = this.workshop.name;\n travelArrayData.travelToAddressLine2 = this.workshop.address;\n travelArrayData.travelToAddressLine3 = this.workshop.city;\n travelArrayData.travelToAddressLine4 = this.workshop.country;\n travelArrayData.travelTypeTo = 'DEALERSHIP';\n }\n }\n\n setManualEntry(travelArrayData: JobcardTravel, formAddressType: string) {\n if (formAddressType === 'From') {\n if (travelArrayData.travelTypeFrom === 'MACHINE') {\n travelArrayData.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n }\n if (\n travelArrayData.travelFromShowCoordinates ===\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates\n ) {\n travelArrayData.travelFromLatitude = Number('');\n travelArrayData.travelFromLongitude = Number('');\n }\n travelArrayData.travelFromAddressLine1 = '';\n travelArrayData.travelFromAddressLine2 = '';\n travelArrayData.travelFromAddressLine3 = '';\n travelArrayData.travelFromAddressLine4 = '';\n travelArrayData.travelFromPostalCode = '';\n travelArrayData.travelTypeFrom = 'MANUALLY';\n } else {\n if (\n travelArrayData.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates &&\n travelArrayData.travelTypeTo === 'MACHINE'\n ) {\n travelArrayData.travelToLatitude = Number('');\n travelArrayData.travelToLongitude = Number('');\n travelArrayData.travelTypeTo = 'MANUALLY';\n }\n if (\n travelArrayData.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress\n ) {\n travelArrayData.travelToAddressLine1 = '';\n travelArrayData.travelToAddressLine2 = '';\n travelArrayData.travelToAddressLine3 = '';\n travelArrayData.travelToAddressLine4 = '';\n travelArrayData.travelToPostalCode = '';\n travelArrayData.travelTypeTo = 'MANUALLY';\n }\n }\n }\n\n setCustomerAddress(travelArrayData: JobcardTravel, formAddressType: string) {\n const customerCompany = this.newAppointmentService?.appointmentInCreation\n ?.customerCompany;\n if (formAddressType === 'From') {\n if (travelArrayData.travelTypeFrom === 'MACHINE') {\n travelArrayData.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n }\n travelArrayData.travelFromAddressLine1 = customerCompany.name;\n travelArrayData.travelFromAddressLine2 = customerCompany.address;\n travelArrayData.travelFromAddressLine3 = customerCompany.city;\n travelArrayData.travelFromAddressLine4 = customerCompany.country;\n travelArrayData.travelFromPostalCode = customerCompany.zipcode;\n travelArrayData.travelTypeFrom = 'CUSTOMER';\n } else {\n travelArrayData.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n travelArrayData.travelToAddressLine1 = customerCompany.name;\n travelArrayData.travelToAddressLine2 = customerCompany.address;\n travelArrayData.travelToAddressLine3 = customerCompany.city;\n travelArrayData.travelToAddressLine4 = customerCompany.country;\n travelArrayData.travelToPostalCode = customerCompany.zipcode;\n travelArrayData.travelTypeTo = 'CUSTOMER';\n }\n }\n\n setMachineLocation(travelArrayData: JobcardTravel, formAddressType: string) {\n if (formAddressType === 'From') {\n travelArrayData.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates;\n travelArrayData.travelTypeFrom = 'MACHINE';\n this.getMachineConnectedCoordinates(travelArrayData);\n } else {\n travelArrayData.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates;\n travelArrayData.travelTypeTo = 'MACHINE';\n this.getMachineConnectedCoordinates(travelArrayData);\n }\n }\n\n refreshLatLng(\n jobcardTravel: JobcardTravel,\n refreshTravelFrom: boolean,\n refreshTravelTo: boolean\n ) {\n if (\n jobcardTravel.travelFromShowCoordinates ===\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates &&\n jobcardTravel.travelTypeFrom === 'MACHINE' &&\n refreshTravelFrom\n ) {\n jobcardTravel.travelFromManualRefreshDate = moment(\n new Date()\n ).toISOString();\n this.getMachineConnectedCoordinates(jobcardTravel);\n }\n if (\n jobcardTravel.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates &&\n jobcardTravel.travelTypeTo === 'MACHINE' &&\n refreshTravelTo\n ) {\n jobcardTravel.travelToManualRefreshDate = moment(\n new Date()\n ).toISOString();\n this.lastImportedDate = true;\n this.getMachineConnectedCoordinates(jobcardTravel);\n }\n }\n\n jobcardCheklistCompare(c1: any, c2: any) {\n return c1 === c2;\n }\n\n openIULinks(jobcardItem: JobcardItem) {\n const modalRef = this.modalService.open(IuLinksModalComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.etimDocs = jobcardItem.jobcardItemIuDocuments;\n modalRef.componentInstance.workshop = this.workshop;\n }\n\n showPartsTooltip(tooltip: any, jobcardItem: any) {\n tooltip.open({ jobcardItem });\n }\n\n getCountryDetailsFromWorkshopCountry(workshop: WorkshopDto) {\n const country = this.countries.find((p) => p.id === workshop.countryId);\n this.countryAbbrev = country?.abbrev;\n }\n\n // Update travel payment types\n changeTravelPaymentType(travel: JobcardTravel) {\n travel.paymentSubType = travel.paymentType.paymentSubTypes?.[0] ?? null;\n if (\n travel?.paymentSubType &&\n !travel?.paymentSubType?.paymentSubSubTypes?.length\n ) {\n travel.paymentSubSubType2 = null;\n travel.paymentSubSubType3 = null;\n }\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n }\n\n setWarrantyType(jobcardItem: JobcardItem) {\n let region: string;\n if (\n this.localeId === 'en-US' ||\n this.localeId === 'EN-GB' ||\n this.localeId === 'en-GB'\n ) {\n this.localeId = 'EN';\n }\n if (this.localeId === 'PT-BR' || this.localeId === 'pt-BR') {\n this.localeId = 'PT';\n }\n this.selectedLanguageId = this.localeId.toUpperCase();\n if (this.warrantyTypes.length === 0) {\n if (this.workshop.marketId === 2 || this.workshop.marketId === 1) {\n region = 'URP';\n } else {\n region = 'ERP';\n }\n // const warrantyParams: GetWarrantyTypesRequestParams = {\n // language: this.selectedLanguageId,\n // region,\n // };\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.warrantyTypeService\n // .getWarrantyTypes(warrantyParams)\n // .subscribe((types: any) => {\n // this.warrantyTypes = types?.sort((a: WarrantyType, b: WarrantyType) =>\n // a.warranty.localeCompare(b.warranty)\n // );\n // });\n }\n const ji: JobcardItemCollapsable = jobcardItem;\n ji.paymentWarrantyType = ji.paymentWarrantyType\n ? jobcardItem.paymentWarrantyType\n : null;\n }\n\n appendClassBasedOnInnerHTML(event: HTMLDivElement) {\n let response = '';\n if (event && event.getElementsByTagName('label')) {\n const ele = event.getElementsByTagName('label');\n for (let i = 0; i < ele.length; i++) {\n const text = ele[i].innerHTML;\n if (text.length > 70) {\n response = 'col-sm-12';\n } else if (text.length > 60 && response.length == 0) {\n response = 'col-sm-8';\n } else if (text.length > 40 && response.length == 0) {\n response = 'col-sm-6';\n }\n }\n }\n return response.length === 0 ? 'col-sm-4' : response;\n }\n\n private filterJobcardItems() {\n this.filteredJobcardItems = this.jobcardItems\n .filter((item) => item.deferred?.valueOf() === false)\n .filter((item) => item.deleted?.valueOf() === false);\n }\n // TODO(Marco) jobcardItemDto does not have all the fields of jobcardItem, temporarily put any\n private replaceActivity(jobcardItem: any) {\n if (!jobcardItem.paymentType) {\n const ptype = this.paymentTypes.find(\n (p) => p.id === jobcardItem.paymentTypeId\n );\n if (ptype) {\n jobcardItem.paymentType = ptype;\n const sptype =\n ptype.paymentSubTypes.find(\n (ps) => ps.id === jobcardItem.paymentSubTypeId\n ) ?? null;\n if (sptype) {\n jobcardItem.paymentSubType = sptype;\n if (!environment.isIveco || this.isCvFrance) {\n if (sptype.paymentSubSubTypes?.length > 0) {\n jobcardItem.paymentSubType2 =\n sptype.paymentSubSubTypes.find(\n (subsubtype) =>\n subsubtype.id === jobcardItem.paymentSubType2Id\n ) ?? null;\n jobcardItem.paymentSubType3 =\n sptype.paymentSubSubTypes.find(\n (subsubtype) =>\n subsubtype.id === jobcardItem.paymentSubType3Id\n ) ?? null;\n } else {\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSubType3 = null;\n }\n }\n }\n }\n }\n const ji: JobcardItemCollapsable = jobcardItem;\n ji.checklist =\n ji.checklistInstances?.length > 0\n ? { ...jobcardItem.checklistInstances[0] }\n : { id: null, checklistTemplateId: null };\n\n if (!ji?.currentStatus) {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatus(\n jobcardItem\n );\n }\n\n this.jobcardItems.splice(\n this.jobcardItems.findIndex((i) => i.id === jobcardItem.id),\n 1,\n jobcardItem\n );\n }\n\n private removeClientVerbalAgreementStatus(jobcardItem: JobcardItem) {\n const wtyNotRequired = jobcardItem?.jobcardItemCustomerStatus?.filter(\n (status) =>\n status.actionType === JobcardItemCustomerStatus.ActionTypeEnum.Wty &&\n status.actionPerformedBy &&\n status.actionDateTime &&\n status.action === JobcardItemCustomerStatus.ActionEnum.AutoApv\n );\n if (\n environment.isIveco &&\n jobcardItem?.jobcardItemCustomerStatus?.length > 0 &&\n wtyNotRequired.length > 0 &&\n jobcardItem.isCustomerAgreed\n ) {\n jobcardItem.isCustomerAgreed = false;\n jobcardItem.jobcardItemCustomerStatus.push({\n action: JobcardItemCustomerStatus.ActionEnum.AutoDec,\n actionDateTime: new Date().toISOString(),\n actionType: JobcardItemCustomerStatus.ActionTypeEnum.Wty,\n actionPerformedBy: this.user?.displayedName,\n });\n }\n }\n\n private calculTotalDuration() {\n this.jobcardItems?.forEach((jobcardItem) => {\n jobcardItem.totalDuration = 0;\n jobcardItem.techniciansDuration = [];\n jobcardItem.technicians?.forEach(() => {\n jobcardItem.techniciansDuration.push(0);\n });\n jobcardItem.jobcardItemStatus\n ?.filter(\n (jis) =>\n jis.status !== JobcardItemStatus.StatusEnum.New &&\n jis.status !== JobcardItemStatus.StatusEnum.Todo\n )\n ?.filter((jis) => !jis.deleted)\n ?.forEach((jci) => {\n if (jci?.duration && jci?.workshopUserId) {\n jobcardItem.totalDuration += jci.duration;\n if (environment.isIveco) {\n jobcardItem?.clockedTechnicians?.forEach((technician, index) => {\n if (technician.workshopUserId === jci.workshopUserId) {\n jobcardItem.techniciansDuration[index] += jci.duration;\n }\n if (jobcardItem.techniciansDuration[index] <= 59) {\n jobcardItem.techniciansDuration[index] = 0;\n }\n });\n } else {\n jobcardItem.technicians.forEach((technician, index) => {\n if (technician.workshopUserId === jci.workshopUserId) {\n jobcardItem.techniciansDuration[index] += jci.duration;\n }\n });\n }\n }\n });\n });\n }\n\n private getTechLead(appointment: Appointment): string {\n let workshopUserId: string;\n if (appointment?.jobcard?.jobcardItems) {\n const technicianFrequencies: Map = new Map();\n appointment?.jobcard.jobcardItems.forEach((item) =>\n item.technicians?.forEach((tech) =>\n technicianFrequencies.set(\n tech.workshopUserId,\n (technicianFrequencies.get(tech.workshopUserId) || 0) + 1\n )\n )\n );\n if (technicianFrequencies.size > 0) {\n let highestFrequency = 0;\n technicianFrequencies.forEach((value, key) => {\n if (value > highestFrequency) {\n workshopUserId = key;\n highestFrequency = value;\n }\n });\n }\n }\n return workshopUserId;\n }\n\n private setEnableAutoWarranty(jobcardItem: JobcardItem) {\n if (\n jobcardItem.warrantyCoverage &&\n environment.isIveco &&\n !jobcardItem.isCustomerAgreed &&\n jobcardItem.paymentType.type === this.paymentTypesEnum.Warranty\n ) {\n jobcardItem.isCustomerAgreed = true;\n if (!jobcardItem?.jobcardItemCustomerStatus) {\n jobcardItem.jobcardItemCustomerStatus = [];\n }\n jobcardItem.jobcardItemCustomerStatus.push({\n action: JobcardItemCustomerStatus.ActionEnum.AutoApv,\n actionDateTime: new Date().toISOString(),\n actionType: JobcardItemCustomerStatus.ActionTypeEnum.Wty,\n actionPerformedBy: this.user?.displayedName,\n });\n }\n }\n\n private setClockedTechnicians(jobcardItem: JobcardItemCollapsable) {\n jobcardItem.clockedTechnicians = [];\n\n jobcardItem.technicians?.forEach((tech, index) => {\n if (\n jobcardItem.clockedTechnicians\n .map((t) => t.workshopUserId)\n .indexOf(tech.workshopUserId) < 0\n ) {\n if (\n environment.isIveco &&\n jobcardItem?.jobcardItemStatus?.find(\n (jcStatus: JobcardItemStatus) =>\n jcStatus?.workshopUserId === tech.workshopUserId\n )\n ) {\n jobcardItem.clockedTechnicians.push(tech);\n } else if (!environment.isIveco) {\n jobcardItem.clockedTechnicians.push(tech);\n }\n } else {\n jobcardItem.techniciansDuration.splice(index, 1);\n }\n });\n }\n\n private sendWarrantyNotification(\n appointment: Appointment,\n jobCard: JobcardItem\n ) {\n if (\n this.workshop.marketId === 1 &&\n jobCard?.jobcardItemStatus?.[0].status ===\n JobcardItemStatus.StatusEnum.Done &&\n !jobCard?.jobcardItemStatus?.[0].deleted &&\n this.paymentTypes.find(\n (ptype: any) =>\n ptype?.id === jobCard?.paymentTypeId &&\n ptype?.isVisible &&\n ptype.type === PaymentType.TypeEnum.Warranty\n )\n ) {\n //TODO(Matteo) change with new service notification\n // simple\n // this.notificationService\n // .createNotification({\n // notificationDto: {\n // type: 'WARRANTY_ACTIVITIES_DONE',\n // appointment: this.appointment.id,\n // doneActivities: warantyActivityDone.id.toString(),\n // },\n // noLoader: true,\n // workshopId: this.user.workshopId,\n // authorization: this.userService.accessToken,\n // })\n // .subscribe();\n //TODO(Matteo) ignorare RemoveYaml activities\n\n // this.notificationService\n // .postNewNotification({\n // notificationCreation: {\n // type: 'WARRANTY_ACTIVITIES_DONE',\n // appointmentId: appointment.id,\n // doneActivities: [jobCard.id],\n // },\n // noLoader: true,\n // })\n // .subscribe();\n }\n }\n\n private editApptMent() {\n this.newAppointmentService.retainLatestStatus();\n // const params: UpdateAppointmentRequestParams = {\n // id: this.appointment.id,\n // appointment: this.appointment,\n // };\n //TODO(Matteo) ignorare RemoveYaml activities\n // this.apiAppointmentService.updateAppointment(params).subscribe(\n // () => {\n // this.toastrService.success($localize`Appointment edited`);\n // // Send the notification in case of activities approved by the Service Advisor\n // if (\n // this.appointment?.id &&\n // this.newAppointmentService.newApprovedActivities.length > 0\n // ) {\n // //TODO Matteo updare new service notification\n // // simple\n // // this.notificationService\n // // .createNotification({\n // // notificationDto: {\n // // type: 'CUSTOMER_APPROVED',\n // // appointment: this.appointment.id,\n // // doneActivities: warantyActivityDone.id.toString(),\n // // },\n // // noLoader: true,\n // // workshopId: this.user.workshopId,\n // // authorization: this.userService.accessToken,\n // // })\n // // .subscribe();\n // //TODO(Matteo) ignorare RemoveYaml activities\n // // this.notificationService\n // // .postNewNotification({\n // // notificationCreation: {\n // // type: 'ACTIVITY_APPROVED',\n // // appointmentId: this.newAppointmentService.appointmentInCreation.id,\n // // },\n // // noLoader: true,\n // // })\n // // .subscribe(() => {\n // // this.newAppointmentService.newApprovedActivities = [];\n // // });\n // }\n // },\n // (error: HttpErrorResponse) => {\n // const apiError: ApiError = error.error;\n // this.toastrService.error(apiError.message);\n // }\n // );\n }\n\n private fetchPartsAvailability() {\n this.newAppointment = this.appointment;\n this.newAppointment.hasMissingParts = [];\n this.newAppointment?.jobcard?.jobcardItems?.map(\n (ji: JobcardItemCollapsable, index) => {\n ji.hasMissingParts = [];\n ji.operations?.forEach((op) => {\n const missingParts: string[] = [];\n op.parts?.forEach((part) => {\n // Check if parts are available at home location\n let totalParts = 0;\n part.jobcardItemOperationPartLocationList?.forEach(\n (location: OperationPartLocation) => {\n totalParts = totalParts + location.quantityInStock;\n }\n );\n part.isAvailableAtHomeLocation =\n totalParts < part.quantity ? false : true;\n if (\n !part?.jobcardItemOperationPartLocationList ||\n part?.jobcardItemOperationPartLocationList?.length === 0\n ) {\n part.isAvailableAtHomeLocation = false;\n }\n if (!part.isAvailableAtHomeLocation) {\n const partVal =\n part.part.code +\n (part.part.description\n ? (part.part.code ? ' - ' : '') + part.part.description\n : '') +\n (part.part.manufacturer ? ' - ' + part.part.manufacturer : '');\n\n if (ji.hasMissingParts?.length) {\n ji.hasMissingParts[0].missingParts.push(partVal);\n } else {\n missingParts.push(partVal);\n\n ji.hasMissingParts.push({\n activityId: ji.id,\n activityName: ji.name,\n opePartCode: part.part.code,\n missingParts,\n });\n }\n }\n });\n });\n }\n );\n }\n}\n","
\n \n
\n \n \n \n \n \n \n \n \n \n Start Date\n \n
\n {{ jobcardItem.startDate | date: 'short' }}\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n Client Verbal Agreement\n \n \n Customer Verbal Agreement\n \n \n \n \n \n \n \n \n \n \n \n {{ jobcardItem.code }}\n \n \n \n {{ activityName }}\n \n \n \n \n - {{ jobcardItem.description }}\n \n \n - ({{ jobcardItem.additionalDescription }})\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n Warranty\n On time\n On time\n Heavy overdue\n Heavy overdue\n \n \n \n \n \n Overdue\n \n Overdue\n \n Anticipated\n\n Coming Soon\n Contract/EW\n \n \n Covered by Warranty\n Not Covered by Warranty\n Not Covered by Warranty\n Covered by Contract/EW\n \n \n \n \n \n {{ jobcardItem.officialTime | minutes }}\n \n \n \n \n \n {{ jobcardItem.estimatedDuration | minutes }}\n \n 0 &&\n !isSummary\n \"\n ngbTooltip=\"Clocked Time\"\n i18n-ngbTooltip\n class=\"mr-1 mb-2 d-inline-flex align-self-center\"\n >\n \n \n \n {{ jobcardItem.totalDuration | seconds }}\n \n \n \n \n \n {{ jobcardItem.estimatedDuration | minutes }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0 &&\n !environment?.isIveco) ||\n (!isSummary && environment.isIveco)\n \"\n ngbTooltip=\"Checklist\"\n i18n-ngbTooltip\n >\n \n \n \n \n 0\n \"\n class=\"dot\"\n >\n \n\n \n \n \n \n 0) ||\n (jobcardItem?.cause !== undefined &&\n jobcardItem?.cause.length > 0) ||\n (jobcardItem?.correction !== undefined &&\n jobcardItem?.correction.length > 0) ||\n (jobcardItem?.internalNotes !== undefined &&\n jobcardItem?.internalNotes.length > 0)\n \"\n class=\"dot\"\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n 0\n \"\n ii18n\n >View Checklist/Inspection\n \n \n \n 0 &&\n !environment.isIveco) ||\n (environment.isIveco && jobcardItem.checklistInstances)\n \"\n [ngClass]=\"\n jobcardItem.isCustomerAgreed\n ? 'btn-success'\n : 'btn-outline-success'\n \"\n (click)=\"\n openChecklist(\n jobcardItem,\n this.newAppointmentService.appointmentInCreation\n )\n \"\n ngbTooltip=\"Checklist\"\n i18n-ngbTooltip\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n Loading...\n
\n
\n
\n \n \n
\n No operation has been found for this PIP.\n
\n \n \n
\n
\n \n
Total amount:
\n
\n {{ jobcardItem.totalPrice | currency: currencyCode }}\n
\n
\n
\n \n
\n
\n Workshop Bay/Team\n
\n
\n \n \n \n {{ bay.name }}\n \n \n
\n
\n
\n
\n\n
\n \n \n \n \n Technician\n \n \n \n \n \n \n Clocked Time\n \n \n \n \n \n 0\">\n \n {{\n technician.workshopUserId | workshopUserName | async\n }}\n \n \n \n \n \n {{\n jobcardItem?.techniciansDuration[index] | seconds\n }}\n {{\n jobcardItem?.techniciansDuration[index] / 60\n | minutes\n }}\n \n \n \n \n \n
\n
\n
\n \n
\n
Payment Type
\n \n {{ jobcardItem.paymentType?.name }}\n \n \n -\n \n
\n
\n \n
\n
Payment Subtype
\n \n {{ jobcardItem.paymentSubcode }}\n \n \n -\n \n
\n
\n \n
\n
\n Payment Subtype Description\n
\n \n {{ jobcardItem.paymentSubType.description }}\n \n \n -\n \n
\n \n \n \n \n
\n
Payment Subtype 2
\n
\n {{ jobcardItem.paymentSubType2.code }} -\n {{ jobcardItem.paymentSubType2.description }}\n
\n
\n \n \n
\n
Payment Subtype 3
\n
\n {{ jobcardItem.paymentSubType3.code }} -\n {{ jobcardItem.paymentSubType3.description }}\n
\n
\n \n \n \n \n \n
\n
Installed Date
\n \n {{ jobcardItem.installedDate | date: 'shortDate' }}\n \n \n -\n \n
\n \n \n
\n
\n Amount of Use on Failed Part\n
\n \n {{ jobcardItem.amountUseOnSpareParts }}\n \n \n -\n \n
\n \n \n
\n
\n Failed Part Invoice Number\n
\n \n {{ jobcardItem.sparePartInvoiceNumber }}\n \n \n -\n \n
\n \n \n\n \n \n
\n
\n Failed Component Serial Number\n
\n \n {{ jobcardItem.failedComponentSerialNumber }}\n \n \n -\n \n
\n \n \n
\n
\n Replacement Component Serial Number\n
\n \n {{ jobcardItem.replacedComponentSerialNumber }}\n \n \n -\n \n
\n \n \n
\n
Pre Authorization Code
\n \n {{ jobcardItem.preAuthorizationCode }}\n \n \n -\n \n
\n \n \n
\n
Claim Number
\n \n {{ jobcardItem.warrantyClaimData.claimNumber }}\n \n \n -\n \n
\n \n\n \n
\n
Claim Status
\n \n {{ jobcardItem.warrantyClaimData.claimStatus }}\n \n \n -\n \n
\n \n \n \n \n
\n
Claim Status
\n \n {{ jobcardItem.warrantyClaimData.claimStatus }}\n \n \n -\n \n
\n \n \n
\n \n \n \n
\n
Claim Date
\n \n {{\n jobcardItem.warrantyClaimData.claimDate\n | date: 'shortDate'\n }}\n \n \n -\n \n
\n
\n
Claim Number
\n \n {{ jobcardItem.warrantyClaimData.claimNumber }}\n \n \n -\n \n
\n
\n
Invoice Number
\n \n {{ jobcardItem.warrantyClaimData.invoiceNumber }}\n \n \n -\n \n
\n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n \n
\n\n
\n \n
\n \n \n {{ jobcardItem.defectDescription }}\n
\n
\n
\n
\n \n \n \n \n \n {{ sapFailure.failureCode }} -\n {{ sapFailure.description }}\n \n \n \n \n
\n
\n
\n \n\n
\n
\n \n \n Enable the option to change the Payment Type\n \n \n Update Payment Type\n \n \n \n {{ paymentType?.name }}\n \n \n
\n
\n \n \n \n \n {{\n paymentSubType.description\n }}\n \n \n {{ paymentSubType.type }} -\n {{ paymentSubType.description }}\n \n \n {{\n paymentSubType.description\n }}\n {{ paymentSubType.type }} -\n {{ paymentSubType.description }}\n \n \n \n {{ paymentSubType.description }}\n {{ paymentSubType.type }} -\n {{ paymentSubType.description }}\n \n \n \n \n
\n \n \n \n \n {{ paymentSubType2.code }} -\n {{ paymentSubType2.description }}\n \n \n
\n \n \n \n \n {{ paymentSubType3.code }} -\n {{ paymentSubType3.description }}\n \n \n \n \n \n \n Over Rolled Revised Element\n \n \n\n New Element\n \n \n\n
\n \n \n \n \n \n \n \n {{ template.title }}\n \n \n \n \n
\n \n \n \n \n \n\n
\n \n \n 0\"\n >\n Consumables:\n \n {{ opConsumable.consumable.code }}: ({{\n opConsumable.quantity\n }})\n \n -\n \n
\n \n 0\"\n >\n Parts:\n
\n
\n \n \n \n {{ opPart.part.code }}\n \n \n {{\n opPart.part.isKit && operation.isKitComplete\n ? ' - Kit '\n : ' - ' + opPart.part.description\n }}\n \n \n : ({{ opPart.quantity }})\n \n \n \n \n \n \n {{ opPart.part.code }}\n \n \n - {{ opPart.part.description }}\n \n \n : ({{ opPart.quantity }})\n \n \n \n \n \n \n No consumable or part specified.\n \n
\n
\n
Official time:
\n
\n \n \n \n {{ operation.officialTime | minutes }}\n
\n
\n
\n
Allowed time:
\n
\n \n \n \n {{ operation.durationTime | minutes }}\n
\n
\n
\n \n \n \n \n \n
\n \n \n \n Add a new operation\n
\n \n \n \n \n
Kits
\n
\n \n \n \n \n Buy on Asist\n \n
\n \n \n \n \n
\n \n
\n
Causal Part
\n 0\n \"\n >\n {{ jobcardItem?.causalParts[0]?.code }} -\n {{ jobcardItem?.causalParts[0]?.description }}\n \n \n Other Causal Part\n \n \n -\n \n
\n
\n \n
\n
Part
\n \n {{ jobcardItem?.causalPartCode }}\n \n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n {{ causalPart.code\n }}\n - {{ causalPart.description }}\n \n \n
\n \n \n \n
\n
\n \n
\n \n \n
\n {{ extraOperation.code }} - {{ extraOperation.description }}\n \n - {{ extraOperation.manufacturer }}\n \n \n - Level \n {{ extraOperation.level }}\n \n
\n \n
Price:
\n
\n {{\n extraOperation.amount | currency: currencyCode\n }}\n
\n
\n
\n
Distance:
\n
\n \n {{ extraOperation.distance | measurementUnits }}\n \n
\n
\n
\n \n Quantity:\n
\n \n {{ extraOperation.quantity }}\n \n \n \n \n \n \n \n
\n \n \n \n Add another item\n
\n \n \n
\n \n \n
\n \n \n \n \n {{ type.warranty }} -\n {{ type.description }}\n \n \n \n
\n
\n \n \n
\n \n \n {{ jobcardItem.defectDescription }}\n
\n \n \n \n \n
\n \n \n \n \n {{ sapFailure.failureCode }} -\n {{ sapFailure.description }}\n \n \n \n \n
\n \n \n \n \n \n \n \n {{ causalPart.code\n }}\n - {{ causalPart.description }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n onkeypress=\"return (event.charCode !=8 && event.charCode ==0 || (event.charCode >= 48 && event.charCode <= 57))\"\n maxlength=\"15\"\n min=\"0\"\n [(ngModel)]=\"jobcardItem.failedComponentSerialNumber\"\n (ngModelChange)=\"\n onUpdateNegativeValue(\n jobcardItem.failedComponentSerialNumber,\n i,\n 'failedComponentSerialNumber'\n )\n \"\n />\n
\n \n \n \n
\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n onkeypress=\"return (event.charCode !=8 && event.charCode ==0 || (event.charCode >= 48 && event.charCode <= 57))\"\n maxlength=\"15\"\n min=\"0\"\n [(ngModel)]=\"\n jobcardItem.replacedComponentSerialNumber\n \"\n (ngModelChange)=\"\n onUpdateNegativeValue(\n jobcardItem.replacedComponentSerialNumber,\n i,\n 'replacedComponentSerialNumber'\n )\n \"\n />\n
\n \n
\n\n \n \n \n
\n \n
\n \n
\n \n
\n \n
\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n maxlength=\"15\"\n min=\"0\"\n [(ngModel)]=\"jobcardItem.failedComponentSerialNumber\"\n (ngModelChange)=\"\n onUpdateNegativeValue(\n jobcardItem.failedComponentSerialNumber,\n i,\n 'failedComponentSerialNumber'\n )\n \"\n />\n
\n
\n
\n \n
\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n maxlength=\"15\"\n min=\"0\"\n [(ngModel)]=\"\n jobcardItem.replacedComponentSerialNumber\n \"\n (ngModelChange)=\"\n onUpdateNegativeValue(\n jobcardItem.replacedComponentSerialNumber,\n i,\n 'replacedComponentSerialNumber'\n )\n \"\n />\n
\n
\n \n\n \n
\n \n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n
\n
\n \n \n \n \n
\n \n
\n
\n {{ assemblyDate[i] | date }}\n
\n \n
\n \n \n \n \n \n
\n
\n
\n
\n \n
\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n maxlength=\"16\"\n [(ngModel)]=\"jobcardItem.amountUseOnSpareParts\"\n [disabled]=\"\n jobcardItem.currentStatus?.status ===\n statusEnum.Invoiced\n \"\n />\n
\n
\n
\n \n
\n \n
\n
\n \n \n
\n \n
\n
\n {{ assemblyDate[i] | date }}\n
\n \n
\n \n \n \n \n \n
\n
\n
\n
\n \n
\n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n maxlength=\"16\"\n [(ngModel)]=\"jobcardItem.amountUseOnSpareParts\"\n [disabled]=\"\n jobcardItem.currentStatus?.status ===\n statusEnum.Invoiced\n \"\n />\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n\n {{ travelArrayData.name }}\n \n \n \n \n \n \n \n \n \n \n \n {{ travelArrayData.estimatedDuration | minutes }}\n \n\n \n \n \n \n \n {{ travelArrayData.duration / 60 | minutes }}\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n
\n
\n \n \n \n {{ paymentType?.name }}\n \n \n
\n\n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n\n \n \n Fictitious Material - MISCELLANEOUS\n \n \n \n \n \n
\n
\n
\n
\n\n
\n
\n \n
\n \n
\n {{\n workshop.currencyCode\n }}\n
\n
\n
\n
\n \n \n Check the maximum value from the
\n eTIM bulletins\n \n \n\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n \n {{ travelArrayData.duration / 60 | minutes }}\n
\n
\n
\n \n \n\n
\n
\n
\n \n Address\n
\n
\n \n Co-Ordinates\n
\n
\n
\n
\n \n Address\n
\n
\n \n Co-Ordinates\n
\n
\n\n
\n
\n \n
  • \n \n Enter Manually\n \n
  • \n
  • \n Dealership Address\n \n
  • \n
  • \n Customer Address\n \n
  • \n
  • \n \n Machine Location\n \n \n \n \n
  • \n \n
    \n
    \n
    Travel from
    \n \n \n \n \n \n
    \n \n \n The location was last manually refreshed by user on:\n \n\n \n {{\n travelArrayData.travelFromManualRefreshDate\n | date: 'd MMM, YYYY - h:mm a'\n }}.\n \n
    \n
    \n
    \n \n
  • \n Enter Manually\n \n
  • \n
  • \n Dealership Address\n \n
  • \n
  • \n Customer Address\n \n
  • \n
  • \n \n Machine Location\n \n \n \n \n
  • \n \n
    \n
    \n
    \n
    Travel to
    \n \n \n \n \n \n
    \n \n \n The location was last manually refreshed by user\n on:\n\n {{\n travelArrayData.travelToManualRefreshDate\n | date: 'd MMM, YYYY - h:mm a'\n }}.\n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n \n ×\n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n \n Please enter valid Latitude\n
    \n
    \n \n \n Please enter valid Longitude\n
    \n \n \n The GPS location was last imported on:\n {{\n travelArrayData.travelFromGpsImportedDate\n | date: 'd MMM, YYYY - h:mm a'\n }}.\n
    \n \n
    \n \n
    \n \n \n \n ×\n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n \n
    \n \n \n Please enter valid Latitude\n
    \n
    \n \n \n Please enter valid Longitude\n
    \n \n \n The GPS location was last imported on:\n {{\n travelArrayData.travelToGpsImportedDate\n | date: 'd MMM, YYYY - h:mm a'\n }}.\n \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n Calculate\n \n Loading...\n \n \n \n \n Success! \n Estimated travel distance & time.\n \n \n Error! \n \n Estimate travel distance & time. Please check address details.\n \n \n Please check address details.\n \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ travelArrayData.estimatedDuration | minutes }}\n
    \n
    \n
    \n\n
    \n {{ alert }}\n
    \n
    \n
    \n \n \n \n \n \n \n
    \n\n
    \n \n \n \n \n \n \n
    \n
    \n \n\n \n
    \n
    \n
    \n
    Travel from
    \n
    \n \n

    \n {{ travelArrayData.travelFromAddressLine1 }}\n

    \n

    \n {{ travelArrayData.travelFromAddressLine2 }}\n

    \n

    \n {{ travelArrayData.travelFromAddressLine3 }}\n

    \n

    \n {{ travelArrayData.travelFromAddressLine4 }}\n

    \n

    \n {{ travelArrayData.travelFromPostalCode }}\n

    \n
    \n \n

    \n Latitude:\n {{ travelArrayData.travelFromLatitude }}\n

    \n

    \n Longitude:\n {{ travelArrayData.travelFromLongitude }}\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    Travel to
    \n
    \n \n

    \n {{ travelArrayData.travelToAddressLine1 }}\n

    \n

    \n {{ travelArrayData.travelToAddressLine2 }}\n

    \n

    \n {{ travelArrayData.travelToAddressLine3 }}\n

    \n

    \n {{ travelArrayData.travelToAddressLine4 }}\n

    \n

    \n {{ travelArrayData.travelToPostalCode }}\n

    \n
    \n \n

    \n Latitude:\n {{ travelArrayData.travelToLatitude }}\n

    \n

    \n Longitude:\n {{ travelArrayData.travelToLongitude }}\n

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    Payment Type
    \n \n {{ travelArrayData?.paymentType?.name }}\n \n \n -\n \n
    \n \n
    Payment Subtype 2
    \n
    \n {{ travelArrayData?.paymentSubSubType2?.code }} -\n {{ travelArrayData?.paymentSubSubType2?.description }}\n
    \n
    \n \n
    \n
    \n
    \n Payment Subtype Description\n
    \n \n {{ travelArrayData?.paymentSubType?.description }}\n \n \n -\n \n
    \n \n
    Payment Subtype 3
    \n
    \n {{ travelArrayData?.paymentSubSubType3?.code }} -\n {{ travelArrayData?.paymentSubSubType3?.description }}\n
    \n
    \n \n \n\n
    \n
    \n
    \n
    \n Estimated travel distance\n ({{ measurementUnit }})\n
    \n \n {{ travelArrayData?.estimatedDistance }}\n \n \n -\n \n
    \n
    \n\n
    \n
    \n
    \n Estimated travel time (HH:MM)\n \n \n \n \n \n
    \n {{ travelArrayData.estimatedDuration | minutes }}\n
    \n
    \n
    \n
    \n
    \n Actual travel distance\n ({{ measurementUnit }})\n
    \n \n {{ travelArrayData.distance }}\n \n \n -\n \n
    \n
    \n\n
    \n
    \n
    \n Actual travel time (HH:MM)\n \n \n \n \n \n
    \n {{ travelArrayData.duration / 60 | minutes }}\n
    \n
    \n
    \n
    \n
    \n \n View Estimated Travel Route\n \n \n \n \n Loading...\n
    \n \n
    \n
    \n \n View Actual Route\n \n \n \n \n Loading...\n
    \n \n \n \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n \n
    \n \n\n
    \n \n \n \n \n Add\n \n
    \n
    \n
    \n invalid entry\n
    \n
    \n
    \n {{ alertMessage }}\n
    \n
    \n {{ newActivity?.length }}/{{ activityNameLength }}\n
    \n
    \n
    \n \n
    \n \n \n
    \n \n
    \n \n\n
    \n \n \n \n \n Add\n \n
    \n
    \n
    \n invalid entry\n
    \n
    \n
    \n {{ alertMessage }}\n
    \n
    \n {{ newActivity?.length }}/{{ activityNameLength }}\n
    \n
    \n
    \n \n
    \n \n \n
    \n \n
    \n \n\n
    \n \n \n \n \n Add\n \n
    \n
    \n
    \n invalid entry\n
    \n
    \n
    \n {{ alertMessage }}\n
    \n
    \n {{ newActivity?.length }}/{{ activityNameLength }}\n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n Add\n \n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n Add\n \n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n Add\n \n
    \n
    \n
    \n \n \n\n \n
    \n
    \n \n
    \n \n
    \n \n \n \n \n Add\n \n
    \n
    \n
    \n invalid entry\n
    \n
    \n
    \n \n \n
    \n\n\n
    \n

    Parts may not be available

    \n

    \n Please open the corresponding Activity to review the local and central\n stock level\n

    \n

    Parts details:

    \n \n
      \n \n
        \n
      • {{ part }}
      • \n
      \n
      \n
    \n \n
    \n
    \n","import {\n Component,\n EventEmitter,\n Inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { DocumentService, EpartsService } from '@api-document';\n// import {\n// ApiAppointmentService,\n// EpartsService as EpartsMappingService,\n// } from '@api-jobcard';\nimport { SmartViewService } from '@api-smartview';\nimport {\n Appointment,\n AppointmentIuDocument,\n ChecklistInstance,\n Country,\n EpartsMarketMapping,\n Jobcard,\n JobcardItem,\n JobcardItemIuDocument,\n Operation,\n Permission,\n Workshop,\n WorkshopBay,\n WorkshopUser,\n} from 'src/app/models/model/models';\nimport { ApiError, VinValidity } from '@models-smartview';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { WorkshopService } from 'src/app/core/workshop/workshop.service';\nimport { PermissionsService } from 'src/app/core/permissions/permissions.service';\nimport { environment } from 'src/environments/environment';\nimport { ToastrService } from 'ngx-toastr';\nimport { Router } from '@angular/router';\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\nimport {\n DJCEpartsPart,\n EpartModalComponent,\n} from '../epart-modal/epart-modal.component';\nimport { EtimModalComponent } from '../etim-modal/etim-modal.component';\nimport { UserService } from '../../core/user/user.service';\nimport { DropdownActionService } from '../dropdown-action/dropdown-action.service';\nimport { DmsConnectionService } from '../dms-indicator/dms-connection.service';\nimport { AppointmentInCreation, NewAppointmentService } from 'src/app/appointment/new-appointment.service';\nimport { EPartsService } from 'src/api/djc-booking-service/api/eParts.service';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { WorkshopBayDto, WorkshopDto } from 'src/api/djc-admin-service';\nimport { emailType, EmailTypeEnum } from '../dropdown-action/dropdown-action.component';\nimport { EmailConfirmModalComponent } from 'src/app/appointment/email-confirm-modal/email-confirm-modal.component';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MappingService } from 'src/app/core/mapping/mapping.service';\nimport { AppointmentsService, CreateAppointmentRequestParams, UpdateAppointmentRequestParams, GetAppointmentByIdRequestParams } from 'src/api/djc-booking-service/api/appointments.service';\nimport { checklistInstanceEnum } from '../constants/constants';\nimport { AppointmentEmailsService } from 'src/api/djc-booking-service/api/appointmentEmails.service';\nimport { CountryService } from 'src/api/djc-booking-service/api/country.service';\n\n@Component({\n selector: 'jc-activity-header',\n templateUrl: './activity-header.component.html',\n styleUrls: ['./activity-header.component.scss'],\n})\nexport class ActivityHeaderComponent implements OnInit, OnChanges {\n @Input() newAppointmentService: NewAppointmentService;\n @Input() appointmentService: AppointmentService;\n @Input() workshopBays: WorkshopBayDto[] = [];\n @Output() defaultBay = new EventEmitter();\n @Input() customerPage: boolean;\n readonly orderTypeEnum = Jobcard.DmsOrderTypeEnum;\n djcOrderType = Jobcard.DjcOrderTypeEnum;\n displayEtimButton = true;\n etim: string;\n srtWeb: string;\n power: string;\n workshop: WorkshopDto;\n environment = environment;\n bay: WorkshopBayDto;\n vinValidTooltip = '';\n appointment: Appointment;\n isDmsConnected = false;\n orderTypes = Jobcard.DmsOrderTypeEnum;\n appointmentInCreation: AppointmentInCreation;\n private countries: Country[];\n private marketMappings: EpartsMarketMapping[];\n private connectedUser: WorkshopUser;\n language: string;\n customerDisabled = false;\n\n constructor(\n private workshopService: WorkshopAdminService,\n // private apiAppointmentService: ApiAppointmentService,\n private smartviewService: SmartViewService,\n private epartsService: EpartsService,\n private countryService: CountryService,\n private epartsMappingService: EPartsService,\n private modalService: NgbModal,\n private toasterService: ToastrService,\n private userService: UserService,\n private permissionService: PermissionsService,\n private documentService: DocumentService,\n private router: Router,\n private dropdownActionService: DropdownActionService,\n private dmsConnectionService: DmsConnectionService,\n private emailService: AppointmentEmailsService,\n @Inject(LOCALE_ID) private locale: string,\n public mappingService: MappingService,\n private newApiAppointmentsService: AppointmentsService\n ) {}\n\n ngOnInit(): void {\n this.userService.getUser().subscribe((user) => {\n this.language = this.userService.getLanguage(user.language);\n this.connectedUser = user;\n this.dmsConnectionService.getDmsStatus(user.workshopId).subscribe(\n (status) => {\n this.isDmsConnected = status.connected;\n },\n () => {\n this.isDmsConnected = false;\n }\n );\n });\n this.appointmentInCreation = this.newAppointmentService.appointmentInCreation;\n this.workshopService.getWorkshop().subscribe((workshop) => {\n this.workshop = workshop;\n this.getThdUrl();\n });\n\n if (this.newAppointmentService?.appointmentInCreation?.workshopBayId) {\n this.workshopBays.forEach((wsBay) => {\n if (wsBay.id === this.newAppointmentService.appointmentInCreation.workshopBayId) {\n this.bay = wsBay;\n this.defaultBay.emit(this.bay);\n }\n });\n } else {\n this.bay = undefined;\n this.newAppointmentService.appointmentInCreation.workshopBayId = null;\n }\n\n this.etim = environment.etim;\n this.power = environment.power;\n this.srtWeb = environment.etim;\n\n if (this.newAppointmentService.appointmentInCreation?.vehicle?.vin) {\n if (environment.isIveco) {\n this.etim += '&VIN=' + this.newAppointmentService.appointmentInCreation.vehicle.vin;\n this.power += '?VIN=' + this.newAppointmentService.appointmentInCreation.vehicle.vin;\n } else {\n this.buildEtimAndSrtUrlsForAG();\n this.smartviewService\n .getVinValidity({\n vin: this.newAppointmentService?.appointmentInCreation?.vehicle?.vin?.trim(),\n marketId: this.workshop.marketId,\n })\n .subscribe((vinValid: VinValidity) => {\n if (!vinValid.valid) {\n this.vinValidTooltip = $localize`This Serial Number is not recognized`;\n }\n });\n this.getSmartViewAccess();\n }\n\n if (!this.newAppointmentService.appointmentInCreation.vehicle.epartsBrandName) {\n this.epartsService\n .getEpartsBrandFromVin({\n vin: this.newAppointmentService.appointmentInCreation.vehicle.vin,\n })\n .subscribe((epartsBrandResult) => {\n this.newAppointmentService.appointmentInCreation.vehicle.epartsBrandName =\n epartsBrandResult.epartsBrand;\n });\n }\n } else if (!environment?.isIveco) {\n this.vinValidTooltip = $localize`No Serial Number Selected`;\n }\n\n this.countryService.getAllCountries({authorization: this.userService.accessToken}).subscribe((countries) => {\n this.countries = countries;\n });\n\n this.epartsMappingService\n .getEPartMarketMappings({authorization: this.userService.accessToken})\n .subscribe((marketMappings) => {\n this.marketMappings = marketMappings;\n });\n\n this.permissionService\n .hasPermissions([Permission.IuLinking])\n .subscribe((permissionIuLinking) => {\n this.displayEtimButton = environment.isIveco || permissionIuLinking;\n });\n\n this.customerDisabled = this.newAppointmentService.appointmentInCreation.customerCompany.creditStatusId === 2;\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.newAppointmentService || changes.workshopBays) {\n if (this.newAppointmentService?.appointmentInCreation?.workshopBayId) {\n this.workshopBays.forEach((wsBay) => {\n if (wsBay.id === this.newAppointmentService.appointmentInCreation.workshopBayId) {\n this.bay = wsBay;\n this.defaultBay.emit(this.bay);\n }\n });\n } else {\n this.bay = undefined;\n this.newAppointmentService.appointmentInCreation.workshopBayId = null;\n }\n this.customerDisabled = this.newAppointmentService.appointmentInCreation.customerCompany.creditStatusId === 2;\n }\n }\n\n getThdUrl() {\n // GET THD Url\n /* TEMPORARY REMOVED WHILE THE ISSUE IS INVESTIGATED ON ETIM\n if (\n !this.newAppointmentService.thdUrl &&\n this.newAppointmentService.appointment?.vehicle?.vin\n ) {\n const paramsThd: GetAsistThdURlRequestParams = {\n vin: this.newAppointmentService.appointment.vehicle.vin,\n marketId: this.workshop.marketId,\n sapCode: this.workshop.sapCode,\n noLoader: true,\n };\n\n this.smartviewService.getAsistThdURl(paramsThd).subscribe((url) => {\n if (url) {\n this.newAppointmentService.thdUrl = url.url;\n }\n });\n }\n */\n }\n\n onBayTeamSelect(bay: WorkshopBayDto) {\n if (bay !== undefined) {\n this.newAppointmentService.appointmentInCreation.workshopBayId = bay.id;\n } else {\n bay = null;\n this.newAppointmentService.appointmentInCreation.workshopBayId = null;\n }\n this.defaultBay.emit(bay);\n }\n\n openEpartModal() {\n const modalRef = this.modalService.open(EpartModalComponent, {\n size: 'xl',\n modalDialogClass: 'epart-model-main',\n });\n const componentRef = modalRef.componentInstance as EpartModalComponent;\n componentRef.epartsParts = this.newAppointmentService.appointmentInCreation\n .epartsParts as DJCEpartsPart[];\n componentRef.jobcard = this.newAppointmentService.appointmentInCreation.jobcard;\n componentRef.customer = this.newAppointmentService.appointmentInCreation.customerCompany;\n componentRef.vehicle = this.newAppointmentService.appointmentInCreation.vehicle;\n\n modalRef.result.then(\n (result: any) => {\n //console.log(result);\n },\n () => {\n // Handle dismiss or close model\n }\n );\n }\n\n openEtimModal() {\n const modalRef = this.modalService.open(EtimModalComponent, {\n size: 'xl',\n modalDialogClass: 'etim-model-main',\n backdrop: 'static',\n keyboard: false,\n });\n const componentRef = modalRef.componentInstance as EtimModalComponent;\n componentRef.appointment = this.newAppointmentService.appointmentInCreation;\n componentRef.workshop = this.workshop;\n modalRef.result.then(\n (result: any) => {\n // Modal close with success\n },\n (closeModalRes) => {\n // Handle dismiss or close modal\n const result = JSON.parse(JSON.stringify(closeModalRes));\n const iuDocs: AppointmentIuDocument[] = result.iuDocs;\n const srtDocs: AppointmentIuDocument[] = result.srtDocs;\n this.newAppointmentService.appointmentInCreation.iuDocuments = iuDocs.concat(\n srtDocs\n );\n this.updateSrtOperations(this.newAppointmentService.appointmentInCreation);\n }\n );\n }\n\n /**\n * Create new SRT(s) Operation(s) for each SRT added to activities.\n * This method is called when the IU linking modal is closed\n */\n updateSrtOperations(appointment: Appointment) {\n appointment?.jobcard?.jobcardItems?.forEach((jItem: JobcardItem) => {\n jItem?.jobcardItemIuDocuments?.forEach((jiDoc: JobcardItemIuDocument) => {\n const srtSelected = jItem?.operations.find(\n (ope) => ope.code === jiDoc.iceCode\n );\n if (jiDoc.docType === 'SRT' && !srtSelected) {\n const operation: Operation = {\n code: jiDoc?.iceCode,\n label: jiDoc?.name,\n officialTime: jiDoc?.repairTime * 6,\n durationTime: jiDoc?.repairTime * 6,\n srt: true,\n };\n jItem.operations.push(operation);\n jItem.officialTime = jItem.officialTime + operation.officialTime;\n jItem.estimatedDuration =\n jItem.estimatedDuration + operation.durationTime;\n }\n });\n jItem.officialTime = jItem.officialTime;\n jItem.estimatedDuration = jItem.estimatedDuration;\n });\n }\n\n showIuLinkBasketIcon(): boolean {\n let showBasket = false;\n if (this.newAppointmentService.appointmentInCreation?.iuDocuments?.length > 0) {\n showBasket = true;\n } else {\n const itemsWithIu = this.newAppointmentService.appointmentInCreation?.jobcard?.jobcardItems?.find(\n (item: JobcardItem) => item.jobcardItemIuDocuments?.length > 0\n );\n if (itemsWithIu) {\n showBasket = true;\n }\n }\n return showBasket;\n }\n\n refreshUrlToOperationsScreen(): void {\n if (this.newAppointmentService.appointmentInCreation?.id) {\n // temporary disable canDeactivate in order to avoid the exit modal from showing. It is automatically set to false again during routing\n this.newAppointmentService.bypassDeactivate = true;\n // refresh and redirect to operations screen\n this.router.navigate([\n '/appointment/' +\n this.newAppointmentService.appointmentInCreation.id +\n '/operations',\n ]);\n }\n }\n\n jumpToEtim() {\n this.saveAppointmentIfNotCreated(true, false).then(() => {\n this.refreshUrlToOperationsScreen();\n if (this.newAppointmentService.appointmentInCreation?.id && !environment.isIveco) {\n this.buildEtimAndSrtUrlsForAG();\n window.open(this.etim, '_blank');\n }\n if (this.newAppointmentService.appointmentInCreation?.id && environment.isIveco) {\n this.buildEtimAndSrtUrlsForCV();\n window.open(this.etim, '_blank');\n }\n });\n }\n\n jumpToEtimSrt() {\n this.saveAppointmentIfNotCreated(true, true).then(() => {\n this.refreshUrlToOperationsScreen();\n if (\n this.newAppointmentService.appointmentInCreation?.id &&\n !this.environment.isIveco\n ) {\n this.buildEtimAndSrtUrlsForAG();\n window.open(this.srtWeb, '_blank');\n }\n if (this.newAppointmentService.appointmentInCreation?.id && environment.isIveco) {\n this.buildEtimAndSrtUrlsForCV();\n window.open(this.srtWeb, '_blank');\n }\n });\n }\n\n sendConfirmationEmail() {\n const hasEmail =\n this.appointmentInCreation.status.customerCompanyUser.email ||\n this.appointmentInCreation.customerCompany.email;\n let type: EmailTypeEnum;\n const removeNegotiationEmail = false;\n if (hasEmail) {\n const modalRef = this.modalService.open(EmailConfirmModalComponent);\n modalRef.componentInstance.onlyFinalEmailType = removeNegotiationEmail;\n modalRef.result.then((resp) => {\n type = resp ? emailType.negotiate : emailType.final;\n this.newAppointmentService.setItemsWeight(\n this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems\n );\n let page;\n switch (true) {\n case this.router.url.includes('customer'):\n page = 'customer';\n break;\n case this.router.url.includes('activity'):\n page = 'activity';\n break;\n case this.router.url.includes('operations'):\n page = 'operations';\n break;\n case this.router.url.includes('booking'):\n page = 'booking';\n break;\n }\n let appDto;\n if(page === 'customer') {\n appDto = this.mappingService.mapAppointmentInCreationDtoToCustomerAppointmentDto(this.newAppointmentService.appointmentInCreation);\n } else if(page === 'operations' || page === 'booking'|| page === 'activity') {\n appDto = this.mappingService.mapAppointmentInCreationDtoToBookingAppointmentDto(this.newAppointmentService.appointmentInCreation);\n }\n const params: UpdateAppointmentRequestParams = {\n id:this.newAppointmentService.appointmentInCreation.id,\n authorization: this.userService.accessToken,\n applicationToken: this.userService.newToken,\n bookingAppointmentDtoCustomerAppointmentDto: appDto,\n isComplete: true,\n };\n this.newApiAppointmentsService\n .updateAppointment(params)\n .subscribe(\n () => {\n this.toasterService.success($localize`Appointment edited`);\n this.reloadAppointmentVersion(this.newAppointmentService.appointmentInCreation.id);\n this.emailService\n .sendAppointmentMail({\n appointmentId: this.appointmentInCreation.id,\n emailType: type,\n acceptLanguage: this.language,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n })\n .subscribe(\n () => {\n this.toasterService.success($localize`Email sent`);\n },\n () => {\n this.toasterService.error(\n $localize`Email has not been sent.`\n );\n }\n );\n },\n (error: HttpErrorResponse) => {\n const apiError: ApiError = error.error;\n this.toasterService.error(apiError.message);\n }\n );\n });\n } else {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Send confirmation email`;\n confirmModal.message = $localize`Email addresses are empty. Please enter at least one email address.`;\n confirmModal.action = $localize`OK`;\n confirmModal.showCancelButton = false;\n }\n }\n\n reloadAppointmentVersion(idAppointment: number){\n const params: GetAppointmentByIdRequestParams = {\n id: idAppointment,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n this.newApiAppointmentsService.getAppointmentById(params).subscribe((appointment3) => {\n appointment3.jobcard?.jobcardItems?.forEach(\n (ji: any) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const app = this.mappingService.mapAppointmentViewDtoToAppointmentInCreation(appointment3);\n this.newAppointmentService.setAppointmentInCreation(app);\n });\n }\n private buildEtimAndSrtUrlsForCV() {\n this.etim = environment.etim;\n this.srtWeb = environment.srt;\n if (this.newAppointmentService.appointmentInCreation?.vehicle?.vin) {\n if (this.newAppointmentService.appointmentInCreation?.id) {\n this.etim += '&VIN=' + this.newAppointmentService.appointmentInCreation.vehicle.vin;\n this.etim += '&jobcardId=' + this.newAppointmentService.appointmentInCreation?.id;\n this.srtWeb +=\n '&vin=' + this.newAppointmentService.appointmentInCreation.vehicle.vin;\n this.srtWeb += '&jobcardId=' + this.newAppointmentService.appointmentInCreation?.id;\n this.power += '?VIN=' + this.newAppointmentService.appointmentInCreation.vehicle.vin;\n }\n }\n }\n\n jumpToEparts() {\n // get the static eparts url, only defined for STG AG and PROD AG\n const staticEpartsUrl = environment.eparts;\n if (staticEpartsUrl === '') {\n this.toasterService.warning(\n $localize`Jump on eParts is not allowed on this environment`\n );\n return;\n }\n\n this.saveAppointmentIfNotCreated(false, false).then(() => {\n if (\n this.newAppointmentService.appointmentInCreation?.id &&\n this.newAppointmentService.appointmentInCreation?.vehicle?.epartsBrandName\n ) {\n let ePartsUrl =\n staticEpartsUrl +\n '%2FDC-NA%2F__REGION__%2F__COUNTRY__%2F__LANGUAGE__%2F__BRAND_NAME__%2F__PAGE__';\n\n const language = this.locale.split('-')[0].toLowerCase();\n const country = this.countries.find(\n (c) => c.id === this.workshop.countryId\n );\n const epartsMarket = this.marketMappings.find(\n (m) => m.tidbMarketCode === this.workshop.marketId\n );\n\n ePartsUrl = ePartsUrl.replace(\n '__REGION__',\n epartsMarket?.epartsMarketCode\n );\n ePartsUrl = ePartsUrl.replace(\n '__COUNTRY__',\n country?.abbrev?.toUpperCase() || ''\n );\n ePartsUrl = ePartsUrl.replace('__LANGUAGE__', language);\n ePartsUrl = ePartsUrl.replace(\n '__BRAND_NAME__',\n this.newAppointmentService.appointmentInCreation.vehicle.epartsBrandName\n );\n\n // need to get workshopUserId to send it to Eparts\n this.userService.getUser().subscribe((user) => {\n this.connectedUser = user;\n window.console.log('connected user id: ', this.connectedUser?.id);\n\n const epartsPage = `djc-model?bookingId=${\n this.newAppointmentService.appointmentInCreation.id\n }&dmsId=${\n this.newAppointmentService.appointmentInCreation.jobcard.dmsJobOrder || ''\n }&serialNumber=${\n this.newAppointmentService.appointmentInCreation.vehicle.vin\n }&customerName=${\n this.newAppointmentService.appointmentInCreation.customerCompany?.name || ''\n }&userId=${this.connectedUser?.id}`;\n\n // using encodeURIComponent instead of encodeURI in order to encode ? and = characters\n ePartsUrl = ePartsUrl.replace(\n '__PAGE__',\n encodeURIComponent(epartsPage)\n );\n\n this.refreshUrlToOperationsScreen();\n window.console.log('eParts URL:', ePartsUrl);\n window.open(ePartsUrl, '_blank');\n });\n }\n });\n }\n\n private saveAppointmentIfNotCreated(\n etim: boolean,\n srt: boolean\n ): Promise {\n return new Promise((resolve) => {\n // Do nothing if the appointment is already created in DB\n if (this.newAppointmentService.appointmentInCreation.id) {\n resolve();\n } else {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const componentRef = modalRef.componentInstance as ConfirmModalComponent;\n componentRef.title = $localize`Appointment not yet created`;\n if (srt) {\n componentRef.message = $localize`Your appointment needs to be saved before jumping to SRT Web. `;\n } else if (etim) {\n componentRef.message = $localize`Your appointment needs to be saved before jumping to eTIM. `;\n } else {\n componentRef.message = $localize`Your appointment needs to be saved before jumping to eParts. `;\n }\n componentRef.message += $localize`Do you want to save it now?`;\n componentRef.action = $localize`Save`;\n\n modalRef.result\n .then((confirmed: boolean) => {\n if (confirmed) {\n // Init potential missing data for creation\n const appointmentDate = moment()\n .set('minutes', 0)\n .set('seconds', 0)\n .set('milliseconds', 0);\n if (!this.newAppointmentService.appointmentInCreation.receptionDate) {\n this.newAppointmentService.appointmentInCreation.receptionDate = appointmentDate.toISOString();\n }\n if (!this.newAppointmentService.appointmentInCreation.deliveryDate) {\n this.newAppointmentService.appointmentInCreation.deliveryDate = appointmentDate\n .add(\n this.newAppointmentService.appointmentInCreation.jobcard\n .estimatedDuration || 60,\n 'minutes'\n )\n .toISOString();\n }\n // OLD VERSION\n // Save the appointment\n // this.newAppointmentService.appointmentInCreation.workshopUserId = this.connectedUser?.id;\n // const params: CreateAppointmentRequestParams = {\n // appointment: JSON.parse(\n // JSON.stringify(this.newAppointmentService.appointmentInCreation)\n // ),\n // };\n // Reception checklist templateId set null is no checklist when creating appointment\n // if (\n // params?.appointment?.checklistInstances?.[0]?.type ===\n // ChecklistInstance.TypeEnum.Reception &&\n // params?.appointment?.checklistInstances?.[0]\n // ?.checklistTemplateId === -1\n // ) {\n // params.appointment.checklistInstances[0].checklistTemplateId = null;\n // }\n // this.apiAppointmentService\n // .createAppointment(params)\n // .subscribe((appointment) => {\n // this.newAppointmentService.appointmentInCreation = appointment;\n // resolve();\n // });\n\n // NEW VERSION\n let page;\n switch (true) {\n case this.router.url.includes('customer'):\n page = 'customer';\n break;\n case this.router.url.includes('activity'):\n page = 'activity';\n break;\n case this.router.url.includes('operations'):\n page = 'operations';\n break;\n case this.router.url.includes('booking'):\n page = 'booking';\n break;\n }\n let appDto;\n if(page === 'customer') {\n appDto = this.mappingService.mapAppointmentInCreationDtoToCustomerAppointmentDto(this.newAppointmentService.appointmentInCreation);\n } else if(page === 'operations' || page === 'booking' || page === 'activity') {\n appDto = this.mappingService.mapAppointmentInCreationDtoToBookingAppointmentDto(this.newAppointmentService.appointmentInCreation);\n }\n const params: CreateAppointmentRequestParams = {\n authorization: this.userService.accessToken,\n applicationToken: this.userService.newToken,\n bookingAppointmentDtoCustomerAppointmentDto: appDto,\n isComplete: true,\n src: 'web',\n };\n if (\n this.newAppointmentService.appointmentInCreation?.checklistInstances?.[0]?.type ===\n checklistInstanceEnum.Reception &&\n this.newAppointmentService.appointmentInCreation?.checklistInstances?.[0]\n ?.checklistTemplateId === -1\n ) {\n this.newAppointmentService.appointmentInCreation.checklistInstances[0].checklistTemplateId = null;\n }\n this.newApiAppointmentsService.createAppointment(params).subscribe(res => {\n this.newAppointmentService.temporaryId = res.temporaryId;\n this.newAppointmentService.appointmentInCreation.id = res.id;\n resolve();\n });\n }\n })\n .catch(() => {\n /* Nothing to do */\n });\n }\n });\n }\n\n private getSmartViewAccess() {\n if (\n !this.environment.isIveco &&\n this.newAppointmentService.appointmentInCreation?.vehicle?.vin\n ) {\n this.permissionService\n .hasPermissions([Permission.SmartViewAccessByDealer])\n .subscribe((smartViewAccessByDealer: boolean) => {\n if (smartViewAccessByDealer) {\n const paramAccessSv = {\n vin: this.newAppointmentService.appointmentInCreation.vehicle.vin,\n noLoader: false,\n };\n this.documentService.getSmartViewAccess(paramAccessSv).subscribe(\n (result: any) =>\n (this.newAppointmentService.hasAccessSmartView = result),\n () => (this.newAppointmentService.hasAccessSmartView = false)\n );\n }\n });\n }\n }\n\n private buildEtimAndSrtUrlsForAG() {\n this.etim = environment.etim;\n this.srtWeb = environment.etim;\n if (this.newAppointmentService.appointmentInCreation?.vehicle?.vin) {\n let extraSsoName = 'PIN';\n let extraSsoValue = this.newAppointmentService.appointmentInCreation.vehicle.vin;\n if (this.newAppointmentService.appointmentInCreation?.id) {\n extraSsoName += '|jobcardId';\n extraSsoValue += '|' + this.newAppointmentService.appointmentInCreation?.id;\n }\n this.etim +=\n '&extraSsoName=' + extraSsoName + '&extraSsoValue=' + extraSsoValue;\n this.srtWeb +=\n '&extraSsoName=' +\n extraSsoName +\n '|srtJump&extraSsoValue=' +\n extraSsoValue +\n '|true';\n }\n }\n\n sendOrder(type: string): void {\n this.dropdownActionService.emitButtonClick(type);\n }\n}\n","
    \n \n {{ newAppointmentService.appointmentInCreation.customerNeed }}\n

    \n
    \n
    \n
    \n
    \n
    Customer
    \n \n {{ newAppointmentService.appointmentInCreation.customerCompany.displayedName }}\n ({{\n newAppointmentService?.appointmentInCreation?.cpdAlternateContact\n ?.customerName\n }})\n
    \n \n N/A\n
    \n
    \n
    \n
    Number Plate
    \n
    \n {{ newAppointmentService.appointmentInCreation.vehicle.plate }}\n
    \n
    N/A
    \n
    \n\n
    \n
    PIN/SN
    \n
    \n {{ newAppointmentService.appointmentInCreation.vehicle.vin }}\n
    \n
    N/A
    \n
    \n\n
    \n
    Booking ID
    \n
    \n {{ newAppointmentService.appointmentInCreation.id }}\n
    \n
    N/A
    \n
    \n\n
    \n
    PIN/SN
    \n
    \n {{ newAppointmentService.appointmentInCreation.vehicle.vin }}\n
    \n
    N/A
    \n
    \n
    \n
    DMS Order number / Job Order Number
    \n
    \n {{ newAppointmentService.appointmentInCreation.jobcard.dmsJobOrder }}\n /\n
    \n
    \n {{ newAppointmentService.appointmentInCreation.jobcard.dmsToStrClaim }}\n
    \n
    N/A
    \n
    \n
    \n
    Customer Order Number: \n
    \n {{ newAppointmentService.appointmentInCreation.jobcard.customerOrderNumber }}\n
    \n
    N/A
    \n
    \n
    \n
    Payment Mode
    \n
    \n {{newAppointmentService?.appointmentInCreation?.customerPaymentMode}}\n
    \n
    \n {{newAppointmentService?.appointmentInCreation?.customerCompany?.customerPaymentMode}}\n
    \n
    N/A
    \n
    \n
    \n
    Document Status
    \n \n \n Quote\n \n \n Reservation\n \n \n Order\n \n \n Invoice\n \n \n \n \n Invoice\n \n \n Ready To Invoice\n \n \n
    \n
    \n
    \n \n \n \n \n \n
    \n \n\n
    \n
    \n
    \n \n \n
    \n\n \n \n
    \n\n \n \n \n \n Vehicle Details\n Machine Details\n \n\n \n \n \n \n Create Request\n \n\n \n \n \n \n \n\n
    \n \n 0,\n 'px-4':\n !newAppointmentService.appointmentInCreation?.epartsParts ||\n newAppointmentService.appointmentInCreation?.epartsParts?.length === 0\n }\"\n ngbTooltip=\"Jump to eParts 4.0\"\n i18n-ngbTooltip\n (click)=\"jumpToEparts()\"\n >\n eParts 4.0\n \n 0\"\n class=\"btn btn-outline-primary rounded-pill rounded-left-0 mt-2\"\n ngbTooltip=\"Open Basket\"\n (click)=\"openEpartModal()\"\n i18n-ngbTooltip\n >\n \n \n \n \n
    \n \n \n
    \n
    \n
    0\">\n
    Workshop Bay/Team
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n\n SmartView access is restricted as the PIN/VIN is out of this Workshop's\n subscription
    \n\n","import { Component, Input } from '@angular/core';\nimport { AppointmentStatus } from 'src/app/models/model/models';\nimport { appointmentStatusEnum } from '../constants/constants';\n\n@Component({\n selector: 'jc-appointment-status',\n templateUrl: './appointment-status.component.html',\n styleUrls: ['./appointment-status.component.scss'],\n})\nexport class AppointmentStatusComponent {\n @Input() status: string;\n readonly statusEnum = appointmentStatusEnum;\n}\n","\n \n Cancelled
    \n Draft\n Schedule\n \n Appointment Prepared\n Jobcard Prepared\n \n \n Received\n Checked-In\n \n \n Repairing\n In Progress\n \n \n Service Advisor Validation Pending\n Reception / Service Admin Validation Pending\n \n Client Validation Pending\n Customer Validation Pending\n \n Workfile Validated\n Jobcard Validated\n \n \n Vehicle Delivered\n Machine Delivered\n \n \n Sent Back / Error\n Technician Re-validation\n \n Jobcard Validation Pending\n \n Jobcard Finalised\n \n \n\n","import { Component } from '@angular/core';\nimport { JobcardAttachment,WorkshopUser } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport { UserService } from 'src/app/core/user/user.service';\nimport {\n AzureStorageService,\n UploadStatus,\n} from 'src/app/shared/azure-storage/azure-storage.service';\n\nexport const extensionList = [\n 'DOC',\n 'DOCX',\n 'XLS',\n 'XLSX',\n 'PPT',\n 'PPTX',\n 'JPEG',\n 'JPG',\n 'PNG',\n 'TIF',\n 'TXT',\n 'PDF',\n];\n\n@Component({\n selector: 'jc-add-attachment-modal',\n templateUrl: './add-attachment-modal.component.html',\n styleUrls: ['./add-attachment-modal.component.scss'],\n providers: [AzureStorageService],\n})\nexport class AddAttachmentModalComponent {\n attachmentFile: File;\n description: string;\n azureFolder: string;\n workshopUserId: string;\n jobcardAttachments: JobcardAttachment[];\n \n constructor(\n public activeModal: NgbActiveModal,\n private azureStorageService: AzureStorageService,\n private userService: UserService,\n private toastrService: ToastrService\n ) {}\n\n ngOnInit() {\n this.userService.getUser().subscribe((user) => {\n this.workshopUserId = user.id;\n });\n }\n\n \n \n\n onFileChange(event: any) {\n if (event?.target?.files?.length) {\n this.attachmentFile = event?.target?.files[0] as File;\n }\n if (this.alreadyAdded(this.attachmentFile)) {\n this.toastrService.error(\n $localize`The imported file already exists, please choose a new file to import.`\n );\n }\n }\n\n \n add() {\n if (!this.alreadyAdded(this.attachmentFile)) {\n this.addFile(this.attachmentFile).then((jobcardAttachment) => {\n this.activeModal.close(jobcardAttachment);\n });\n }\n }\n\n alreadyAdded(attachmentFile: File): boolean {\n if (!this.jobcardAttachments) {\n this.jobcardAttachments = [];\n }\n return !!this.jobcardAttachments?.find(\n (attachment) =>\n attachment.filename === attachmentFile.name && !attachment.isDeleted\n );\n }\n\n validateFile(attachmentFile: File): boolean {\n const resField = attachmentFile.name;\n const types = resField.substr(resField.lastIndexOf('.') + 1).toUpperCase();\n if (extensionList.indexOf(types) !== -1) {\n return true;\n } else {\n return false;\n }\n }\n \n\n private addFile(file: File): Promise {\n const reader = new FileReader();\n const fileName = file.name.substring(0, file.name.lastIndexOf('.'));\n const fileExtension = file.name.substring(file.name.lastIndexOf('.') + 1);\n const fileAzureUrl = this.azureStorageService.buildUrl(\n `${fileName}_${moment().format('YYYY-MM-DD_HH-mm-ss')}.${fileExtension}`,\n this.azureFolder\n \n\n\n ); \n \n return new Promise((resolve) => {\n reader.onload = (e) => {\n resolve(this.uploadFileOnAzure(this.getFileSrc(e), file, fileAzureUrl));\n };\n reader.readAsDataURL(file);\n });\n }\n\n private getFileSrc(e: any): string {\n let fileSrc;\n const result = e.target.result;\n if (result instanceof ArrayBuffer) {\n fileSrc = window.btoa(String.fromCharCode(...new Uint8Array(result)));\n } else {\n fileSrc = result;\n }\n return fileSrc;\n }\n\n private uploadFileOnAzure(\n fileSrc: string,\n file: File,\n fileUrl: string\n ): Promise {\n const blob: Blob = this.azureStorageService.b64ToBlob(fileSrc, file.type);\n return new Promise((resolve) => {\n this.azureStorageService.getToken().subscribe((t) => {\n this.azureStorageService\n .uploadAndGetStatus(fileUrl + '?' + t.key, blob)\n .then((statusUpload) => {\n if (statusUpload === UploadStatus.UPLOAD_SUCCESS) {\n const attachment: JobcardAttachment = {};\n attachment.filesize = file.size;\n attachment.filename = file.name;\n attachment.url = fileUrl;\n attachment.type = file.type;\n attachment.creationDate = moment(new Date()).toISOString();\n attachment.year = moment(new Date()).year();\n attachment.description = this.description;\n attachment.workshopUserId = this.workshopUserId;\n resolve(attachment);\n }\n });\n });\n });\n }\n}\n","
    \n

    Add an Attachment

    \n \n ×\n \n
    \n
    \n
    \n \n
    \n \n \n {{\n attachmentFile.name\n }}\n Choose file\n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n \n Cancel\n \n \n Add\n \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { ChecklistDamage, JobcardAttachment } from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { JobcardAttachmentDto } from 'src/api/djc-workitem-service';\nimport { AzureStorageService } from '../azure-storage/azure-storage.service';\nimport {\n AddAttachmentModalComponent,\n extensionList,\n} from './add-attachment-modal/add-attachment-modal.component';\n\n@Component({\n selector: 'jc-attachments-modal',\n templateUrl: './attachments-modal.component.html',\n styleUrls: ['./attachments-modal.component.scss'],\n providers: [AzureStorageService],\n})\nexport class AttachmentsModalComponent implements OnInit {\n @Input() comment = '_empty-comment_';\n jobcardAttachments: JobcardAttachment[] | JobcardAttachmentDto[];\n jobcardEngineHours: JobcardAttachment[] | JobcardAttachmentDto[];\n jobcardSerialNumbers: JobcardAttachment[] | JobcardAttachmentDto[];\n jobcardDamages: ChecklistDamage[];\n creationDate: number=Date.now();\n showDescription = true;\n readonly = false;\n title = $localize`Attachments`;\n azureFolder: string;\n activity = false;\n extensionList = extensionList;\n\n constructor(\n public activeModal: NgbActiveModal,\n private ngbModal: NgbModal,\n private azureStorageService: AzureStorageService\n ) {}\n\n ngOnInit(): void {\n if (this.jobcardAttachments?.length > 0) {\n this.jobcardAttachments = JSON.parse(\n JSON.stringify(this.jobcardAttachments)\n ) as JobcardAttachment[] | JobcardAttachmentDto[];\n } else {\n this.jobcardAttachments = [];\n }\n\n }\n\n removeAttachment(jobcardAttachment: JobcardAttachment | JobcardAttachmentDto) {\n jobcardAttachment.isDeleted = true;\n }\n\n openAttachment(attachment: JobcardAttachment | JobcardAttachmentDto) {\n this.azureStorageService.getToken().subscribe((token) => {\n window.open(`${attachment.url}?${token.key}`, '_blank');\n });\n }\n validAttachment(attachment: JobcardAttachment | JobcardAttachmentDto) {\n if (attachment.filesize != null && attachment.filesize < 10000000) {\n const types = attachment.filename\n .substring(attachment.filename.lastIndexOf('.') + 1)\n .toUpperCase();\n if (extensionList.indexOf(types) !== -1) {\n attachment.isSapOk = true;\n } else {\n attachment.isSapOk = false;\n }\n }\n }\n addAttachment() {\n const modalRef = this.ngbModal.open(AddAttachmentModalComponent, {\n backdrop: 'static',\n size: 'l',\n\n });\n\n modalRef.componentInstance.azureFolder = this.azureFolder;\n modalRef.componentInstance.jobcardAttachments = this.jobcardAttachments;\n modalRef.result.then((attachment: JobcardAttachment | JobcardAttachmentDto) => {\n if (!this.jobcardAttachments) {\n this.jobcardAttachments = [];\n }\n this.validAttachment(attachment);\n this.jobcardAttachments.push(attachment);\n\n });\n\n }\n\n}\n","
    \n

    \n {{ title }}\n

    \n \n ×\n \n
    \n
    \n 0 ||\n jobcardSerialNumbers?.length > 0 ||\n jobcardDamages?.length > 0\n \"\n class=\"h5\"\n i18n\n >\n General attachments\n
    \n \n \n \n File name\n Description\n File size\n \n eWarranty Compatible\n \n Upload date\n Upload time\n Uploaded by\n \n \n
    \n The attachment should not exceed 10MB size and should respect the\n extensions\n
    \n
    \n
    \n \n {{ extension }}\n / \n \n to be sent to eWarranty\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n\n \n \n \n \n {{ attachment.filename }}\n \n \n {{ attachment.description }}\n \n \n {{\n attachment.filesize / 1024 / 1024 < 0.1\n ? '0.1'\n : (attachment.filesize / 1024 / 1024 | number: '1.1-1')\n }}\n MB\n \n \n Yes\n No\n \n \n {{ attachment.creationDate | date: 'shortDate' }}\n \n \n {{ attachment.creationDate | date: 'h:mm a' }}\n \n \n {{ attachment?.workshopUserId | workshopUserName | async }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n 0\">\n
    \n
    SN / PIN
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    File name
    \n {{ attachment.filename }}\n \n \n \n \n \n \n
    \n
    \n
    \n\n 0\">\n
    \n
    Engine Hours
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    File name
    \n {{ attachment.filename }}\n \n \n \n \n \n \n
    \n
    \n\n 0\">\n
    \n
    Damages
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    File name
    \n {{\n attachment?.filename\n ? attachment?.filename\n : attachment?.comment\n }}\n \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n\n
    \n \n Close\n \n \n \n Cancel\n \n \n Save\n \n \n
    \n","import {\n Component,\n OnDestroy,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n NgbCalendar,\n NgbDate,\n NgbDateParserFormatter,\n} from '@ng-bootstrap/ng-bootstrap';\nimport * as FileSaver from 'file-saver';\nimport * as moment from 'moment';\nimport { Subscription } from 'rxjs';\nimport { Util } from 'src/app/core/util/util';\nimport { environment } from 'src/environments/environment';\nimport { SortableDirective, SortEvent } from '../sortable/sortable.directive';\nimport { AppointmentDto, AuditReportService, AuditTrackingMultiExportRequestParams, WorkshopBayDto, WorkshopUserDto } from 'src/api/djc-report-service';\nimport { AppointmentStatus } from 'src/app/models/model/models';\nimport { AppointmentStatusDto, GetWorkshopBaysByWorkshopIdRequestParams, WorkshopBayService } from 'src/api/djc-booking-service';\nimport { WorkshopUsersAdminService } from 'src/app/core/workshop-user-admin/workshop-user-admin.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { AppointmentsService, AppointmentForWorkfileRequestParams } from 'src/api/djc-workitem-service';\nimport { MatomoTracker } from '@ngx-matomo/tracker';\nimport { MatomoCustomService } from 'src/app/core/matomo/matomo-custom.service';\n\ninterface AppointmentDisplayed extends AppointmentDto {\n customer?: string;\n serviceAdvisor?: string;\n spentDuration?: number;\n selected?: boolean;\n isWarranty?: string;\n}\n\n@Component({\n selector: 'jc-audit',\n templateUrl: './audit.component.html',\n styleUrls: ['./audit.component.scss'],\n})\nexport class AuditComponent implements OnInit, OnDestroy {\n @ViewChildren(SortableDirective) headers: QueryList;\n internal = false;\n searchFilter = '';\n appointmentStatusKeyFilter: 'all' | AppointmentStatus.StatusEnum = 'all';\n fromDate: NgbDate | null;\n endDate: NgbDate | null;\n workshopBayIdFilter: 'all' | number = 'all';\n workshopUserIdFilter: 'all' | string = 'all';\n hoveredDate: NgbDate | null = null;\n appointmentStatus: AppointmentStatus.StatusEnum[];\n statusEnum = AppointmentStatus.StatusEnum;\n unitDownValue: 'all' | 'Active' | 'Down' = 'all';\n warranty: 'all' | 'Yes' | 'No' = 'all';\n downStatus: ('Active' | 'Down')[] = ['Active', 'Down'];\n warrantyStatus: ('Yes' | 'No')[] = ['Yes', 'No'];\n workshopBays: WorkshopBayDto[];\n workshopUsers: WorkshopUserDto[];\n appointments: AppointmentDisplayed[] = [];\n appointmentInit: AppointmentDto[] = [];\n vehicleId: number;\n selectedAll: boolean | 'indeterminate';\n defaultSort: SortEvent = {\n column: 'deliveryDate',\n direction: 'desc',\n };\n orderNumber: string;\n private subscriptions: Subscription[] = [];\n user: WorkshopUserDto;\n workshopId: number;\n\n constructor(\n private calendar: NgbCalendar,\n public formatter: NgbDateParserFormatter,\n private workshopUsersService: WorkshopUsersAdminService,\n private apiAppointmentService: AppointmentsService,\n private workshopBayService: WorkshopBayService,\n private auditService: AuditReportService,\n private activatedRoute: ActivatedRoute,\n private userService: UserAdminService,\n private matomoTracker: MatomoTracker,\n private matomoCustomService: MatomoCustomService\n ) {\n\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n this.workshopId = user.workshopId;\n });\n\n\n if (environment.isIveco) {\n this.appointmentStatus = [\n AppointmentStatus.StatusEnum.Draft,\n AppointmentStatus.StatusEnum.Schedule,\n AppointmentStatus.StatusEnum.AppointmentPrepared,\n AppointmentStatus.StatusEnum.Received,\n AppointmentStatus.StatusEnum.Reparing,\n AppointmentStatus.StatusEnum.ServiceAdvisorValidationPending,\n AppointmentStatus.StatusEnum.ClientValidationPending,\n AppointmentStatus.StatusEnum.WarrantyValidationPending,\n AppointmentStatus.StatusEnum.WorkfileValidated,\n AppointmentStatus.StatusEnum.Delivered,\n AppointmentStatus.StatusEnum.SentBackError,\n AppointmentStatus.StatusEnum.Cancelled,\n ];\n } else {\n this.appointmentStatus = [\n AppointmentStatus.StatusEnum.Draft,\n AppointmentStatus.StatusEnum.AppointmentPrepared,\n AppointmentStatus.StatusEnum.Received,\n AppointmentStatus.StatusEnum.Reparing,\n AppointmentStatus.StatusEnum.WarrantyValidationPending,\n AppointmentStatus.StatusEnum.SentBackError,\n AppointmentStatus.StatusEnum.WorkfileValidated,\n AppointmentStatus.StatusEnum.Cancelled,\n AppointmentStatus.StatusEnum.JobcardFinalised,\n ];\n }\n }\n\n ngOnInit(): void {\n const pageTitle = 'Reports - Audit';\n this.matomoCustomService.customDimensionsIsReady.subscribe(isReady => {\n if (isReady) {\n this.matomoTracker.setDocumentTitle(pageTitle);\n this.matomoTracker.trackPageView(pageTitle);\n }\n });\n\n this.subscriptions.push(\n this.activatedRoute.data.subscribe((data) => {\n this.internal = data.internal;\n })\n );\n const to: Date = new Date();\n const from: Date = moment(to).add(-7, 'days').toDate();\n this.fromDate = new NgbDate(\n from.getFullYear(),\n from.getMonth() + 1,\n from.getDate()\n );\n this.onDateSelection(\n new NgbDate(to.getFullYear(), to.getMonth() + 1, to.getDate())\n );\n\n this.workshopUsersService.getWorkshopUsers().subscribe((workshopUsers) => {\n this.workshopUsers = workshopUsers;\n });\n\n const params: GetWorkshopBaysByWorkshopIdRequestParams = {\n isActive: true,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n };\n\n this.workshopBayService\n .getWorkshopBaysByWorkshopId(params)\n .subscribe((workshopBays) => (this.workshopBays = workshopBays));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n getAppointments() {\n if (this.fromDate && this.endDate) {\n const fromDateStr: string = moment(\n new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day)\n ).format('YYYY-MM-DD');\n const endDateStr: string = moment(\n new Date(this.endDate.year, this.endDate.month - 1, this.endDate.day)\n ).format('YYYY-MM-DD');\n const params: AppointmentForWorkfileRequestParams = {\n startDate: fromDateStr,\n endDate: endDateStr,\n view: 'planning',\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n if (this.workshopUserIdFilter !== 'all') {\n params.workshopUserId = this.workshopUserIdFilter;\n }\n if (this.vehicleId) {\n params.vehicleId = this.vehicleId;\n }\n if (this.orderNumber) {\n params.dmsJobOrder = this.orderNumber;\n }\n this.apiAppointmentService.appointmentForWorkfile(params)\n .subscribe((appointments) => {\n this.appointmentInit = appointments;\n this.vehicleId = undefined;\n this.applyFilter();\n this.onSort();\n });\n }\n }\n\n validateInput(currentValue: NgbDate | null, input: string): NgbDate | null {\n const parsed = this.formatter.parse(input);\n return parsed && this.calendar.isValid(NgbDate.from(parsed))\n ? NgbDate.from(parsed)\n : currentValue;\n }\n\n bayChange() {\n if (this.workshopBayIdFilter !== 'all') {\n const user = this.workshopUsers.find(\n (workshopUser) => workshopUser.id === this.workshopUserIdFilter\n );\n if (!user || !this.hasWorkshopBay(user, this.workshopBayIdFilter)) {\n this.workshopUserIdFilter = 'all';\n this.userChange();\n }\n }\n this.applyFilter();\n }\n\n hasWorkshopBay(workshopUser: WorkshopUserDto, workshopBayId: number): boolean {\n return !!workshopUser?.workshopBays?.find(\n (bay) => bay.id === workshopBayId\n );\n }\n\n userChange() {\n this.getAppointments();\n }\n\n applyFilter() {\n this.appointments = [];\n this.appointmentInit.forEach((item) => {\n if (this.isDisplayed(item)) {\n this.appointments.push(this.toAppointmentDisplayed(item));\n }\n });\n this.appointments.forEach((app) => {\n app?.jobcard?.jobcardItems.forEach((jobcardItem) => {\n if (jobcardItem.warrantyCoverage) {\n app.isWarranty = 'Yes';\n }\n });\n if (app.isWarranty !== 'Yes') {\n app.isWarranty = 'No';\n }\n });\n }\n\n unitChange() {\n this.applyFilter();\n if (this.unitDownValue !== 'all') {\n this.appointments.forEach(() => {\n if (this.unitDownValue === 'Down') {\n this.appointments = this.appointments.filter(\n (app) => app.unitStatus?.unitDown === true\n );\n } else {\n this.appointments = this.appointments.filter(\n (app) => app.unitStatus?.unitDown === false\n );\n }\n });\n }\n }\n\n warrantyChange() {\n this.applyFilter();\n if (this.warranty !== 'all') {\n this.appointments.forEach(() => {\n this.appointments = this.appointments.filter(\n (app) => app.isWarranty === this.warranty\n );\n });\n }\n }\n\n onDateSelection(date: NgbDate, overwrite: 'from' | 'end' | boolean = null) {\n if (overwrite === 'from') {\n this.fromDate = date;\n } else if (overwrite === 'end') {\n this.endDate = date;\n } else if (overwrite === null) {\n if (!this.fromDate && !this.endDate) {\n this.fromDate = date;\n } else if (\n this.fromDate &&\n !this.endDate &&\n date &&\n (date.after(this.fromDate) || date.equals(this.fromDate))\n ) {\n this.endDate = date;\n } else {\n this.endDate = null;\n this.fromDate = date;\n }\n }\n\n this.getAppointments();\n }\n\n isHovered(date: NgbDate) {\n return (\n this.fromDate &&\n !this.endDate &&\n this.hoveredDate &&\n date.after(this.fromDate) &&\n date.before(this.hoveredDate)\n );\n }\n\n isInside(date: NgbDate) {\n return (\n this.endDate && date.after(this.fromDate) && date.before(this.endDate)\n );\n }\n\n isRange(date: NgbDate) {\n return (\n date.equals(this.fromDate) ||\n (this.endDate && date.equals(this.endDate)) ||\n this.isInside(date) ||\n this.isHovered(date)\n );\n }\n\n selectedChanged() {\n const appointmentSelected: AppointmentDto[] = [];\n this.appointments.forEach((appointment) => {\n if (appointment.selected) {\n appointmentSelected.push(appointment);\n }\n });\n if (appointmentSelected.length === 0) {\n this.selectedAll = false;\n } else if (appointmentSelected.length === this.appointments.length) {\n this.selectedAll = true;\n } else {\n this.selectedAll = 'indeterminate';\n }\n }\n\n selectedAllChanged() {\n this.appointments.forEach((appointment) => {\n appointment.selected = !!this.selectedAll;\n });\n this.selectedChanged();\n }\n\n exportExcel(id?: AppointmentStatusDto['id']) {\n if (id) {\n const params: AuditTrackingMultiExportRequestParams = {\n workshopId: this.workshopId,\n userId: this.userService.newUserId,\n authorization: this.userService.accessToken,\n requestBody: [id.toString()],\n };\n this.auditService.auditTrackingMultiExport(params, 'response').subscribe((response) => {\n const filename = Util.getFileNameFromHttpResponse(response);\n FileSaver.saveAs(response.body, filename);\n });\n } else {\n const ids: string[] = [];\n ids.push(...this.appointments.filter((a) => a.selected).map((a) => a.id.toString()));\n const params: AuditTrackingMultiExportRequestParams = {\n workshopId: this.workshopId,\n userId: this.userService.newUserId,\n authorization: this.userService.accessToken,\n requestBody: ids,\n };\n this.auditService.auditTrackingMultiExport(params, 'response').subscribe((response) => {\n const filename = Util.getFileNameFromHttpResponse(response);\n FileSaver.saveAs(response.body, filename);\n });\n }\n }\n\n onSort(sortEvent: SortEvent = this.defaultSort) {\n this.defaultSort = sortEvent;\n if (this.headers) {\n this.headers.forEach((header) => {\n if (header.jcSortable !== sortEvent.column) {\n header.direction = '';\n }\n });\n }\n Util.sortTable(this.appointments, sortEvent);\n }\n\n private isDisplayed(item: AppointmentDto) {\n let isDisplayed = true;\n\n if (\n this.appointmentStatus !== undefined &&\n this.appointmentStatusKeyFilter !== undefined\n ) {\n isDisplayed =\n isDisplayed &&\n (item.status.status.includes(\n this.appointmentStatusKeyFilter.toString()\n ) ||\n this.appointmentStatusKeyFilter === 'all');\n }\n\n if (this.searchFilter !== undefined || this.searchFilter !== '') {\n isDisplayed =\n isDisplayed &&\n ((item.vehicle &&\n item.vehicle.plate !== undefined &&\n item.vehicle.plate\n .toLowerCase()\n .indexOf(this.searchFilter.toLowerCase()) > -1) ||\n (item.vehicle &&\n item.vehicle.vin !== undefined &&\n item.vehicle.vin\n .toLowerCase()\n .indexOf(this.searchFilter.toLowerCase()) > -1) ||\n (item.customerCompany.displayedName !== undefined &&\n item.customerCompany.displayedName\n .toLowerCase()\n .indexOf(this.searchFilter.toLowerCase()) > -1) ||\n (item.status.workshopUser.lastName !== undefined &&\n item.status.workshopUser.lastName\n .toLowerCase()\n .indexOf(this.searchFilter.toLowerCase()) > -1) ||\n (item.status.workshopUser.firstName !== undefined &&\n item.status.workshopUser.firstName\n .toLowerCase()\n .indexOf(this.searchFilter.toLowerCase()) > -1));\n }\n\n if (this.workshopBayIdFilter !== 'all') {\n isDisplayed =\n isDisplayed && item.workshopBayId === this.workshopBayIdFilter;\n }\n return isDisplayed;\n }\n\n private toAppointmentDisplayed(item: AppointmentDto): AppointmentDisplayed {\n const appointment: AppointmentDisplayed = { ...item };\n const workshopUser: WorkshopUserDto = appointment.status.workshopUser;\n appointment.serviceAdvisor = workshopUser?.displayedName;\n appointment.spentDuration = 0;\n appointment.jobcard.jobcardItems?.forEach((jobcardItem) =>\n jobcardItem.jobcardItemStatus?.forEach((status) => {\n if (!status?.deleted && status?.duration && status?.workshopUserId) {\n appointment.spentDuration += status?.duration;\n }\n })\n );\n return appointment;\n }\n}\n","

    Audit

    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n Schedule\n \n Appointment Prepared\n Jobcard Prepared\n \n \n Received\n Checked-In\n \n \n Repairing\n In Progress\n \n \n Service Advisor Validation Pending\n Reception / Service Admin Validation Pending\n \n \n Client Validation Pending\n Customer Validation Pending\n \n \n Workfile Validated\n Jobcard Validated\n \n \n Vehicle Delivered\n Machine Delivered\n \n \n Sent Back / Error\n Technician Re-validation\n \n Jobcard Validation Pending\n \n Draft\n Cancelled\n \n Jobcard Finalised\n \n \n \n \n
    \n
    \n \n
    \n
    \n \n \n \n {{ date.day }}\n \n \n
    \n
    \n \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n {{ workshopBay.name }}\n \n \n
    \n
    \n \n \n \n \n \n {{ workshopUser.firstName }} {{ workshopUser.lastName }}\n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n 0\">\n \n \n \n \n \n
    \n \n \n \n \n \n Order number\n \n \n Delivery date\n \n \n Vehicle\n \n \n Machine\n \n \n Model\n \n \n \n Customer\n \n \n Status\n \n \n\n \n \n Unit Status\n \n \n Allowed Time\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n appointment.jobcard.estimatedDuration * 60\n }\"\n >\n {{ appointment.spentDuration | seconds }}\n \n \n \n \n
    \n
    \n \n \n
    \n
    \n Is warranty\n \n Last modification\n \n Service Advisor\n Created By\n \n Clocked Time\n
    \n
    \n \n \n
    \n
    {{ appointment.jobcard.dmsJobOrder }}{{ appointment.deliveryDate | date }}{{ appointment.vehicle?.plate }}{{ appointment.vehicle?.vin }}\n {{ appointment.vehicle?.model?.name }}\n {{ appointment.isWarranty }}{{ appointment.customerCompany.displayedName }}\n \n {{ appointment.status.time | date }}{{ appointment.serviceAdvisor }}\n Down\n Active\n {{ appointment.jobcard.estimatedDuration | minutes }}\n \n \n \n \n \n
    \n
    \n
    \n
    \n No results with current filter\n
    \n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AzureToken } from 'src/app/models/model/models';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GetAzureSasTokenRequestParams as NewGetAzureSasTokenRequestParams, AzureService as AdminAzureService } from 'src/api/djc-admin-service/api/azure.service';\nimport { AzureService as AsistAzureService, GetAzureSasTokenRequestParams as AsistGetAzureSasTokenRequestParams } from 'src/api/djc-asist-service/api/azure.service';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { environment } from 'src/environments/environment';\nimport { GetAzureSasTokenRequestParams as NewBookingGetAzureSasTokenRequestParams, AzureService as BookingAzureService } from 'src/api/djc-booking-service/api/azure.service';\nimport { Router } from '@angular/router';\nimport { AzureService as WorkItemAzureService} from 'src/api/djc-workitem-service/api/azure.service';\n\n// eslint-disable-next-line no-shadow\nexport enum UploadStatus {\n NO_UPLOAD,\n UPLOAD_STARTED,\n UPLOAD_SUCCESS,\n UPLOAD_ERROR,\n}\n\n/**\n * Azure authorization token.\n */\n\n@Injectable({\n providedIn: 'any',\n})\nexport class AzureStorageService {\n /** Subject to follow upload finishing (or not). */\n private uploadFinishedSubject: BehaviorSubject = new BehaviorSubject(\n UploadStatus.NO_UPLOAD\n );\n\n constructor(\n private httpClient: HttpClient,\n private azureService: AsistAzureService,\n private adminAzureService: AdminAzureService,\n private userService: UserService,\n private bookingAzureService: BookingAzureService,\n private workItemAzureService: WorkItemAzureService,\n private router: Router\n ) {}\n\n // * Build the final file URL in Azure storage for Jobcard.\n // * @param fileName File name.\n // * @param destFolder Destination folder under the root folder \"jobcard/\".\n // */\n buildUrl(fileName: string, destFolder: string): string {\n return `${environment.azureUrl}/${environment.azureContainer}/${destFolder}/${fileName}`;\n }\n\n buildUrlFeedback(fileName: string, destFolder: string): string {\n return `https://azeucmsaststp020.blob.core.windows.net/dev/${fileName}`;\n }\n\n /**\n * Put the Blob on Azure Blob Storage.\n *\n * @param url Url of the storage.\n * @param blob Blob to upload.\n * @return Request result.\n */\n putBlob(url: string, blob: Blob) {\n // Init the finish alert subject\n this.uploadFinishedSubject.next(UploadStatus.UPLOAD_STARTED);\n\n // Url of the request.\n this.getToken().subscribe((t) => {\n url = url + '?' + t.key;\n\n // Http Headers.\n const headers = {\n 'x-ms-blob-type': 'BlockBlob',\n 'x-ms-blob-content-type': blob.type,\n };\n\n // Read the blob file.\n const fileReader = new FileReader();\n // On file load.\n fileReader.onload = (e: any) =>\n // Send the put request.\n this.httpPut(url, e.target.result, { headers }).then(\n () => this.uploadFinishedSubject.next(UploadStatus.UPLOAD_SUCCESS),\n () => this.uploadFinishedSubject.next(UploadStatus.UPLOAD_ERROR)\n );\n fileReader.readAsArrayBuffer(blob);\n });\n }\n\n isUploadFinished(): Observable {\n return this.uploadFinishedSubject.asObservable();\n }\n\n /**\n * Put the Blob on Azure Blob Storage.\n *\n * @param url Url of the storage.\n * @param blob Blob to upload.\n * @return Request result.\n */\n uploadAndGetStatus(url: string, blob: Blob): Promise {\n // Init the finish alert subject\n // this.uploadFinishedSubject.next(UploadStatus.UPLOAD_STARTED);\n\n // Http Headers.\n const headers = {\n 'x-ms-blob-type': 'BlockBlob',\n 'x-ms-blob-content-type': blob.type,\n };\n\n // Read the blob file.\n const fileReader = new FileReader();\n // On file load.\n\n return new Promise((resolve, reject) => {\n fileReader.onload = (e: any) => {\n const data = e.target.result;\n\n this.httpPut(url, data, { headers }).then(\n () => resolve(UploadStatus.UPLOAD_SUCCESS),\n () => reject(UploadStatus.UPLOAD_ERROR)\n );\n };\n fileReader.readAsArrayBuffer(blob);\n });\n }\n\n /**\n * Convert a base 64 data to a blob.\n *\n * @param b64Data Base 64 data to convert.\n * @param contentType Type of content.\n * @param sliceSize size of differents data slice.\n * @return The blob.\n */\n b64ToBlob(b64Data: string, contentType: string, sliceSize: number = 512) {\n contentType = contentType || '';\n sliceSize = sliceSize || 512;\n if (b64Data.indexOf('data:') > -1) {\n b64Data = b64Data.split('base64,')[1];\n }\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n\n // Create a blob with the data and the content type.\n return new Blob(byteArrays, { type: contentType });\n }\n\n /**\n * Transform Data url to blob.\n *\n * @param dataURI The blob.\n */\n dataURLtoBlob(dataURI: string): Blob {\n // convert base64 to raw binary data held in a string\n let byteString;\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\n byteString = atob(dataURI.split(',')[1]);\n } else {\n byteString = unescape(dataURI.split(',')[1]);\n }\n\n // separate out the mime component\n const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n\n // write the bytes of the string to an ArrayBuffer\n const ab = new ArrayBuffer(byteString.length);\n const ia = new Uint8Array(ab);\n\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return new Blob([ab], { type: mimeString });\n }\n\n getToken(): Observable {\n const currentUrl = this.router.url;\n if(currentUrl.includes('/admin/')) {\n const params: NewGetAzureSasTokenRequestParams = {\n authorization: this.userService.accessToken,\n };\n return this.adminAzureService.getAzureSasToken(params);\n } else if (!currentUrl.includes('/your-appointment')) {\n const params: NewBookingGetAzureSasTokenRequestParams = {\n authorization: this.userService.accessToken,\n };\n return this.bookingAzureService.getAzureSasToken(params);\n } else {\n return this.workItemAzureService.getAzureSasToken();\n }\n }\n\n getTokenFeedback(): Observable {\n const params: AsistGetAzureSasTokenRequestParams = {\n authorization: this.userService.accessToken,\n };\n return this.azureService.getAzureSasToken(params);\n }\n\n private httpPut(path: string, params: any, options = {}): Promise {\n return new Promise((resolve, reject) => {\n this.httpClient.put(path, params, options).subscribe(\n (data) => {\n resolve(data);\n },\n (error) => {\n window.console.debug(error);\n reject(false);\n }\n );\n });\n }\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, HostListener } from '@angular/core';\n\n@Component({\n selector: 'jc-back-to-top',\n templateUrl: './back-to-top.component.html',\n styleUrls: ['./back-to-top.component.scss'],\n animations: [\n trigger('inOutAnimation', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('.3s ease-out', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n style({ opacity: 1 }),\n animate('.3s ease-in', style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class BackToTopComponent {\n windowScrolled: boolean;\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop > 100\n ) {\n this.windowScrolled = true;\n } else if (\n (this.windowScrolled && window.pageYOffset) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 10\n ) {\n this.windowScrolled = false;\n }\n }\n\n scrollToTop() {\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n (function smoothscroll() {\n const currentScroll =\n document.documentElement.scrollTop || document.body.scrollTop;\n if (currentScroll > 0) {\n window.requestAnimationFrame(smoothscroll);\n window.scrollTo(0, currentScroll - currentScroll / 8);\n }\n })();\n }\n}\n","\n \n \n \n\n","import { FormatWidth, getLocaleDateFormat } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Inject,\r\n Input,\r\n LOCALE_ID,\r\n OnInit,\r\n QueryList,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\n// import {\r\n// ApiBacklogAppointmentService,\r\n// BackloglistRequestParams,\r\n// } from '@api-jobcard';\r\nimport {\r\n Appointment,\r\n AppointmentStatus,\r\n FilterBy,\r\n JobcardItem,\r\n} from 'src/app/models/model/models';\r\nimport { catchError, filter, of, tap } from 'rxjs';\r\nimport { Util } from 'src/app/core/util/util';\r\nimport { WorkshopUsersService } from 'src/app/core/workshop-user/workshop-user.service';\r\nimport { WorkfileService } from 'src/app/workfile/workfile.service';\r\nimport { SortableDirective, SortEvent } from '../sortable/sortable.directive';\r\nimport { JobcardItemDto, WorkshopUserDto } from 'src/api/djc-admin-service';\r\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\r\nimport { MatomoTracker } from '@ngx-matomo/tracker';\r\nimport { MatomoCustomService } from 'src/app/core/matomo/matomo-custom.service';\r\n\r\n@Component({\r\n selector: 'jc-backlog-list',\r\n templateUrl: './backlog-list.component.html',\r\n styleUrls: ['./backlog-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BacklogListComponent implements OnInit {\r\n @ViewChildren(SortableDirective) headers: QueryList;\r\n @Input() currentUser: WorkshopUserDto;\r\n @Input() moduleView: string;\r\n @Input() listAction = true;\r\n @Input() scrollContainer: string;\r\n @Input() enableScrollContainer = false;\r\n @Input() pageLimt = 20;\r\n @Input() isPage = true;\r\n dateFormat: string;\r\n appointments: Appointment[];\r\n workshopUsers: WorkshopUserDto[];\r\n users: WorkshopUserDto[] = [];\r\n readonly statusEnum = AppointmentStatus.StatusEnum;\r\n filterByOptions: { id: FilterBy; value: string }[] = [\r\n {\r\n id: FilterBy.CustomerName,\r\n value: $localize`Customer`,\r\n },\r\n {\r\n id: FilterBy.DmsJobOrder,\r\n value: $localize`DMS Order / Job Order`,\r\n },\r\n {\r\n id: FilterBy.Brand,\r\n value: $localize`Brand`,\r\n },\r\n {\r\n id: FilterBy.Model,\r\n value: $localize`Model`,\r\n },\r\n {\r\n id: FilterBy.Vin,\r\n value: $localize`Serial Number`,\r\n },\r\n ];\r\n filterByEnum = FilterBy;\r\n filertForm: FormGroup;\r\n scrollDistance = 1;\r\n scrollUpDistance = 2;\r\n disableInfiniteScroll = false;\r\n isBacklokApiCall = false;\r\n pagination: any/* BackloglistRequestParams */ = {\r\n workshopId: null,\r\n start: 0,\r\n limit: 20,\r\n };\r\n\r\n sortByOption: { name: string; sortOrder: 'asc' | 'desc' } = {\r\n name: 'time',\r\n sortOrder: 'desc',\r\n };\r\n\r\n constructor(\r\n private workshopUserService: WorkshopUsersService,\r\n private cdRef: ChangeDetectorRef,\r\n private formBuilder: FormBuilder,\r\n private userService: UserAdminService,\r\n public workfileService: WorkfileService,\r\n // public apiBacklog: ApiBacklogAppointmentService,\r\n @Inject(LOCALE_ID) private localeId: string,\r\n private matomoTracker: MatomoTracker,\r\n private matomoCustomService: MatomoCustomService\r\n ) {}\r\n\r\n get getControl() {\r\n return this.filertForm.controls;\r\n }\r\n\r\n ngOnInit(): void {\r\n const pageTitle = 'Workfile - Backlog';\r\n this.matomoCustomService.customDimensionsIsReady.subscribe(isReady => {\r\n if (isReady && this.isPage) {\r\n this.matomoTracker.setDocumentTitle(pageTitle);\r\n this.matomoTracker.trackPageView(pageTitle);\r\n }\r\n });\r\n\r\n this.pagination.limit = this.pageLimt;\r\n\r\n // initialize form\r\n this.initializeForm();\r\n this.userService.getUser().subscribe((user) => {\r\n this.currentUser = user;\r\n });\r\n this.dateFormat =\r\n getLocaleDateFormat(this.localeId, FormatWidth.Short) + ', ';\r\n this.dateFormat += 'hh:mm aaa';\r\n this.workshopUserService\r\n .getWorkshopUsers()\r\n .subscribe((workshopUsers: WorkshopUserDto[]) => {\r\n this.workshopUsers = workshopUsers?.filter(\r\n (wUser: WorkshopUserDto) => wUser?.workshopBays?.length\r\n );\r\n this.getBacklogAppointments();\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * @returns Returns all the Backlog appointments without any filters\r\n */\r\n initializeForm() {\r\n this.filertForm = this.formBuilder.group({\r\n filterBy: [this.filterByEnum.CustomerName],\r\n filterValue: [],\r\n technician: ['all'],\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * @returns appointments with no reception and delivery date\r\n */\r\n getBacklogAppointments() {\r\n this.isBacklokApiCall = true;\r\n //TODO(Matteo) ignorare RemoveYaml /ag/appointments/backlog`\r\n // this.apiBacklog\r\n // .backloglist(this.setFilterValues())\r\n // .subscribe((appointment: Appointment[]) => {\r\n // this.isBacklokApiCall = false;\r\n // this.appointments = appointment;\r\n // if (appointment?.length) {\r\n // this.disableInfiniteScroll =\r\n // appointment.length < this.pagination.limit;\r\n // } else {\r\n // this.disableInfiniteScroll = true;\r\n // }\r\n // this.cdRef.markForCheck();\r\n // });\r\n }\r\n\r\n getMoreBacklogAppointments() {\r\n this.isBacklokApiCall = true;\r\n //TODO(Matteo) ignorare RemoveYaml /ag/appointments/backlog`\r\n // this.apiBacklog\r\n // .backloglist(this.setFilterValues())\r\n // .pipe(\r\n // tap(() => (this.isBacklokApiCall = true)),\r\n // filter((app: Appointment[]) => !!app),\r\n // catchError(() => of([]))\r\n // )\r\n // .subscribe((appointment: Appointment[]) => {\r\n // this.isBacklokApiCall = false;\r\n // this.appointments = [...this.appointments, ...appointment];\r\n // if (appointment?.length) {\r\n // this.disableInfiniteScroll =\r\n // appointment.length < this.pagination.limit;\r\n // } else {\r\n // this.disableInfiniteScroll = true;\r\n // }\r\n // this.cdRef.markForCheck();\r\n // });\r\n }\r\n\r\n /**\r\n *\r\n * @returns Return the selected filter params\r\n */\r\n setFilterValues(): any/* BackloglistRequestParams */ {\r\n const params: any/* BackloglistRequestParams */ = {\r\n start: this.pagination.start,\r\n limit: this.pagination.limit,\r\n sortOrder: this.sortByOption.sortOrder,\r\n sortBy: this.sortByOption.name,\r\n noLoader: true,\r\n workshopId: this.currentUser?.workshopId,\r\n };\r\n if (this.moduleView === 'booking') {\r\n params.workshopId = this.currentUser?.workshopId;\r\n } else {\r\n const filterFormValues = this.filertForm.value;\r\n if (filterFormValues.technician !== 'all') {\r\n params.workshopUserId = filterFormValues.technician;\r\n }\r\n if (filterFormValues?.filterValue?.trim()) {\r\n params.filterBy = filterFormValues.filterBy as FilterBy;\r\n params.filterValue = filterFormValues?.filterValue;\r\n }\r\n //TODO: Technician params will add once API done\r\n //TODO: sortby\r\n }\r\n return params;\r\n }\r\n\r\n /**\r\n *\r\n * @returns Returns the backlog appointments based on filter\r\n */\r\n search() {\r\n this.resetPagination();\r\n this.getBacklogAppointments();\r\n }\r\n\r\n /**\r\n *\r\n * @returns clears the filter\r\n */\r\n clear() {\r\n this.filertForm.controls.filterBy.setValue(this.filterByEnum.CustomerName);\r\n this.filertForm.controls.filterValue.setValue(null);\r\n this.resetPagination();\r\n this.getBacklogAppointments();\r\n }\r\n\r\n /**\r\n *\r\n * @returns Return the jobcardItems names\r\n */\r\n getName(jobcardItem: JobcardItem|JobcardItemDto): string {\r\n return jobcardItem.name;\r\n }\r\n\r\n //Front-end table sorting based on header click\r\n onSort(sortEvent: SortEvent, sortName: string) {\r\n this.sortByOption.name = sortName;\r\n if (sortEvent.direction) {\r\n this.sortByOption.sortOrder = sortEvent.direction;\r\n }\r\n if (this.disableInfiniteScroll) {\r\n if (this.headers) {\r\n this.headers.forEach((header) => {\r\n if (header.jcSortable !== sortEvent.column) {\r\n header.direction = '';\r\n this.cdRef.markForCheck();\r\n }\r\n });\r\n }\r\n Util.sortTable(this.appointments, sortEvent);\r\n } else {\r\n this.resetPagination();\r\n this.getBacklogAppointments();\r\n }\r\n\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n resetPagination() {\r\n this.isBacklokApiCall = false;\r\n this.disableInfiniteScroll = false;\r\n this.pagination.start = 0;\r\n }\r\n\r\n onScrollDown() {\r\n if (!this.isBacklokApiCall) {\r\n this.pagination.start += this.pagination.limit;\r\n this.getMoreBacklogAppointments();\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {{ filterOption.value }}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \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 && moduleView !== 'booking') ||\r\n moduleView === 'booking'\r\n \"\r\n >\r\n \r\n \r\n \r\n \r\n Creation Date\r\n \r\n\r\n \r\n Customer\r\n \r\n DMS No\r\n Brand\r\n Model\r\n Serial No\r\n Activities\r\n Time allocated\r\n Technician\r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n {{ appointment?.status?.time | date }}\r\n \r\n \r\n {{ appointment.customerCompany?.displayedName }}\r\n \r\n \r\n {{ appointment.jobcard?.dmsJobOrder }}\r\n \r\n {{ appointment.vehicle?.brand?.name }}\r\n \r\n {{ appointment.vehicle?.model?.name }}\r\n \r\n {{ appointment.vehicle?.vin }}\r\n \r\n {{ appointment.jobcard?.jobcardItems | map: getName | join: '; ' }}\r\n \r\n {{ appointment.jobcard?.estimatedDuration | minutes }}\r\n\r\n \r\n {{\r\n appointment.jobcard?.jobcardItems\r\n | combineTechnicians: workshopUsers\r\n | join: '; '\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n No results with current filter\r\n\r\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'jc-card-collapse',\n templateUrl: './card-collapse.component.html',\n styleUrls: ['./card-collapse.component.scss'],\n})\nexport class CardCollapseComponent {\n @Input() disabled = false;\n @Input() open = false;\n @Input() cardClass = 'card';\n @Input() cardBodyClass = 'card-body';\n @Output() toggled = new EventEmitter();\n @Output() opened = new EventEmitter();\n private openedBefore = false;\n\n @HostListener('window:beforeprint', ['$event'])\n onBeforePrint() {\n if (this.open) {\n this.openedBefore = true;\n } else {\n this.openedBefore = false;\n this.open = true;\n }\n }\n\n @HostListener('window:afterprint', ['$event'])\n onAfterPrint() {\n if (!this.openedBefore) {\n this.open = false;\n }\n }\n\n click() {\n if (!this.disabled) {\n this.open = !this.open;\n this.toggled.emit(this.open);\n this.opened.emit();\n }\n }\n}\n","
    \n
    \n \n \n \n \n \n \n \n \n
    \n \n \n
    \n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { JobcardItem } from 'src/app/models/model/models';\nimport { Util } from 'src/app/core/util/util';\n\n@Component({\n selector: 'jc-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit {\n @Input() isDefaultOperation?: boolean;\n @Input() title: string;\n @Input() selected: boolean;\n @Input() disabled: boolean;\n @Input() url: string;\n @Input() priority: number;\n @Input() editAction: boolean;\n @Input() deleteAction: boolean;\n @Input() compulsory: boolean;\n @Input() asistUrl: string;\n @Input() status: string;\n @Input() item: JobcardItem;\n @Output() selectionChange = new EventEmitter();\n @Output() edit = new EventEmitter();\n @Output() delete = new EventEmitter();\n @Input() etimKmUrl: string;\n @Input() isMaintenance: boolean;\n @Input() couponStatusValue: string;\n @Input() machineConnected: boolean;\n @Input() etimUrl: string;\n types = JobcardItem.TypeEnum;\n statusEnum = JobcardItem.StatusEnum;\n id: string;\n pipTooltip: string;\n\n ngOnInit(): void {\n this.id = Util.getId();\n if (this.item && this.item.type === this.types.Pip && this.item.disabled) {\n this.pipTooltip = Util.stringFormat(\n $localize`Details for the [0] campaign not manageable in DJC, please check on the PIP bulletin`,\n this.item.name\n );\n }\n }\n\n onSelectionChange() {\n this.selectionChange.emit(this.selected);\n }\n\n editClick() {\n this.edit.emit();\n }\n\n deleteClick() {\n this.delete.emit();\n }\n}\n","\n
    \n
    Default Labour Operation
    \n
    \n
    \n {{ title }}\n \n \n\n \n Suggested\n \n\n \n On time\n \n\n \n Overdue\n \n\n \n Heavy overdue\n \n \n \n \n \n \n \n\n \n \n \n
    \n \n \n Mandatory\n
    \n \n Optional\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n \n Next\n High\n Medium\n Low\n \n\n \n Completed (Waiting Claim)\n In Progress\n \n
    \n \n \n \n \n \n
    \n\n
    \n \n \n \n \n \n
    \n \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { JobcardItem, JobcardItemStatus } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-change-status-modal',\n templateUrl: './change-status-modal.component.html',\n styleUrls: ['./change-status-modal.component.scss'],\n})\nexport class ChangeStatusModalComponent implements OnInit {\n @Input() jobcardItem: JobcardItem;\n status: string[];\n statusEnum = JobcardItemStatus.StatusEnum;\n time: string;\n duration?: number;\n jobcardItemStatus: JobcardItemStatus;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit(): void {\n this.status = [\n this.statusEnum.Todo,\n this.statusEnum.InProgress,\n this.statusEnum.Done,\n ];\n }\n\n onSubmit() {\n this.activeModal.close(this.jobcardItemStatus);\n }\n\n cancel() {\n this.activeModal.dismiss();\n }\n}\n","
    \n

    \n Change Date\n

    \n
    \n\n
    \n
    \n
    \n \n\n
    \n \n
    \n
    \n\n
    \n \n \n \n \n
    \n
    \n
    \n \n Cancel\n \n \n
    \n
    \n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Directive({\n selector: '[jcCheckboxIndeterminate]',\n})\nexport class CheckboxIndeterminateDirective implements OnChanges {\n @Input() jcCheckboxIndeterminate: boolean | 'indeterminate';\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.elementRef.nativeElement.indeterminate =\n changes.jcCheckboxIndeterminate.currentValue === 'indeterminate';\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ChecklistTemplate } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ChecklistTemplateDto } from 'src/api/djc-admin-service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { ChecklistTemplateService } from 'src/api/djc-booking-service/api/checklistTemplate.service';\n\n@Component({\n selector: 'jc-checklist-details-modal',\n templateUrl: './checklist-details-modal.component.html',\n styleUrls: ['./checklist-details-modal.component.scss'],\n})\nexport class ChecklistDetailsModalComponent implements OnInit {\n checklist: ChecklistTemplateDto;\n groups: any[];\n\n constructor(\n public activeModal: NgbActiveModal,\n private checklistService: ChecklistTemplateService,\n private userAdminService: UserAdminService\n ) {}\n\n ngOnInit(): void {\n this.userAdminService.getUser().subscribe(user => {\n this.checklistService\n .getChecklistTemplate({\n workshopId: user.workshopId,\n authorization: this.userAdminService.accessToken,\n id: this.checklist.id,\n })\n .subscribe((template: ChecklistTemplate) => {\n this.checklist = template;\n this.groups = JSON.parse(this.checklist.content).groups;\n });\n })\n }\n}\n","
    \n

    Checklist Details

    \n \n ×\n \n
    \n
    \n
    \n
    Name
    \n
    {{ checklist.title }}
    \n
    \n \n
    \n","import {\n CdkDragDrop,\n moveItemInArray,\n transferArrayItem,\n} from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ChecklistTemplateDto } from 'src/api/djc-admin-service';\n\n@Component({\n selector: 'jc-checklist-template',\n templateUrl: './checklist-template.component.html',\n styleUrls: ['./checklist-template.component.scss'],\n})\nexport class ChecklistTemplateComponent {\n @Input() template: ChecklistTemplateDto;\n @Input() groups: any[];\n @Input() isAdmin: boolean;\n @Output() editQuestions = new EventEmitter();\n @Output() delete = new EventEmitter();\n\n editGroupQuestions(group: any) {\n this.editQuestions.emit(group);\n }\n\n deleteGroup(group: any) {\n this.delete.emit(group);\n }\n\n onGroupDrop(event: CdkDragDrop) {\n if (event.previousContainer === event.container) {\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n }\n}\n","\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Name
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    No group.
    \n
    \n
    \n","import { FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport { Component, Inject, LOCALE_ID, OnInit, ViewChild } from '@angular/core';\n\nimport {\n Appointment,\n CustomerCompanyUser,\n JobcardItem,\n JobcardItemCustomerStatus,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbTypeahead } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { merge, Observable, Subject } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n map,\n} from 'rxjs/operators';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { AppointmentInCreation, NewAppointmentService } from 'src/app/appointment/new-appointment.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { CustomerCompanyUserService } from 'src/api/djc-booking-service/api/customerCompanyUser.service';\n\n@Component({\n selector: 'jc-client-verbal-agreement-modal',\n templateUrl: './client-verbal-agreement-modal.component.html',\n styleUrls: ['./client-verbal-agreement-modal.component.scss'],\n})\nexport class ClientVerbalAgreementModalComponent implements OnInit {\n @ViewChild('instance', { static: true }) instance: NgbTypeahead;\n customer: any;\n isCustomerAgreed: boolean;\n customerFocus$ = new Subject();\n customers: CustomerCompanyUser[] = [];\n click$ = new Subject();\n jobcardItem: JobcardItem;\n action: JobcardItemCustomerStatus.ActionEnum;\n actionType: JobcardItemCustomerStatus.ActionTypeEnum;\n jobcardItemAuthorizationHistory: JobcardItemCustomerStatus[] = [];\n dateFormat: string;\n appointment: AppointmentInCreation;\n\n constructor(\n public activeModal: NgbActiveModal,\n private customerCompanyUserService: CustomerCompanyUserService,\n public appointmentService: AppointmentService,\n public newAppointmentService: NewAppointmentService,\n private userService: UserAdminService,\n @Inject(LOCALE_ID) private localeId: string\n ) {}\n\n ngOnInit(): void {\n this.userService.getUser().subscribe(user => {\n this.appointment?.jobcard?.jobcardItems?.forEach((item: any) => {\n this.customer = {\n lastName: item.agreementCustomerName,\n };\n this.isCustomerAgreed = item.isCustomerAgreed;\n if (typeof this.customer === 'string') {\n this.customer = {\n name: this.customer,\n };\n }\n\n this.jobcardItemAuthorizationHistory = item?.jobcardItemCustomerStatus?.filter(\n (jics: any) => jics?.id\n );\n if (this.jobcardItemAuthorizationHistory?.length > 1) {\n this.jobcardItemAuthorizationHistory.sort((a, b) =>\n moment(a.actionDateTime).isBefore(moment(b.actionDateTime)) ? -1 : 1\n );\n }\n this.dateFormat =\n getLocaleDateFormat(this.localeId, FormatWidth.Short) + ', ';\n this.dateFormat += 'hh:mm aaa';\n\n this.customerCompanyUserService.getCustomerCompanyUsers({\n workshopId: user.workshopId,\n customerId: this.newAppointmentService?.appointmentInCreation?.customerCompany?.id,\n authorization: this.userService.accessToken}).subscribe((customers: any) => {\n this.customers = customers\n });\n });\n if (!this.appointment && this.jobcardItem) {\n this.jobcardItemAuthorizationHistory = this.jobcardItem?.jobcardItemCustomerStatus?.filter(\n (jics) => jics?.id\n );\n if (this.jobcardItemAuthorizationHistory?.length > 1) {\n this.jobcardItemAuthorizationHistory.sort((a, b) =>\n moment(a.actionDateTime).isBefore(moment(b.actionDateTime)) ? -1 : 1\n );\n }\n this.dateFormat =\n getLocaleDateFormat(this.localeId, FormatWidth.Short) + ', ';\n this.dateFormat += 'hh:mm aaa';\n }\n });\n }\n\n searchCustomerByName = (text$: Observable) => {\n const debouncedText$ = text$.pipe(\n debounceTime(200),\n distinctUntilChanged()\n );\n const clicksWithClosedPopup$ = this.click$.pipe(\n filter(() => !this.instance.isPopupOpen())\n );\n\n const inputFocus$ = this.customerFocus$;\n if (this.customers) {\n return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(\n map((term) => {\n if (term === '') {\n return this.customers.slice(0, 10);\n } else {\n return this.customers\n .filter((v) => {\n if (v.firstName === undefined && v.lastName === undefined) {\n return false;\n } else if (\n v.firstName !== undefined &&\n v.lastName === undefined\n ) {\n return (\n v.firstName.toLowerCase().indexOf(term.toLowerCase()) > -1\n );\n } else if (\n v.firstName === undefined &&\n v.lastName !== undefined\n ) {\n return (\n v.lastName.toLowerCase().indexOf(term.toLowerCase()) > -1\n );\n } else {\n return (\n v.firstName.toLowerCase().indexOf(term.toLowerCase()) >\n -1 ||\n v.lastName.toLowerCase().indexOf(term.toLowerCase()) > -1\n );\n }\n })\n .slice(0, 10);\n }\n })\n );\n }\n return null;\n };\n\n customerFocus(event: any) {\n this.customerFocus$.next(event.target.value);\n }\n\n resultFormatCustomersListValue(value: CustomerCompanyUser) {\n return `${value.firstName ? value.firstName : ''} ${\n value.lastName ? value.lastName : ''\n }`.trim();\n }\n\n isCustomerNameValid() {\n return (\n (typeof this.customer === 'string' && this.customer) ||\n (typeof this.customer === 'object' &&\n `${this.customer.firstName ? this.customer.firstName : ''} ${\n this.customer.lastName ? this.customer.lastName : ''\n }`.trim())\n );\n }\n}\n","
    \n

    Additional Activity Authorization

    \n \n ×\n \n
    \n
    \n
    0\" class=\"mb-2\">\n Authorization History:\n
    \n
      \n
    • \n Accepted\n Decline\n Auto-Approved\n Auto-Declined\n \n - {{ status.actionDateTime | date: dateFormat }} -\n {{ status.actionPerformedBy }}\n \n (Online)\n (Manual)\n (Warranty)\n (Reception)\n
      \n
    • \n
    \n
    \n
    \n
    Please confirm the verbal agreement provided by the customer
    \n
    \n \n \n
    \n
    \n
    \n \n Cancel\n \n \n Remove\n \n \n Confirm\n \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { JobcardItem } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-clock-modal',\n templateUrl: './clock-modal.component.html',\n})\nexport class ClockModalComponent implements OnInit {\n @Input() allowedTime: number;\n @Input() jobcardItem: JobcardItem;\n allocatedTime: number;\n msg: string;\n label: string;\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit(): void {\n this.allocatedTime = this.allowedTime;\n }\n\n onSubmit() {\n this.allowedTime = this.allocatedTime;\n this.activeModal.close(this.allowedTime);\n }\n\n cancel() {\n this.activeModal.dismiss();\n }\n}\n","
    \n

    {{ msg }}

    \n \n ×\n \n
    \n\n
    \n
    \n
    \n \n \n
    \n\n
    \n \n Cancel\n \n \n
    \n
    \n
    \n","import { Component } from '@angular/core';\nimport { JobcardItemStatus } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ClockedTime } from '../clocked-time-modal.component';\nimport { IsClockingActiveRequestParams, JobcardItemService } from 'src/api/djc-booking-service/api/jobcardItem.service';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { ClockingStartedDto } from 'src/api/djc-booking-service/model/clockingStartedDto';\nimport { ToastrService } from 'ngx-toastr';\nimport jwt_decode from 'jwt-decode';\n@Component({\n templateUrl: './clocked-time-delete-modal.component.html',\n styleUrls: ['./clocked-time-delete-modal.component.scss'],\n})\nexport class ClockedTimeDeleteModalComponent {\n jobcardItemStatus: ClockedTime;\n reasons: JobcardItemStatus.ReasonEnum[] = [\n JobcardItemStatus.ReasonEnum.HelpingAnotherTechnician,\n JobcardItemStatus.ReasonEnum.ForgotClockOn,\n JobcardItemStatus.ReasonEnum.ForgotClockOff,\n JobcardItemStatus.ReasonEnum.ForgotClockInOut,\n JobcardItemStatus.ReasonEnum.TechnicalErrors,\n JobcardItemStatus.ReasonEnum.Discount,\n JobcardItemStatus.ReasonEnum.Other,\n ];\n reasonEnum = JobcardItemStatus.ReasonEnum;\n\n constructor(\n public activeModal: NgbActiveModal,\n public jobcardItemService: JobcardItemService,\n public userService: UserService,\n public toastrService: ToastrService) {}\n\n reasonChange() {\n if (\n this.jobcardItemStatus.reason !== JobcardItemStatus.ReasonEnum.Other &&\n this.jobcardItemStatus.reason !==\n JobcardItemStatus.ReasonEnum.HelpingAnotherTechnician\n ) {\n this.jobcardItemStatus.otherReason = '';\n }\n }\n\n onSubmit() {\n const token: any = jwt_decode(this.userService.newToken);\n if (token.data.isAdmin) {\n this.jobcardItemStatus.deleted = true;\n this.activeModal.close(this.jobcardItemStatus);\n } else {\n const params: IsClockingActiveRequestParams = {\n id: this.jobcardItemStatus.activityId,\n authorization: this.userService.accessToken,\n }\n this.jobcardItemService.isClockingActive(params).subscribe((res: ClockingStartedDto) => {\n if(res.isClockingStarted) {\n this.toastrService.warning(\n $localize`The clocking cannot be deleted because it has an active clocking from: ${res.fullNames.join(', ')}`\n );\n this.activeModal.close(this.jobcardItemStatus);\n } else {\n this.jobcardItemStatus.deleted = true;\n this.activeModal.close(this.jobcardItemStatus);\n }\n });\n }\n }\n}\n","
    \n

    Delete Clocked Time

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n \n \n \n
    \n \n
    \n \n Cancel\n \n \n Delete\n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport {\n Appointment,\n JobcardItemStatus,\n JobcardItemTechnician,\n WorkshopUser,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { environment } from 'src/environments/environment';\nimport { Activity, ClockedTime } from '../clocked-time-modal.component';\nimport { WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { AppointmentDto } from 'src/api/djc-workitem-service';\n\ninterface JobcardItemTechDisplay extends JobcardItemTechnician {\n bayName?: string;\n}\n\n@Component({\n templateUrl: './clocked-time-edit-modal.component.html',\n styleUrls: ['./clocked-time-edit-modal.component.scss'],\n})\nexport class ClockedTimeEditModalComponent implements OnInit {\n jobcardItemStatus: ClockedTime;\n workshopUsers: WorkshopUserDto[] = [];\n action: 'add' | 'edit' = 'add';\n reasons: JobcardItemStatus.ReasonEnum[] = [\n JobcardItemStatus.ReasonEnum.HelpingAnotherTechnician,\n JobcardItemStatus.ReasonEnum.ForgotClockOn,\n JobcardItemStatus.ReasonEnum.ForgotClockOff,\n JobcardItemStatus.ReasonEnum.ForgotClockInOut,\n JobcardItemStatus.ReasonEnum.TechnicalErrors,\n JobcardItemStatus.ReasonEnum.Discount,\n JobcardItemStatus.ReasonEnum.Other,\n ];\n reasonEnum = JobcardItemStatus.ReasonEnum;\n\n status: string[];\n statusEnum = JobcardItemStatus.StatusEnum;\n\n duration?: number;\n activityList: Activity[] = [];\n disableActivity: boolean;\n error = false;\n technicians: JobcardItemTechDisplay[] = [];\n appointment: AppointmentDto;\n isNonProductive = false;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit(): void {\n this.status = [\n this.statusEnum.InProgress,\n this.statusEnum.Pending,\n this.statusEnum.Done,\n ];\n if (this.jobcardItemStatus?.id) {\n this.action = 'edit';\n this.disableActivity = true;\n this.activityList?.forEach((activity: Activity) => {\n if (activity.id === this.jobcardItemStatus.activityId) {\n this.setTechnicians(activity);\n }\n });\n this.jobcardItemStatus.clockingStatus =\n JobcardItemStatus.ClockingStatusEnum.WEB;\n if (this.jobcardItemStatus?.reason === 'CRON') {\n this.jobcardItemStatus.reason = null;\n this.jobcardItemStatus.endTime = moment(new Date()).toISOString();\n }\n } else {\n this.action = 'add';\n if (this.activityList.length > 1) {\n this.disableActivity = false;\n } else {\n this.disableActivity = true;\n //this.jobcardItemStatus.workshopUserId = this.activityList[0].workshopUserId;\n }\n this.jobcardItemStatus.activityId = this.activityList.length > 0 ? this.activityList[0].id : null;\n this.jobcardItemStatus.id = -Math.floor(Math.random() * 100000);\n this.jobcardItemStatus.status = this.statusEnum.InProgress;\n this.jobcardItemStatus.time = moment(new Date()).toISOString();\n this.jobcardItemStatus.endTime = moment(new Date())\n .add('1', 'minutes')\n .toISOString();\n this.setTechnicians(this.activityList[0]);\n }\n this.dateChanged();\n }\n\n orderUsersList(selectedUser: string) {\n if (environment.isIveco) {\n let selected: JobcardItemTechDisplay;\n this.technicians?.forEach((tech, index) => {\n if (tech?.workshopUserId === selectedUser) {\n selected = tech;\n this.technicians?.splice(index, 1);\n }\n });\n this.technicians?.splice(0, 0, selected);\n }\n }\n\n dateChanged() {\n if (\n moment(this.jobcardItemStatus?.time) <\n moment(this.jobcardItemStatus?.endTime)\n ) {\n this.error = false;\n this.duration = moment(this.jobcardItemStatus?.endTime)\n .set('seconds', 0)\n .set('millisecond', 0)\n .diff(\n moment(this.jobcardItemStatus?.time)\n .set('seconds', 0)\n .set('millisecond', 0),\n 'minutes'\n );\n this.jobcardItemStatus.duration = this.duration * 60;\n } else {\n this.error = true;\n }\n }\n\n reasonChange() {\n if (\n this.jobcardItemStatus.reason !== JobcardItemStatus.ReasonEnum.Other &&\n this.jobcardItemStatus.reason !==\n JobcardItemStatus.ReasonEnum.HelpingAnotherTechnician\n ) {\n this.jobcardItemStatus.otherReason = '';\n }\n }\n\n updateModel() {\n this.activityList.forEach((activity: Activity) => {\n if (activity.id === this.jobcardItemStatus.activityId) {\n this.jobcardItemStatus.activityName = activity.name;\n this.jobcardItemStatus.deleted = false;\n // Refresh technicians dropdown\n this.setTechnicians(activity);\n }\n });\n }\n\n onSubmit() {\n this.updateModel();\n this.activeModal.close(this.jobcardItemStatus);\n }\n\n private setTechnicians(activity: Activity) {\n this.technicians = [];\n // populate technicians list\n const allocatedUsers: JobcardItemTechDisplay[] = [];\n const unallocatedUsers: JobcardItemTechDisplay[] = [];\n this.workshopUsers.forEach((user) => {\n let bayName = '';\n user?.workshopBays?.forEach((bay) => {\n if (bayName === '') {\n bayName = bayName + bay.name;\n } else {\n bayName = bayName + ' / ' + bay.name;\n }\n });\n if (\n activity?.technicians.length === 0 ||\n activity?.technicians.length > 1\n ) {\n if (this.jobcardItemStatus?.workshopUserId === user.id) {\n allocatedUsers.push({ workshopUserId: user.id, bayName });\n }\n } else {\n activity?.technicians?.forEach((tech) => {\n if (tech.workshopUserId === user.id) {\n allocatedUsers.push({ workshopUserId: user.id, bayName });\n }\n });\n }\n if (\n this.technicians?.map((t) => t.workshopUserId).indexOf(user.id) === -1 &&\n user.role?.roleAbbrev === 'TECH'\n ) {\n unallocatedUsers.push({ workshopUserId: user.id, bayName });\n }\n });\n\n this.technicians = allocatedUsers.concat(unallocatedUsers);\n this.technicians = this.technicians?.filter(\n (wUser: JobcardItemTechDisplay) =>\n wUser?.workshopUserId === this.jobcardItemStatus?.workshopUserId ||\n wUser?.bayName\n );\n this.technicians = [\n ...new Set(this.technicians.map((obj) => obj.workshopUserId)),\n ].map((workshopuser) =>\n this.technicians.find((obj) => obj.workshopUserId === workshopuser)\n );\n if (this.jobcardItemStatus?.workshopUserId) {\n this.orderUsersList(this.jobcardItemStatus?.workshopUserId);\n }\n }\n}\n","
    \n

    \n Add Clocked Time\n \n Edit Clocked Time\n \n

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n \n \n {{ technician?.workshopUserId | workshopUserName | async }}\n \n \n - {{ technician?.bayName }}\n \n \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n The end time should be after the start time.\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n
    \n
    \n \n \n \n \n
    \n \n \n \n
    \n \n
    \n \n Cancel\n \n \n Add\n Save\n \n
    \n
    \n","import {\n AfterViewInit,\n Component,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {\n JobcardItemStatus,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { Util } from 'src/app/core/util/util';\nimport { ConfirmModalComponent } from 'src/app/shared/confirm-modal/confirm-modal.component';\nimport { environment } from 'src/environments/environment';\nimport { Permission } from 'src/app/models/model/models';\nimport { PermissionsService } from 'src/app/core/permissions/permissions.service';\nimport { SortableDirective, SortEvent } from '../sortable/sortable.directive';\nimport { ClockedTimeEditModalComponent } from './clocked-time-edit-modal/clocked-time-edit-modal.component';\nimport { ClockedTimeDeleteModalComponent } from './clocked-time-delete-modal/clocked-time-delete-modal.component';\nimport { WorkshopUserDto } from 'src/api/djc-booking-service/model/workshopUserDto';\nimport { AppointmentDto, JobcardItemDto, JobcardItemStatusDto, JobcardItemTechnicianDto } from 'src/api/djc-workitem-service/model/models';\n\ninterface JobcardItemTechDisplay extends JobcardItemTechnicianDto {\n bayName?: string;\n totalTime?: number;\n}\nexport interface ClockedTime extends JobcardItemStatusDto {\n endTime?: string;\n activityName?: string;\n activityId?: number;\n allowedTime?: number;\n currentChangeActivity?: string;\n hasError?: boolean;\n errorReason?: string;\n hasZeroDuration?: boolean;\n hasNegativeDuration?: boolean;\n hasFutureClocking?: boolean;\n isDuplicated?: boolean;\n}\n\nexport interface Activity {\n id: number;\n name?: string;\n workshopUserId?: string;\n technicians?: JobcardItemTechnicianDto[];\n status?: JobcardItemStatusDto;\n}\n\n@Component({\n templateUrl: './clocked-time-modal.component.html',\n styleUrls: ['./clocked-time-modal.component.scss'],\n})\nexport class ClockedTimeModalComponent implements OnInit, AfterViewInit {\n @ViewChildren(SortableDirective) headers: QueryList;\n clockedTimeList: ClockedTime[] = [];\n jobcardItemsList: JobcardItemDto[];\n originalJobcardItemsList: JobcardItemDto[] = [];\n activityList: Activity[] = [];\n workshopUsers: WorkshopUserDto[] = [];\n totalDuration = 0;\n toSave = false;\n technicians: JobcardItemTechDisplay[] = [];\n totalClockTime = 0;\n appointment: AppointmentDto;\n noDurationMsg = $localize`00:00 clocking duration recorded`;\n negativeDurationMsg = $localize`Negative time recorded`;\n sameActDuplicateMsg = $localize`Duplicate clocking recorded on same activity`;\n diffActDuplicateMsg = $localize`Duplicate clocking recorded on activity - `;\n unrealisticDurationMsg = $localize`Future end time recorded`;\n endTimeMissing = $localize`End time missing`;\n disableEditClocking = true;\n constructor(\n private modalService: NgbModal,\n public activeModal: NgbActiveModal,\n private permissionService: PermissionsService\n ) {}\n\n ngOnInit(): void {\n this.jobcardItemsList?.forEach((jobcardItem: JobcardItemDto) => {\n this.originalJobcardItemsList = JSON.parse(\n JSON.stringify(this.jobcardItemsList)\n );\n if (jobcardItem?.jobcardItemStatus?.length > 0) {\n jobcardItem.jobcardItemStatus\n .filter(\n (jis) =>\n jis.status !== JobcardItemStatus.StatusEnum.New &&\n jis.status !== JobcardItemStatus.StatusEnum.Todo\n )\n .filter(\n (jis) =>\n !(\n jis.status === JobcardItemStatus.StatusEnum.Invoiced &&\n jis.duration === 0\n )\n )\n .forEach((clockedTime: ClockedTime) => {\n clockedTime.activityName =\n (jobcardItem.code ? jobcardItem.code : '') +\n (jobcardItem.name ? ' ' + jobcardItem.name : '') +\n (jobcardItem.description ? ' - ' + jobcardItem.description : '');\n clockedTime.activityId = jobcardItem.id;\n clockedTime.endTime = moment(clockedTime.time)\n .add(clockedTime.duration, 'seconds')\n .toISOString();\n clockedTime.allowedTime = jobcardItem.estimatedDuration;\n if (\n null !== clockedTime.workshopUserId &&\n undefined !== clockedTime.workshopUserId\n ) {\n this.clockedTimeList.push(clockedTime);\n }\n });\n }\n this.activityList.push({\n id: jobcardItem.id,\n name:\n (jobcardItem.code ? jobcardItem.code : '') +\n (jobcardItem.name ? ' ' + jobcardItem.name : '') +\n (jobcardItem.description ? ' - ' + jobcardItem.description : ''),\n workshopUserId: jobcardItem.workshopUserId,\n technicians: jobcardItem.technicians,\n status: jobcardItem?.jobcardItemStatus ? Util.getLastJobcardItemStatusDto(jobcardItem?.jobcardItemStatus): null,\n });\n });\n this.calculTotalDuration();\n if (environment.isIveco) {\n this.identifyErrors();\n }\n\n const unallocatedUsers: JobcardItemTechDisplay[] = [];\n this.clockedTimeList.forEach((clockList) => {\n this.workshopUsers.forEach((user) => {\n if (clockList.workshopUserId === user.id) {\n if (\n this.technicians.map((t) => t.workshopUserId).indexOf(user.id) ===\n -1\n ) {\n unallocatedUsers.push({ workshopUserId: user.id });\n }\n }\n });\n\n this.technicians = unallocatedUsers;\n this.calculateTotalTechTime();\n this.permissionService\n .hasPermissions([Permission.DisableEditClocking])\n .subscribe((disableEditClocking) => {\n this.disableEditClocking = disableEditClocking;\n });\n });\n }\n\n ngAfterViewInit() {\n this.onSort({ column: 'workshopUserId', direction: 'asc' });\n }\n calculateTotalTechTime() {\n this.technicians.forEach((t) => {\n this.clockedTimeList?.forEach((value) => {\n if (\n value.workshopUserId === t.workshopUserId &&\n value.deleted !== true\n ) {\n this.totalClockTime += value.duration;\n t.totalTime = this.totalClockTime;\n }\n });\n this.totalClockTime = 0;\n });\n }\n\n openModifyClockTimeModal(existingClockTime: ClockedTime) {\n const modalRef = this.modalService.open(ClockedTimeEditModalComponent);\n const clockedTimeEdit = modalRef.componentInstance as ClockedTimeEditModalComponent;\n clockedTimeEdit.jobcardItemStatus = { ...existingClockTime };\n clockedTimeEdit.activityList = this.activityList;\n clockedTimeEdit.workshopUsers = this.workshopUsers;\n clockedTimeEdit.appointment = this.appointment;\n modalRef.result.then(\n (timeEdited: ClockedTime) => {\n // To identify activity status and will use triger the notification\n timeEdited['currentChangeActivity'] = '';\n if (\n existingClockTime?.status !== JobcardItemStatus.StatusEnum.Done &&\n timeEdited?.status === JobcardItemStatus.StatusEnum.Done &&\n !timeEdited?.deleted\n ) {\n timeEdited['currentChangeActivity'] = timeEdited?.status;\n }\n const activity = this.jobcardItemsList.find(\n (act) => act.id === timeEdited.activityId\n );\n if (activity) {\n timeEdited.allowedTime = activity.estimatedDuration;\n }\n\n this.clockedTimeList.splice(\n this.clockedTimeList.findIndex((t) => t.id === existingClockTime.id),\n 1,\n timeEdited\n );\n this.totalDuration = 0;\n this.jobcardItemsList.forEach((item) => {\n if (item.id === timeEdited.activityId) {\n item.jobcardItemStatus.splice(\n item.jobcardItemStatus.findIndex(\n (t) => t.id === existingClockTime.id\n ),\n 1,\n timeEdited\n );\n //Update jobcarditem technicians\n if (item.jobcardItemSpells[0].technicians.length > 0) {\n if (\n item.jobcardItemSpells[0].technicians\n .map((t) => t.workshopUserId)\n .indexOf(timeEdited.workshopUserId) === -1\n ) {\n item.jobcardItemSpells[0].technicians.push({\n workshopUserId: timeEdited.workshopUserId,\n startDate: timeEdited.time,\n });\n }\n } else {\n item.jobcardItemSpells[0].technicians = [];\n item.jobcardItemSpells[0].technicians.push({\n workshopUserId: timeEdited.workshopUserId,\n startDate: timeEdited.time,\n });\n }\n }\n if (item.jobcardItemSpells[0].technicians.length > 0) {\n if (\n item.jobcardItemSpells[0].technicians\n .map((t) => t.workshopUserId)\n .indexOf(timeEdited.workshopUserId) === -1\n ) {\n item.jobcardItemSpells[0].technicians.push({\n workshopUserId: timeEdited.workshopUserId,\n startDate: timeEdited.time,\n });\n }\n } else {\n item.jobcardItemSpells[0].technicians = [];\n item.jobcardItemSpells[0].technicians.push({\n workshopUserId: timeEdited.workshopUserId,\n startDate: timeEdited.time,\n });\n }\n });\n\n this.calculTotalDuration();\n if (environment.isIveco) {\n this.identifyErrors();\n }\n this.toSave = true;\n this.calculateTotalTechTime();\n },\n () => {\n /** model close or dismiss */\n }\n );\n }\n\n addClockTimeModal() {\n const modalRef = this.modalService.open(ClockedTimeEditModalComponent);\n const clockedTimeEdit = modalRef.componentInstance as ClockedTimeEditModalComponent;\n clockedTimeEdit.workshopUsers = this.workshopUsers;\n clockedTimeEdit.activityList = this.activityList.filter(\n (act) => act.status?.status !== JobcardItemStatus.StatusEnum.Invoiced\n );\n clockedTimeEdit.jobcardItemStatus = {\n endTime: '',\n activityName: '',\n activityId: 0,\n workshopUserId: '',\n };\n modalRef.result.then(\n (status: ClockedTime) => {\n status['currentChangeActivity'] = '';\n if (status?.status === JobcardItemStatus.StatusEnum.Done) {\n status['currentChangeActivity'] = status?.status;\n }\n\n if (status) {\n const activity = this.jobcardItemsList?.find(\n (act) => act.id === status.activityId\n );\n if (activity) {\n status.allowedTime = activity.estimatedDuration;\n }\n this.clockedTimeList.push(status);\n this.jobcardItemsList?.forEach((item) => {\n let isDuplicatedStatus = 0;\n if (item.id === status.activityId) {\n // item.jobcardItemStatus.push(status);\n\n // Make unique objects: Prod fix - INC9301603\n // const isDuplicatedStatus = item.jobcardItemStatus.filter(\n // (stat) => stat.id === -1\n // );\n // if (isDuplicatedStatus.length > 1) {\n // item.jobcardItemStatus.pop();\n // }\n item.jobcardItemStatus.forEach((clocking) => {\n if (\n clocking.workshopUserId !== status.workshopUserId ||\n clocking.duration !== status.duration ||\n clocking.reason !== status.reason ||\n clocking.jobcardItemId !== status.jobcardItemId ||\n !moment(clocking.time)\n .set('seconds', 0)\n .set('millisecond', 0)\n .isSame(\n moment(status.time)\n .set('seconds', 0)\n .set('millisecond', 0)\n )\n ) {\n isDuplicatedStatus = 0;\n } else {\n isDuplicatedStatus++;\n }\n });\n if (isDuplicatedStatus === 0) {\n item.jobcardItemStatus.push(status);\n }\n\n //Update jobcarditem technicians\n if (item.jobcardItemSpells && item.jobcardItemSpells[0].technicians?.length > 0) {\n if (\n item.jobcardItemSpells[0].technicians\n .map((t) => t.workshopUserId)\n .indexOf(status.workshopUserId) === -1\n ) {\n item.jobcardItemSpells[0].technicians.push({\n workshopUserId: status.workshopUserId,\n startDate: status.time,\n });\n }\n } else {\n item.jobcardItemSpells[0].technicians = [];\n item.jobcardItemSpells[0].technicians.push({\n workshopUserId: status.workshopUserId,\n startDate: status.time,\n });\n }\n }\n });\n this.calculTotalDuration();\n if (environment.isIveco) {\n this.identifyErrors();\n }\n this.toSave = true;\n\n this.workshopUsers.forEach((user) => {\n if (status.workshopUserId === user.id) {\n if (\n this.technicians\n .map((t) => t.workshopUserId)\n .indexOf(user.id) === -1 &&\n user.role?.roleAbbrev === 'TECH'\n ) {\n this.technicians.push({ workshopUserId: user.id });\n }\n }\n });\n\n this.calculateTotalTechTime();\n }\n },\n () => {\n /** Model dismiss or close */\n }\n );\n }\n\n deleteClockedTime(clockedTime: ClockedTime) {\n if (clockedTime.id !== -1) {\n const modalRef = this.modalService.open(ClockedTimeDeleteModalComponent);\n const clockedTimeDelete = modalRef.componentInstance as ClockedTimeDeleteModalComponent;\n clockedTimeDelete.jobcardItemStatus = { ...clockedTime };\n modalRef.result.then((timeEdited: ClockedTime) => {\n this.clockedTimeList.splice(\n this.clockedTimeList.findIndex((t) => t.id === clockedTime.id),\n 1,\n timeEdited\n );\n this.totalDuration = 0;\n this.jobcardItemsList.forEach((item) => {\n if (item.id === timeEdited.activityId) {\n item.jobcardItemStatus.splice(\n item.jobcardItemStatus.findIndex((t) => t.id === clockedTime.id),\n 1,\n timeEdited\n );\n }\n });\n this.calculTotalDuration();\n if (environment.isIveco) {\n this.identifyErrors();\n }\n this.toSave = true;\n this.technicians.forEach((t) => {\n if (clockedTime.workshopUserId === t.workshopUserId) {\n t.totalTime -= clockedTime.duration;\n }\n });\n clockedTime.deleted = true;\n });\n } else {\n this.clockedTimeList.splice(this.clockedTimeList.indexOf(clockedTime), 1);\n this.jobcardItemsList.forEach((item) => {\n if (item.id === clockedTime.activityId) {\n item.jobcardItemStatus.splice(\n item.jobcardItemStatus.findIndex((t) => t.id === clockedTime.id),\n 1\n );\n }\n });\n this.calculTotalDuration();\n if (environment.isIveco) {\n this.identifyErrors();\n }\n this.toSave = true;\n this.technicians.forEach((t) => {\n if (clockedTime.workshopUserId === t.workshopUserId) {\n t.totalTime -= clockedTime.duration;\n }\n });\n clockedTime.deleted = true;\n }\n }\n\n undeleteClockedTime(clockedTime: ClockedTime) {\n clockedTime.deleted = false;\n this.calculTotalDuration();\n if (environment.isIveco) {\n this.identifyErrors();\n }\n\n this.toSave = true;\n this.calculateTotalTechTime();\n }\n\n save() {\n this.jobcardItemsList.forEach((jobcardItem: JobcardItemDto) => {\n if (jobcardItem?.jobcardItemStatus && jobcardItem?.jobcardItemStatus?.length > 0) {\n let allDeleted = true;\n const todoStatus = jobcardItem.jobcardItemStatus.find(\n (status) => status.status === 'todo'\n );\n if (todoStatus) {\n jobcardItem.jobcardItemStatus.forEach((status: JobcardItemStatusDto) => {\n if (status.status !== 'todo' && !status.deleted) {\n allDeleted = false;\n }\n });\n todoStatus.deleted = !allDeleted;\n }\n }\n });\n this.activeModal.close(this.jobcardItemsList);\n }\n\n dismiss() {\n if (this.toSave) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n modalRef.componentInstance.title = $localize`Cancel Modification`;\n modalRef.componentInstance.message = $localize`Are you sure you want to quit without saving ?`;\n modalRef.componentInstance.action = $localize`Quit without saving`;\n modalRef.result.then(() => {\n this.clockedTimeList = [];\n this.activeModal.dismiss(this.originalJobcardItemsList);\n });\n } else {\n this.activeModal.dismiss(this.originalJobcardItemsList);\n }\n }\n\n onSort(sortEvent: SortEvent) {\n this.headers.forEach((header) => {\n if (header.jcSortable !== sortEvent.column) {\n header.direction = '';\n }\n });\n if (sortEvent.column === 'workshopUserId') {\n Util.sortTable(this.clockedTimeList, {\n column: 'time',\n direction: sortEvent.direction,\n });\n }\n Util.sortTable(this.clockedTimeList, sortEvent);\n }\n\n onSortTechnician(sortEvent: SortEvent) {\n this.headers.forEach((header) => {\n if (header.jcSortable !== sortEvent.column) {\n header.direction = '';\n }\n });\n if (sortEvent.column === 'workshopUserId') {\n Util.sortTable(this.technicians, {\n column: 'time',\n direction: sortEvent.direction,\n });\n }\n Util.sortTable(this.technicians, sortEvent);\n }\n\n private calculTotalDuration() {\n this.totalDuration = 0;\n this.clockedTimeList\n .filter(\n (clockedTime) =>\n clockedTime.status !== JobcardItemStatus.StatusEnum.New &&\n clockedTime.status !== JobcardItemStatus.StatusEnum.Todo\n )\n .filter((clockedTime) => !clockedTime.deleted)\n .forEach((clockedTime) => {\n if (clockedTime?.duration) {\n this.totalDuration += clockedTime.duration;\n }\n });\n }\n\n private identifyErrors() {\n this.clockedTimeList.forEach((clockedTime) => {\n clockedTime.errorReason = '';\n clockedTime.hasZeroDuration = false;\n clockedTime.hasNegativeDuration = false;\n clockedTime.hasFutureClocking = false;\n clockedTime.hasError = false;\n clockedTime.isDuplicated = false;\n\n if (!clockedTime?.deleted) {\n // Check for 00:00 duration clocking with done status\n if (\n (!clockedTime?.duration || clockedTime?.duration === 0) &&\n clockedTime.status === JobcardItemStatus.StatusEnum.Done\n ) {\n clockedTime.errorReason =\n clockedTime?.errorReason.length > 0\n ? clockedTime.errorReason + '\\n' + this.noDurationMsg\n : this.noDurationMsg;\n clockedTime.hasZeroDuration = true;\n }\n\n // Check for future clocking\n if (\n clockedTime?.duration &&\n clockedTime?.duration > 0 &&\n moment(clockedTime?.endTime).isAfter(moment())\n ) {\n clockedTime.errorReason =\n clockedTime?.errorReason.length > 0\n ? clockedTime.errorReason + '\\n' + this.unrealisticDurationMsg\n : this.unrealisticDurationMsg;\n clockedTime.hasFutureClocking = true;\n }\n\n // End time missing on past dates\n if (\n !clockedTime?.duration ||\n (clockedTime?.duration === 0 &&\n new Date(clockedTime?.endTime).getDate() < new Date().getDate())\n ) {\n clockedTime.errorReason = clockedTime.errorReason.includes(\n this.noDurationMsg\n )\n ? clockedTime.errorReason\n : clockedTime?.errorReason.length > 0\n ? clockedTime.errorReason + '\\n' + this.noDurationMsg\n : this.noDurationMsg;\n clockedTime.hasZeroDuration = true;\n }\n\n // Check for negative clocking\n if (clockedTime?.duration && clockedTime?.duration < 0) {\n clockedTime.errorReason =\n clockedTime?.errorReason.length > 0\n ? clockedTime.errorReason + '\\n' + this.negativeDurationMsg\n : this.negativeDurationMsg;\n clockedTime.hasNegativeDuration = true;\n }\n\n // Check for duplicate clocking\n const hasAnotherClocking = this.clockedTimeList.filter(\n (ct) =>\n ct?.duration === clockedTime?.duration &&\n //ct.jobcardItemId === clockedTime?.jobcardItemId &&\n ct.status === clockedTime?.status &&\n moment(ct.time)\n .set('seconds', 0)\n .set('millisecond', 0)\n .isSame(\n moment(clockedTime?.time)\n .set('seconds', 0)\n .set('millisecond', 0)\n ) &&\n ct.workshopUserId === clockedTime?.workshopUserId &&\n !ct?.deleted\n );\n if (hasAnotherClocking?.length > 1) {\n const activities = hasAnotherClocking.map(\n (obj) => obj?.jobcardItemId\n );\n let isDuplicatedOnSameAct = activities.every(\n (val, i, arr) => val === arr[0]\n );\n clockedTime.errorReason =\n clockedTime?.errorReason.length > 0\n ? isDuplicatedOnSameAct\n ? clockedTime.errorReason + '\\n' + this.sameActDuplicateMsg\n : clockedTime.errorReason +\n '\\n' +\n this.diffActDuplicateMsg +\n this.getActName(clockedTime, activities)\n : isDuplicatedOnSameAct\n ? this.sameActDuplicateMsg\n : this.diffActDuplicateMsg +\n this.getActName(clockedTime, activities);\n isDuplicatedOnSameAct;\n clockedTime.hasNegativeDuration = true;\n clockedTime.isDuplicated = true;\n }\n\n clockedTime.hasError =\n clockedTime.hasNegativeDuration ||\n clockedTime.hasZeroDuration ||\n clockedTime.hasFutureClocking ||\n clockedTime.isDuplicated;\n }\n });\n }\n\n private getActName(clockedTime: ClockedTime, activities: number[]) {\n let anotherActId = activities.filter(\n (act) => act !== clockedTime?.jobcardItemId\n );\n let act = this.jobcardItemsList.filter(\n (item) => item?.id === anotherActId[0]\n );\n return act[0].name;\n }\n}\n","
    \n

    Clocked Time

    \n \n
    \n
    \n \n \n \n \n \n Activity\n \n \n Status\n \n \n Technician\n \n \n Clocked-In Date Time\n \n \n Clocked-Out Date Time\n \n \n Total Time\n \n \n Allowed Time\n \n \n \n \n \n \n \n \n {{ clockedTime.errorReason }}\n \n \n \n \n \n \n \n \n \n \n {{ clockedTime.activityName }}\n \n \n \n \n \n {{ clockedTime.workshopUserId | workshopUserName | async }}\n \n \n {{ clockedTime.time | date: 'short' }}\n \n \n {{ clockedTime.endTime | date: 'short' }}\n \n {{ clockedTime.duration | seconds }}\n \n {{ clockedTime.duration / 60 | minutes }}\n \n {{ clockedTime.allowedTime | minutes }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0\">\n \n \n \n \n {{ totalDuration | seconds }}\n \n \n {{ totalDuration / 60 | minutes }}\n \n \n \n \n \n 1 && technicians.length > 1\"\n >\n \n \n \n Technician\n \n \n Total Time\n \n \n \n \n \n \n {{ technician.workshopUserId | workshopUserName | async }}\n \n \n {{ technician.totalTime / 60 | minutes }}\n \n \n \n \n \n \n \n \n \n
    \n
    \n \n Cancel\n \n \n Save\n \n
    \n","import { Component, OnInit } from '@angular/core';\n// import {\n// ClockingLogsService,\n// UpdateWorkshopUserClockingLogDateRequestParams,\n// } from '@api-jobcard';\nimport { ClockingLogDto, WorkshopUser } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { UpdateWorkshopUserClockingLogRequestParams, WorkshopUsersService } from 'src/api/djc-booking-service/api/workshopUsers.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { ClockingService, JobcardItemStatusDto, NonProductiveActivityDto, NonProductiveActivityService, NonProductiveActivityStatusDto } from 'src/api/djc-booking-service';\n\ninterface JobcardItemStatusDisplayed extends JobcardItemStatusDto {\n nonProductiveActivity: NonProductiveActivityDto;\n cron: boolean;\n activityName: string;\n}\n\n@Component({\n selector: 'jc-clocking-logs-modal',\n templateUrl: './clocking-logs-modal.component.html',\n styleUrls: ['./clocking-logs-modal.component.scss'],\n})\nexport class ClockingLogsModalComponent implements OnInit {\n technicianErrorsLogs: JobcardItemStatusDisplayed[] = [];\n clockingErrorLogs: JobcardItemStatusDisplayed[] = [];\n nonProductiveCronActivies: NonProductiveActivityStatusDto[];\n\n workshopUser: WorkshopUserDto;\n workshopUsers: WorkshopUserDto[];\n clockingErrors: JobcardItemStatusDisplayed[] = [];\n user: WorkshopUserDto;\n nonProductiveClockings: JobcardItemStatusDisplayed[] = [];\n\n\n\n constructor(\n public activeModal: NgbActiveModal,\n private userService: UserAdminService,\n private clockingLogsService: WorkshopUsersService,\n private clockingGetLogsService: ClockingService,\n private clockingGetLogsCronService: NonProductiveActivityService\n ) {\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n });\n }\n\n ngOnInit() {\n this.getClockingErrors();\n }\n\n close() {\n const params: UpdateWorkshopUserClockingLogRequestParams = {\n userId: this.workshopUser.id,\n clockingLogDate: new Date().toDateString(),\n authorization: this.userService.accessToken,\n };\n this.clockingLogsService\n .updateWorkshopUserClockingLog(params)\n .subscribe((user: any) => {\n this.activeModal.close(\n this.clockingErrors?.length + this.nonProductiveCronActivies?.length\n );\n });\n }\n\n refreshClockingErrors() {\n this.clockingErrors = [];\n this.technicianErrorsLogs = [];\n this.clockingErrorLogs = [];\n this.nonProductiveClockings = [];\n this.getClockingErrors();\n }\n\n getClockingErrors() {\n this.clockingGetLogsService\n .getJobcardItemStatusClockingErrors({\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n })\n .subscribe((response: any) => {\n this.clockingErrors = response;\n this.clockingErrors.forEach((clock) => {\n if (clock.reason === 'CRON') {\n this.technicianErrorsLogs.push(clock);\n } else {\n this.clockingErrorLogs.push(clock);\n }\n });\n });\n // this.clockingLogsService\n // .getClockingLogs()\n // .subscribe((response: ClockingLogDto[]) => {\n // this.clockingErrors = response;\n // this.clockingErrors.forEach((clock) => {\n // if (clock.clockingCorrectedBy === 'CRON') {\n // this.technicianErrorsLogs.push(clock);\n // } else {\n // this.clockingErrorLogs.push(clock);\n // }\n // });\n // });\n this.clockingGetLogsCronService.\n getNonProductiveStatusByCron({\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n })\n .subscribe((response: NonProductiveActivityStatusDto[]) => {\n this.nonProductiveCronActivies = response;\n this.nonProductiveCronActivies.forEach((activity) => {\n const jobcardItemStatus: JobcardItemStatusDisplayed = {\n id: activity.id,\n errorReason: $localize`Technician Forgot to Clock out`,\n time: activity?.startTime,\n endTime: activity?.endTime,\n activityName: activity?.nonProductiveActivity?.activityName,\n workshopUserId: activity?.workshopUserId,\n nonProductiveActivity: activity.nonProductiveActivity,\n cron: activity.cron,\n duration: moment(activity.endTime).diff(\n moment(activity.startTime),\n 'seconds'\n ),\n };\n this.nonProductiveClockings.push(jobcardItemStatus);\n });\n });\n }\n}\n","
    \n
    \n \n \n \n Required Action on Clocking\n
    \n Please review the following clocking\n
    \n
    \n\n
    \n \n Close\n \n
    \n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n ClockingLogDto,\n JobcardItemStatus,\n NonProductiveActivity,\n NonProductiveActivityStatus,\n} from 'src/app/models/model/models';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Util } from 'src/app/core/util/util';\nimport { ClockedTimeDeleteModalComponent } from '../../clocked-time-modal/clocked-time-delete-modal/clocked-time-delete-modal.component';\nimport { ClockedTimeEditModalComponent } from '../../clocked-time-modal/clocked-time-edit-modal/clocked-time-edit-modal.component';\nimport {\n Activity,\n ClockedTime,\n} from '../../clocked-time-modal/clocked-time-modal.component';\nimport { UpdateNonProductiveActivityStatusRequestParams, WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { ClockingService, UpdateClockingRequestParams, JobcardItemStatusDto, NonProductiveActivityDto, NonProductiveActivityStatusDto, NonProductiveActivityService } from 'src/api/djc-booking-service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { User } from '../../../../api/document/model/user';\n\ninterface JobcardItemStatusDisplayed extends JobcardItemStatusDto {\n nonProductiveActivity: NonProductiveActivityDto;\n cron: boolean;\n}\n@Component({\n selector: 'jc-clocking-logs-table',\n templateUrl: './clocking-logs-table.component.html',\n styleUrls: ['./clocking-logs-table.component.scss'],\n})\nexport class ClockingLogsTableComponent implements OnInit {\n @Input() clockingErrorList: JobcardItemStatusDisplayed[];\n @Input() workshopUsers: WorkshopUserDto[];\n @Output() refreshView = new EventEmitter();\n lang: string;\n workshopId: number;\n userId: string;\n user: WorkshopUserDto;\n isProductive = false;\n hideDelete = false;\n\n constructor(\n private modalService: NgbModal,\n // private jobcardItemStatusService: JobcardItemStatusService\n private clockingService: ClockingService,\n private userService: UserAdminService,\n private activityService: NonProductiveActivityService\n ) {\n this.userService.getUser().subscribe(user=> {\n this.lang = this.userService.getLanguage(user.language);\n this.workshopId = user.workshopId;\n this.userId = user.id;\n this.user = user;\n });\n }\n\n ngOnInit(): void {\n this.isProductive = !this.clockingErrorList.some((list) => !list.status);\n }\n\n openModifyClockTimeModal(clockedLog: JobcardItemStatusDisplayed) {\n const activityList: Activity[] = [];\n activityList.push({\n id: clockedLog?.jobcardItemId,\n name: clockedLog?.activityName,\n workshopUserId: clockedLog?.workshopUserId,\n technicians: [],\n status: clockedLog,\n\n });\n const itemStatus: ClockedTime = { ...clockedLog };\n itemStatus.activityId = clockedLog?.jobcardItemId;\n\n const modalRef = this.modalService.open(ClockedTimeEditModalComponent);\n const clockedTimeEdit = modalRef.componentInstance as ClockedTimeEditModalComponent;\n clockedTimeEdit.jobcardItemStatus = itemStatus;\n clockedTimeEdit.activityList = activityList;\n clockedTimeEdit.workshopUsers = this.workshopUsers;\n clockedTimeEdit.isNonProductive = clockedLog?.nonProductiveActivity\n ? true\n : false;\n modalRef.result.then(\n (timeEdited: JobcardItemStatusDisplayed) => {\n this.save(timeEdited);\n },\n () => {\n /** model close or dismiss */\n }\n );\n }\n\n deleteClockedTime(clockedLog: JobcardItemStatusDisplayed) {\n const modalRef = this.modalService.open(ClockedTimeDeleteModalComponent);\n const clockedTimeDelete = modalRef.componentInstance as ClockedTimeDeleteModalComponent;\n clockedTimeDelete.jobcardItemStatus = { ...clockedLog };\n modalRef.result.then((timeEdited: JobcardItemStatusDisplayed) => {\n this.save(timeEdited);\n });\n }\n\n undeleteClockedTime(clockedLog: JobcardItemStatusDisplayed) {\n clockedLog.deleted = false;\n this.save(clockedLog);\n }\n\n private save(jobcardItemStatus: JobcardItemStatusDisplayed) {\n if (jobcardItemStatus.nonProductiveActivity) {\n const lang = this.userService.getLanguage(this.user.language);\n const param: UpdateNonProductiveActivityStatusRequestParams = {\n id: jobcardItemStatus.id,\n nonProductiveActivityStatusDto: {\n id: jobcardItemStatus.id,\n startTime: jobcardItemStatus.time,\n endTime: jobcardItemStatus.endTime,\n workshopUserId: jobcardItemStatus.workshopUserId,\n cron: false,\n nonProductiveActivity: jobcardItemStatus.nonProductiveActivity,\n },\n workshopId: this.user?.workshopId,\n userId: this.userId?.toString(),\n acceptLanguage: lang,\n authorization: this.userService.accessToken\n };\n this.activityService\n .updateNonProductiveActivityStatus(param)\n .subscribe((response: NonProductiveActivityStatusDto) =>\n this.refreshView.emit()\n );\n } else {\n const params: UpdateClockingRequestParams = {\n id: jobcardItemStatus.id,\n jobcardItemStatusDto: jobcardItemStatus,\n workshopId: this.workshopId,\n userId: this.userId,\n acceptLanguage: this.lang,\n authorization: this.userService.accessToken,\n };\n this.clockingService\n .updateClocking(params)\n .subscribe((response: JobcardItemStatusDto) => this.refreshView.emit());\n }\n }\n}\n"," 0\">\n \n \n \n Booking ID\n Error Description\n Activty\n Status\n Technician\n Clocked-In Date Time\n Clocked-Out Date Time\n Total Time\n Allowed Time\n \n \n \n \n \n \n {{ clockingError?.appointmentId }}\n \n {{ clockingError?.errorReason }}\n {{ clockingError?.activityName }}\n \n \n \n {{ clockingError?.workshopUserId | workshopUserName | async }}\n {{ clockingError?.time | date: 'short' }}\n {{ clockingError?.endTime | date: 'short' }}\n {{ clockingError?.duration }}\n \n {{ clockingError?.allowedTime | minutes }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n No clocking errors to correct !\n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-confirm-modal',\n templateUrl: './confirm-modal.component.html',\n styleUrls: ['./confirm-modal.component.scss'],\n})\nexport class ConfirmModalComponent implements OnInit {\n title = $localize`Confirmation`;\n message = $localize`Do you want to confirm?`;\n action = $localize`OK`;\n cancelAction = $localize`Cancel`;\n secondaryAction: string = undefined;\n showCancelButton = true;\n isDmsCustomerModal = false;\n blockedUser = false;\n constructor(public activeModal: NgbActiveModal) {}\n ngOnInit(): void {}\n\n submit() {\n if(this.blockedUser){\n this.activeModal.close(false); // return false task 452436\n }\n this.activeModal.close(true);\n }\n}\n","
    \n
    \n

    \n {{ title }}\n

    \n \n ×\n \n
    \n
    \n
    \n
    \n
    \n \n {{ cancelAction }}\n \n \n {{ secondaryAction }}\n \n \n {{ secondaryAction }}\n \n \n
    \n
    ","export const weekdayEnum = {\n Monday: 'monday',\n Tuesday: 'tuesday',\n Wednesday: 'wednesday',\n Thursday: 'thursday',\n Friday: 'friday',\n Saturday: 'saturday',\n Sunday: 'sunday',\n};\n\nexport const viewsEmun = {\n WorkshopAgendaView: 'workshopAgendaView',\n TechnicianAgendaView: 'technicianAgendaView',\n CourtesyVehicleAgendaView: 'courtesyVehicleAgendaView',\n WorkshopPlanningView: 'workshopPlanningView',\n WorkshopUtilisationView: 'workshopUtilisationView',\n TechnicianPlanningView: 'technicianPlanningView',\n CourtesyVehiclePlanningView: 'courtesyVehiclePlanningView',\n};\n\nexport const displayedJobcardStatuses = [\n 'done',\n 'new',\n 'inProgress',\n 'todo'\n];\n\nexport const appointmentStatusEnum = {\n New: 'new',\n Draft: 'draft',\n Schedule: 'schedule',\n AppointmentPrepared: 'appointmentPrepared',\n Received: 'received',\n Reparing: 'reparing',\n ServiceAdvisorValidationPending: 'serviceAdvisorValidationPending',\n ClientValidationPending: 'clientValidationPending',\n WarrantyValidationPending: 'warrantyValidationPending',\n SentBackError: 'sentBackError',\n WorkfileValidated: 'workfileValidated',\n Delivered: 'delivered',\n JobcardFinalised: 'jobcardFinalised',\n Cancelled: 'cancelled'\n}\n\nexport const jobcardItemTypeEnum = {\n Alert: 'alert',\n Pip: 'pip',\n Fault: 'fault',\n NextMaintenance: 'nextMaintenance',\n ProposedMaintenance: 'proposedMaintenance',\n Srt: 'srt',\n Free: 'free',\n Deferred: 'deferred',\n Checklist: 'checklist',\n EtimWeb: 'etimWeb'\n}\n\nexport const JobcardItemCustomerStatusActionTypeEnum = {\n Online: 'online',\n Offline: 'offline',\n Recep: 'recep',\n Wty: 'wty'\n}\n\nexport const JobcardItemCustomerStatusActionEnum = {\n Approve: 'approve',\n Decline: 'decline',\n AutoApv: 'autoApv',\n AutoDec: 'autoDec'\n}\n\nexport const PaymentTypeTypeEnum = {\n Retail: 'retail',\n Warranty: 'warranty',\n Internal: 'internal',\n OtherWarranty: 'otherWarranty'\n}\n\nexport const ExtraOperationTypeEnum = {\n All: 'all',\n Material: 'material',\n ExtraCharges: 'extraCharges',\n Sublet: 'sublet',\n Travel: 'travel',\n Freight: 'freight',\n FictitiousMaterial: 'fictitious_material',\n FmAntifreeze: 'fm_antifreeze',\n FmMiscellaneous: 'fm_miscellaneous',\n FmOil: 'fm_oil',\n FmRefrigerant: 'fm_refrigerant',\n FmTyre: 'fm_tyre'\n}\n\nexport const JobcardItemStatusSEnum = {\n New: 'new',\n Todo: 'todo',\n InProgress: 'inProgress',\n Pending: 'pending',\n Invoiced: 'invoiced',\n Done: 'done',\n InProgressProductive: 'inProgressProductive',\n DoneProductive: 'doneProductive',\n PendingProductive: 'pendingProductive',\n DoneNotWithinPlannedTime: 'doneNotWithinPlannedTime'\n}\n\nexport const JobcardItemGroupReplacedEnum = {\n N: 'N',\n R: 'R'\n};\n\nexport const JobcardItemAuthorizerNameEnum = {\n NE: 'NE',\n CE: 'CE'\n};\n\nexport const checklistInstanceEnum = {\n Reception: 'reception',\n Safety: 'safety',\n Maintenance: 'maintenance',\n}\n\nexport const wuIsAutomaticApprovalEnum = {\n YesImmediateAccess: 'yesImmediateAccess',\n YesDraftOnly: 'yesDraftOnly',\n OutOfHoursDraftOnly: 'outOfHoursDraftOnly',\n OutOfHoursNo: 'outOfHoursNo',\n YesAnytime: 'yesAnytime',\n YesOffline: 'yesOffline',\n Nope: 'nope'\n}\n\nexport const jobcardDmsOrderTypeEnum = {\n Quote: 'Quote',\n Invoice: 'Invoice',\n Reservation: 'Reservation',\n Order: 'Order'\n};\n\nexport interface JobcardItemStatus { \n /**\n * Jobcard item Status ID.\n */\n id?: number;\n time?: string;\n endTime?: string;\n /**\n * Jobcard item status name\n */\n status?: JobcardItemStatus.StatusEnum;\n /**\n * Status duration.\n */\n duration?: number;\n /**\n * Jobcard item clocking status (whan a technician is working on the activity on the mobile app)\n */\n clockingStatus?: JobcardItemStatus.ClockingStatusEnum;\n /**\n * Jobcard appointment priority\n */\n appointmentPriority?: JobcardItemStatus.AppointmentPriorityEnum;\n /**\n * Jobcard Item Id.\n */\n jobcardItemId?: number;\n /**\n * Workshop User Id.\n */\n workshopUserId?: string;\n /**\n * Reason for update.\n */\n reason?: JobcardItemStatus.ReasonEnum;\n /**\n * Other reason for update.\n */\n otherReason?: string;\n /**\n * Soft delete\n */\n deleted?: boolean;\n /**\n * activity update in fron end.\n */\n currentChangeActivity?: string;\n technicianFirstName?: string;\n technicianLastName?: string;\n /**\n * Jobcard item Status DMS ID.\n */\n dmsId?: string;\n}\nexport namespace JobcardItemStatus {\n export type StatusEnum = 'new' | 'todo' | 'inProgress' | 'pending' | 'invoiced' | 'done' | 'inProgressProductive' | 'doneProductive' | 'pendingProductive' | 'doneNotWithinPlannedTime';\n export const StatusEnum = {\n New: 'new' as StatusEnum,\n Todo: 'todo' as StatusEnum,\n InProgress: 'inProgress' as StatusEnum,\n Pending: 'pending' as StatusEnum,\n Invoiced: 'invoiced' as StatusEnum,\n Done: 'done' as StatusEnum,\n InProgressProductive: 'inProgressProductive' as StatusEnum,\n DoneProductive: 'doneProductive' as StatusEnum,\n PendingProductive: 'pendingProductive' as StatusEnum,\n DoneNotWithinPlannedTime: 'doneNotWithinPlannedTime' as StatusEnum\n };\n export type ClockingStatusEnum = 'CLOCKING_START' | 'CLOCKING_ONGOING' | 'CLOCKING_STOP';\n export const ClockingStatusEnum = {\n START: 'CLOCKING_START' as ClockingStatusEnum,\n ONGOING: 'CLOCKING_ONGOING' as ClockingStatusEnum,\n STOP: 'CLOCKING_STOP' as ClockingStatusEnum\n };\n export type AppointmentPriorityEnum = 'high' | 'medium' | 'low' | 'nopriority';\n export const AppointmentPriorityEnum = {\n High: 'high' as AppointmentPriorityEnum,\n Medium: 'medium' as AppointmentPriorityEnum,\n Low: 'low' as AppointmentPriorityEnum,\n Nopriority: 'nopriority' as AppointmentPriorityEnum\n };\n export type ReasonEnum = 'forgotClockOn' | 'forgotClockOff' | 'helpingAnotherTechnician' | 'forgotClockInOut' | 'technicalErrors' | 'discount' | 'other';\n export const ReasonEnum = {\n ForgotClockOn: 'forgotClockOn' as ReasonEnum,\n ForgotClockOff: 'forgotClockOff' as ReasonEnum,\n HelpingAnotherTechnician: 'helpingAnotherTechnician' as ReasonEnum,\n ForgotClockInOut: 'forgotClockInOut' as ReasonEnum,\n TechnicalErrors: 'technicalErrors' as ReasonEnum,\n Discount: 'discount' as ReasonEnum,\n Other: 'other' as ReasonEnum,\n };\n}\n\nexport interface OpeningDay {\n id?: number;\n weekday?: OpeningDay.WeekdayEnum;\n periods?: Array;\n}\nexport namespace OpeningDay {\n export type WeekdayEnum = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\n export const WeekdayEnum = {\n Monday: 'monday' as WeekdayEnum,\n Tuesday: 'tuesday' as WeekdayEnum,\n Wednesday: 'wednesday' as WeekdayEnum,\n Thursday: 'thursday' as WeekdayEnum,\n Friday: 'friday' as WeekdayEnum,\n Saturday: 'saturday' as WeekdayEnum,\n Sunday: 'sunday' as WeekdayEnum\n };\n}\n\nexport interface OpeningDayPeriods {\n id?: number;\n /**\n * Only the hours and minutes are used\n */\n start?: string;\n /**\n * Only the hours and minutes are used\n */\n end?: string;\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { OpeningDayPeriods, WorkshopUser } from 'src/app/models/model/models';\nimport { WorkshopService } from 'src/app/core/workshop/workshop.service';\nimport { Observable } from 'rxjs';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { WorkshopUserDto } from 'src/api/djc-admin-service';\n\n@Component({\n selector: 'jc-create-appointment-button',\n templateUrl: './create-appointment-button.component.html',\n styleUrls: ['./create-appointment-button.component.scss'],\n providers: [DatePipe],\n})\nexport class CreateAppointmentButtonComponent implements OnInit {\n @Input() date: Date = new Date();\n @Input() module: string = 'planning';\n @Input() outOfHour: boolean = false;\n hideButton = false;\n periods: OpeningDayPeriods;\n user$: Observable;\n private currentUser: WorkshopUserDto;\n\n constructor(\n private userService: UserAdminService,\n private router: Router,\n private datePipe: DatePipe,\n private workshopService: WorkshopAdminService,\n private toastrService: ToastrService\n ) {}\n\n // ngOnInit(): void {\n // this.user$ = this.userService.getUser();\n // this.user$.subscribe((wUser: WorkshopUserDto) => {\n // this.hideButton =\n // wUser.isAutomaticApproval === WorkshopUser.IsActivityApprovalEnum.Nope;\n // if (\n // wUser.isAutomaticApproval ===\n // WorkshopUser.IsActivityApprovalEnum.OutOfHoursNo &&\n // this.outOfHour\n // ) {\n // this.hideButton = false;\n // }\n // });\n // this.workshopService.getWorkshopPeriods().subscribe((periods) => {\n // this.periods = periods[0];\n // });\n // }\n ngOnInit(): void {\n this.user$ = this.userService.getUser();\n this.user$.subscribe((wUser: WorkshopUserDto) => {\n this.currentUser = wUser;\n this.updateButtonVisibility();\n });\n\n // Fetch workshop periods\n this.workshopService.getWorkshopPeriods().subscribe((periods) => {\n this.periods = periods[0];\n });\n }\n\n ngOnChanges(): void {\n this.updateButtonVisibility();\n }\n\n private updateButtonVisibility(): void {\n if (this.currentUser) {\n this.hideButton =\n this.currentUser.isAutomaticApproval ===\n WorkshopUser.IsActivityApprovalEnum.Nope;\n\n if (\n this.currentUser.isAutomaticApproval ===\n WorkshopUser.IsActivityApprovalEnum.OutOfHoursNo &&\n !this.outOfHour\n ) {\n this.hideButton = true;\n }\n }\n }\n openNewAppointment() {\n if (this.periods?.start) {\n // Seeting temparary localstorage identify and back to navigation\n sessionStorage.removeItem('djc-navigate-origin');\n if (this.module === 'workspace') {\n sessionStorage.setItem('djc-navigate-origin', 'workspace');\n }\n\n this.router.navigate(['/new-appointment'], {\n queryParams: { date: this.datePipe.transform(this.date, 'yyyy-MM-dd') },\n });\n } else {\n this.toastrService.warning(\n $localize`You cannot create an appointment until the opening hours have been set in the workshop admin page.`\n );\n }\n }\n}\n","\n \n \n \n \n New Appointment \n \n\n","import { Component } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-date-picker-modal',\n templateUrl: './date-picker-modal.component.html',\n styleUrls: ['./date-picker-modal.component.scss'],\n})\nexport class DatePickerModalComponent {\n date: string;\n minDate: string;\n maxDate: string;\n constructor(public activeModal: NgbActiveModal) {}\n\n submit() {\n this.activeModal.close(this.date);\n }\n}\n","
    \n

    Change date

    \n \n ×\n \n
    \n
    \n \n
    \n
    \n \n Cancel\n \n \n Save\n \n
    \n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { ConfigService } from 'src/app/core/config/config.service';\n\n@Component({\n selector: 'jc-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n encapsulation: ViewEncapsulation.None,\n})\nexport class DatePickerComponent implements OnInit {\n @Output() datetimeChange: EventEmitter = new EventEmitter();\n @Output() dateTimeChanged: EventEmitter = new EventEmitter();\n @Input() disabled: boolean;\n @Input() minWidth: string;\n\n minDateStruct: NgbDateStruct;\n maxDateStruct: NgbDateStruct;\n minutesStep: number;\n\n private _date: Date;\n private _time: NgbTimeStruct = {\n hour: new Date().getHours(),\n minute: 0,\n second: 0,\n };\n\n constructor(private configService: ConfigService) {}\n\n ngOnInit(): void {\n this.minutesStep = this.configService.minutesStep;\n }\n\n @Input()\n set datetime(datetimeString: string) {\n if (datetimeString) {\n const datetime = new Date(datetimeString);\n this._time = {\n hour: datetime.getHours(),\n minute: datetime.getMinutes(),\n second: datetime.getSeconds(),\n };\n this._date = datetime;\n this._date.setHours(0, 0, 0, 0);\n }\n }\n\n get datetime(): string {\n let _datetime: Date = new Date();\n if (this._date) {\n _datetime = new Date(this._date);\n }\n if (this._time) {\n _datetime.setHours(\n this._time.hour,\n this._time.minute,\n this._time.second,\n 0\n );\n }\n return _datetime.toISOString();\n }\n\n set date(date: Date) {\n this._date = date;\n this.datetimeChange.emit(this.datetime);\n this.dateTimeChanged.emit(null);\n }\n\n get date(): Date {\n return this._date;\n }\n\n set time(time: NgbTimeStruct) {\n this._time = time;\n this.datetimeChange.emit(this.datetime);\n this.dateTimeChanged.emit(null);\n }\n\n get time() {\n return this._time;\n }\n\n @Input()\n set minDate(minDateString: string) {\n if (minDateString) {\n const minDate = new Date(minDateString);\n this.minDateStruct = {\n year: minDate.getFullYear(),\n month: minDate.getMonth() + 1,\n day: minDate.getDate(),\n };\n }\n }\n\n @Input()\n set maxDate(maxDateString: string) {\n if (maxDateString) {\n const maxDate = new Date(maxDateString);\n this.maxDateStruct = {\n year: maxDate.getFullYear(),\n month: maxDate.getMonth() + 1,\n day: maxDate.getDate(),\n };\n }\n }\n}\n","
    \n
    \n
    \n
    \n \n \n {{ date | date }}\n \n \n
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n","import { Component, Input } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-date-time-picker-modal',\n templateUrl: './date-time-picker-modal.component.html',\n styleUrls: ['./date-time-picker-modal.component.scss'],\n})\nexport class DateTimePickerModalComponent {\n @Input() title: string;\n @Input() isDeliveryAndReceptionScreen: boolean;\n\n date: string;\n minDate: string;\n maxDate: string;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n submit() {\n const responsedata = {\n changeDate: this.date,\n };\n this.activeModal.close(responsedata);\n }\n}\n","
    \n

    {{ title }}

    \n \n ×\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n Cancel\n \n \n Save\n \n
    \n","import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ConfigService } from 'src/app/core/config/config.service';\n\n@Component({\n selector: 'jc-date-time-picker',\n templateUrl: './date-time-picker.component.html',\n styleUrls: ['./date-time-picker.component.scss'],\n // eslint-disable-next-line @angular-eslint/use-component-view-encapsulation\n encapsulation: ViewEncapsulation.None,\n})\nexport class DateTimePickerComponent implements OnInit, OnDestroy {\n @Output() datetimeChange: EventEmitter = new EventEmitter();\n @Output() dateTimeChanged: EventEmitter = new EventEmitter();\n @Input() disabled: boolean;\n @Input() minutesStep: number;\n @Input() isDateTimeEmpty: Observable;\n minDateStruct: NgbDateStruct & NgbTimeStruct;\n maxDateStruct: NgbDateStruct & NgbTimeStruct;\n unSubscribe$ = new Subject();\n //Below flag user to emptythe data/time\n resetFlag = false;\n resetTime: NgbTimeStruct = {\n hour: 0,\n minute: 0,\n second: 0,\n };\n\n private _date: Date;\n private _time: NgbTimeStruct = {\n hour: new Date().getHours(),\n minute: 0,\n second: 0,\n };\n\n constructor(private configService: ConfigService) {}\n\n ngOnInit(): void {\n if (!this.minutesStep) {\n this.minutesStep = this.configService.minutesStep;\n }\n this.isDateTimeEmpty\n ?.pipe(takeUntil(this.unSubscribe$), debounceTime(100))\n .subscribe((isEmpty) => {\n if (isEmpty) {\n this.resetFlag = true;\n } else {\n this.resetFlag = false;\n }\n });\n }\n\n @Input()\n set datetime(datetimeString: string) {\n if (datetimeString) {\n const datetime = new Date(datetimeString);\n this._time = {\n hour: datetime.getHours(),\n minute: datetime.getMinutes(),\n second: datetime.getSeconds(),\n };\n this._date = datetime;\n this._date.setHours(0, 0, 0, 0);\n }\n }\n\n get datetime(): string {\n let _datetime: Date = new Date();\n if (this._date) {\n _datetime = new Date(this._date);\n }\n if (this._time) {\n _datetime.setHours(\n this._time.hour,\n this._time.minute,\n this._time.second,\n 0\n );\n }\n return _datetime.toISOString();\n }\n\n set date(date: Date) {\n this._date = date;\n this.checkTimeChanged();\n this.datetimeChange.emit(this.datetime);\n this.dateTimeChanged.emit(null);\n }\n\n get date(): Date {\n return this._date;\n }\n\n set time(time: NgbTimeStruct) {\n this._time = time;\n this.datetimeChange.emit(this.datetime);\n this.dateTimeChanged.emit(null);\n }\n\n get time() {\n return this._time;\n }\n\n @Input()\n set minDate(newMinDate: string | Date) {\n if (newMinDate) {\n const minDate = new Date(newMinDate);\n this.minDateStruct = {\n year: minDate.getFullYear(),\n month: minDate.getMonth() + 1,\n day: minDate.getDate(),\n hour: minDate.getHours(),\n minute: minDate.getMinutes(),\n second: 0,\n };\n this.checkTimeChanged();\n }\n }\n\n @Input()\n set maxDate(maxDateString: string) {\n if (maxDateString) {\n const maxDate = new Date(maxDateString);\n this.maxDateStruct = {\n year: maxDate.getFullYear(),\n month: maxDate.getMonth() + 1,\n day: maxDate.getDate(),\n hour: maxDate.getHours(),\n minute: maxDate.getMinutes(),\n second: 0,\n };\n this.checkTimeChanged();\n }\n }\n\n /**\n * After time was changed, we need to check if it is coherent with the given min and max datetime.\n */\n checkTimeChanged() {\n if (\n this._date &&\n this.minDateStruct &&\n moment([\n this._date.getFullYear(),\n this._date.getMonth(),\n this._date.getDate(),\n ]).isSame(\n moment([\n this.minDateStruct.year,\n this.minDateStruct.month - 1,\n this.minDateStruct.day,\n ]),\n 'date'\n )\n ) {\n if (\n this._time.hour < this.minDateStruct.hour ||\n (this._time.hour === this.minDateStruct.hour &&\n this._time.minute <= this.minDateStruct.minute)\n ) {\n this.time = {\n hour: this.minDateStruct.hour,\n minute: this.minDateStruct.minute,\n second: 0,\n };\n }\n }\n if (\n this._date &&\n this.maxDateStruct &&\n moment([\n this._date.getFullYear(),\n this._date.getMonth(),\n this._date.getDate(),\n ]).isSame(\n moment([\n this.maxDateStruct.year,\n this.maxDateStruct.month - 1,\n this.maxDateStruct.day,\n ]),\n 'date'\n )\n ) {\n if (\n this._time?.hour > this.maxDateStruct.hour ||\n (this._time?.hour === this.maxDateStruct.hour &&\n this._time?.minute >= this.maxDateStruct.minute)\n ) {\n this.time = {\n hour: this.maxDateStruct.hour,\n minute: this.maxDateStruct.minute,\n second: 0,\n };\n }\n }\n }\n\n ngOnDestroy(): void {\n //Clear the memory\n this.unSubscribe$.next(null);\n this.unSubscribe$.complete();\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { JobcardItem } from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { Util } from 'src/app/core/util/util';\n\n@Component({\n selector: 'jc-defer-activity-modal',\n templateUrl: './defer-activity-modal.component.html',\n styleUrls: ['./defer-activity-modal.component.scss'],\n})\nexport class DeferActivityModalComponent implements OnInit {\n jobcardItem: JobcardItem;\n message: string;\n deferReason: string;\n jobcardItems: JobcardItem[];\n deferringDate: Date;\n today: NgbDateStruct;\n fromCheckListDefered = false;\n showDefferButton = true;\n title: string;\n reason: string;\n jobcardItemType = JobcardItem.TypeEnum;\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit(): void {\n const date = new Date();\n this.today = {\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n };\n this.deferReason = '';\n if (!this.fromCheckListDefered) {\n this.message = Util.stringFormat(\n $localize`Do you want to [0] \"[1]\" ?`,\n this.message,\n this.jobcardItem.name\n );\n }\n }\n\n changeReason() {\n if (this.deferReason === 'other') {\n this.jobcardItem.reason = '';\n } else {\n this.jobcardItem.reason = this.deferReason;\n }\n }\n\n deleteActivity() {\n this.jobcardItem.deleted = true;\n this.jobcardItems?.splice(this.jobcardItems?.indexOf(this.jobcardItem), 1);\n this.activeModal.close(this.jobcardItem);\n }\n\n onSubmit() {\n if (this.fromCheckListDefered) {\n this.activeModal.close({\n deferredToDate: moment(this.deferringDate).format('YYYY-MM-DD'),\n });\n } else {\n this.jobcardItem.deferred = true;\n if(this.jobcardItem?.type === JobcardItem.TypeEnum.Free){\n this.jobcardItem.type = JobcardItem.TypeEnum.Deferred;\n }\n this.jobcardItem.deferredDate = moment(new Date()).format('YYYY-MM-DD');\n this.jobcardItem.deferredToDate = moment(this.deferringDate).format(\n 'YYYY-MM-DD'\n );\n this.activeModal.close(this.jobcardItem);\n }\n }\n}\n","
    \n

    {{ title }}

    \n

    \n Add check/item as Deferred Activity\n

    \n \n ×\n \n
    \n
    \n
    \n
    {{ message }}
    \n \n
    \n \n \n \n \n Customer asked to delete\n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n \n Cancel\n \n \n Defer\n Confirm\n \n \n Delete\n \n
    \n
    \n","import { Component } from '@angular/core';\n\nimport { Appointment, AppointmentStatus } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { AppointmentStatusService, CreateAppointmentStatusRequestParams, GetAppointmentStatusRequestParams } from 'src/api/djc-workitem-service/api/appointmentStatus.service';\nimport { AppointmentStatusDto } from 'src/api/djc-workitem-service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { AppointmentShortDto } from 'src/api/djc-booking-service';\n\n@Component({\n selector: 'jc-delete-appointment-modal',\n templateUrl: './delete-appointment-modal.component.html',\n styleUrls: ['./delete-appointment-modal.component.scss'],\n})\nexport class DeleteAppointmentModalComponent {\n reason: AppointmentStatus.ReasonEnum = 'customerAdvised';\n appointment: AppointmentShortDto;\n\n constructor(\n public activeModal: NgbActiveModal,\n private userService: UserAdminService,\n private toastrService: ToastrService,\n private appointmentStatusService: AppointmentStatusService\n ) {}\n\n submit() {\n this.userService.getUser().subscribe(\n (user) => {\n const appointmentStatus: AppointmentStatusDto = {} as AppointmentStatusDto;\n appointmentStatus.reason = this.reason;\n appointmentStatus.status = AppointmentStatus.StatusEnum.Cancelled;\n appointmentStatus.workshopUser = user;\n const params: GetAppointmentStatusRequestParams = {\n appointmentId: this.appointment.appointmentId,\n workshopId: user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.appointmentStatusService.getAppointmentStatus(params).subscribe(res => {\n res.sort((a, b) => b.id - a.id);\n if (res.length > 0) {\n appointmentStatus.customerCompanyUser = res[0].customerCompanyUser;\n }\n const createAppointmentStatusRequestParams: CreateAppointmentStatusRequestParams = {} as CreateAppointmentStatusRequestParams;\n createAppointmentStatusRequestParams.appointmentId = this.appointment.appointmentId;\n createAppointmentStatusRequestParams.appointmentStatusDto = appointmentStatus;\n createAppointmentStatusRequestParams.applicationToken = this.userService.newToken;\n createAppointmentStatusRequestParams.workshopId = user.workshopId;\n createAppointmentStatusRequestParams.authorization = this.userService.accessToken;\n this.appointmentStatusService\n .createAppointmentStatus(createAppointmentStatusRequestParams)\n .subscribe(\n () => {\n this.activeModal.close(true);\n }\n // () => {\n // this.activeModal.dismiss();\n // this.toastrService.error(\n // $localize`Cancellation of the appointment failed.`\n // );\n // }\n );\n });\n });\n }\n}\n","
    \n

    Cancellation appointment

    \n \n ×\n \n
    \n
    \n Are you sure you want to delete this appointment?\n
    \n \n \n \n \n \n \n \n
    \n
    \n\n
    \n \n Cancel\n \n \n Delete\n \n
    \n","import {\n Directive,\n Input,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { OperationPart } from 'src/app/models/model/models';\nimport { DJCEpartsPart } from '../epart-modal/epart-modal.component';\n\n@Directive({\n selector: '[jcHasPartAssign]',\n})\nexport class HasPartAssignDirective implements OnInit {\n @Input('jcHasPartAssign') eParts: DJCEpartsPart[] = [];\n @Input('jcHasPartAssignPart') part: OperationPart = null;\n constructor(\n private viewContainer: ViewContainerRef,\n private templateRef: TemplateRef\n ) {}\n\n ngOnInit(): void {\n this.checkOperationPartVisible();\n }\n\n checkOperationPartVisible() {\n if (this.part?.part?.id) {\n if (\n this.eParts.find(\n (eP: DJCEpartsPart) => eP?.part?.id === this.part?.part?.id\n )\n ) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n } else {\n this.viewContainer.clear();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n/**\n * This directive used to auto scroll when dragging the element\n * controlled window scroll and specifi scroll\n */\n@Directive({\n selector: '[jcSetScrollView]',\n})\nexport class SetScrollViewDirective {\n @Input('jcSetScrollViewContent') contentContainer: any;\n @Input('jcSetScrollViewContainer') scrollContainer: any = 'window';\n stop = true;\n element: HTMLElement;\n constructor(private el: ElementRef) {}\n\n @HostListener('dragenter', ['$event'])\n @HostListener('dragover', ['$event'])\n onDragOver(e: any) {\n let scrollY = window.scrollY;\n let innerHeight = window.innerHeight;\n let top = e.screenY;\n // Check scroll container if wiondow or specific element\n if (this.scrollContainer != 'window') {\n e.target.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'start',\n });\n } else {\n // scroll to window\n this.stop = true;\n if (top < 350) {\n top = 10;\n }\n if (top < scrollY) {\n this.stop = false;\n this.scroll(-1, top);\n }\n if (top > innerHeight - 250) {\n this.stop = false;\n this.scroll(1, top);\n }\n }\n }\n\n @HostListener('dragend', ['$event'])\n onDragEnd(e: any) {\n this.stop = true;\n }\n\n scroll(step: any, topY: number) {\n window.scroll({\n top: topY,\n behavior: 'smooth',\n });\n if (!stop) {\n setTimeout(() => {\n scroll(step);\n }, 600);\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport {\r\n Appointment,\r\n ChecklistCheck,\r\n ChecklistGroup,\r\n ChecklistInstance,\r\n ChecklistQuestion,\r\n ChecklistResult,\r\n ChecklistResultAttachment,\r\n JobcardItem,\r\n JobcardItemStatus,\r\n JobcardItemTechnician,\r\n Operation,\r\n} from 'src/app/models/model/models';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as moment from 'moment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Util } from 'src/app/core/util/util';\r\nimport { JobcardItemCollapsable } from 'src/app/workfile/workfile-item/workfile-item.component';\r\nimport { AttachmentsModalComponent } from '../attachments-modal/attachments-modal.component';\r\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\r\nimport { DeferActivityModalComponent } from '../defer-activity-modal/defer-activity-modal.component';\r\nimport { environment } from '../../../environments/environment';\r\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\r\nimport { NewAppointmentService } from 'src/app/appointment/new-appointment.service';\r\nimport { AppointmentsService, GetFutureAppointmentsCreatedFromChecklistRequestParams } from 'src/api/djc-booking-service/api/appointments.service';\r\nimport { AppointmentDto, CreateJobcardItemRequestParams, JobcardItemService } from 'src/api/djc-booking-service';\r\nimport { ChecklistInstanceDto, CheckListResultDto, JobcardItemDto, JobcardItemOperationDto } from 'src/api/djc-workitem-service';\r\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\r\nimport { WorkshopUserDto } from 'src/api/djc-admin-service';\r\n\r\ninterface ChecklistInstanceDisplay extends ChecklistInstance {\r\n groups?: ChecklistGroup[];\r\n}\r\ninterface ChecklistInstanceDisplayNV extends ChecklistInstanceDto {\r\n groups?: ChecklistGroup[];\r\n}\r\nexport interface ChecklistCheckDisplay extends ChecklistCheck {\r\n checked?: boolean;\r\n}\r\n\r\ninterface ChecklistDisplay {\r\n id: number;\r\n groupName?: string;\r\n questionaire?: ChecklistQuestionDisplay[];\r\n}\r\n\r\ninterface ChecklistQuestionDisplay extends ChecklistQuestion {\r\n comment?: string;\r\n resultValue?: string;\r\n resultValueN?: number;\r\n rangeValue?: string;\r\n isActioned?: boolean;\r\n hasAttachments?: boolean;\r\n attachmentList?: ChecklistResultAttachment[];\r\n checksArray?: ChecklistCheckDisplay[];\r\n isInBasket?: boolean;\r\n groupName?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'jc-display-checklist-jobcard',\r\n templateUrl: './display-checklist-jobcard.component.html',\r\n styleUrls: ['./display-checklist-jobcard.component.scss'],\r\n})\r\nexport class DisplayChecklistJobcardComponent implements OnInit {\r\n @Input() isWorkfile: boolean;\r\n @Input() appointment: Appointment;\r\n @Input() appointmentNV: AppointmentDto;\r\n @Input() jobcardItemForChecklistView: JobcardItem;\r\n @Input() jobcardItemForChecklistViewNV: JobcardItemDto;\r\n @Input() comment: string;\r\n @Input() checklistInstanceId: number;\r\n @Input() operations: Operation[];\r\n @Input() operationsNV: JobcardItemOperationDto[];\r\n @Output() back = new EventEmitter();\r\n @Output() updateValue = new EventEmitter();\r\n appointmentCurrent: any;\r\n readonly resultTypeEnum = ChecklistQuestion.ResultTypeEnum;\r\n editable: boolean;\r\n checklistDisplay: ChecklistDisplay[] = [];\r\n results: ChecklistResult[];\r\n resultsNV: CheckListResultDto[];\r\n basketContent: ChecklistQuestionDisplay[] = [];\r\n checklistInstanceRoot: ChecklistInstance;\r\n checklistInstanceRootNV: ChecklistInstanceDto;\r\n checklistInstanceRootHtml: any;\r\n user: WorkshopUserDto;\r\n isActivityAdded: boolean;\r\n apptAvailable = false;\r\n newActivity: string;\r\n yesToDoStatus: boolean;\r\n isDisabled = false;\r\n deferredToDate: string;\r\n private isBreakDownAppointment: boolean;\r\n private checklistInstance: ChecklistInstanceDisplay;\r\n private checklistInstanceNV: ChecklistInstanceDisplayNV;\r\n private existingFutureJobcards: AppointmentDto[] = [];\r\n private outOfHour: boolean;\r\n environment = environment;\r\n\r\n constructor(\r\n private router: Router,\r\n private modalService: NgbModal,\r\n private toastrService: ToastrService,\r\n private jobcardItemService: JobcardItemService,\r\n private userService: UserAdminService,\r\n private workshopService: WorkshopAdminService,\r\n private newAppointmentService: NewAppointmentService,\r\n private appointmentsService: AppointmentsService\r\n ) {\r\n this.userService.getUser().subscribe((user: WorkshopUserDto) => {\r\n this.user = user;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.isBreakDownAppointment = this.newAppointmentService?.appointmentInCreation?.isBreakdownAppt;\r\n const dateappt = new Date();\r\n\r\n this.deferredToDate = moment(new Date())\r\n .add(3, 'months')\r\n .format('YYYY-MM-DD');\r\n\r\n if(this.appointment){\r\n this.appointmentCurrent = this.appointment;\r\n }\r\n if(this.appointmentNV){\r\n this.appointmentCurrent = this.appointmentNV;\r\n }\r\n let dayOfAppointment: string;\r\n const dateOfAppointment = moment().toISOString();\r\n switch (dateappt.getDay()) {\r\n case 0:\r\n dayOfAppointment = 'Sunday';\r\n break;\r\n case 1:\r\n dayOfAppointment = 'Monday';\r\n break;\r\n case 2:\r\n dayOfAppointment = 'Tuesday';\r\n break;\r\n case 3:\r\n dayOfAppointment = 'Wednesday';\r\n break;\r\n case 4:\r\n dayOfAppointment = 'Thursday';\r\n break;\r\n case 5:\r\n dayOfAppointment = 'Friday';\r\n break;\r\n case 6:\r\n dayOfAppointment = 'Saturday';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.workshopService.getWorkshop().subscribe((workshop) => {\r\n workshop.openingDays.forEach((wu) => {\r\n if (dayOfAppointment?.toLowerCase() === wu.weekday.toLowerCase()) {\r\n wu.periods.forEach((period) => {\r\n if (!this.apptAvailable) {\r\n const beforeTime = moment(period.start).format('HH:mm:ss');\r\n const afterTime = moment(period.end).format('HH:mm:ss');\r\n const appointmentTime = moment(dateOfAppointment).format(\r\n 'HH:mm:ss'\r\n );\r\n\r\n const beforeTimeSeconds: any = beforeTime.split(':'); // splitting the string by colo\r\n const beforeSeconds =\r\n beforeTimeSeconds[0] * 3600 +\r\n beforeTimeSeconds[1] * 60 +\r\n +beforeTimeSeconds[2]; // converting\r\n\r\n const afterTimeSeconds: any = afterTime.split(':');\r\n const afterSeconds =\r\n afterTimeSeconds[0] * 3600 +\r\n afterTimeSeconds[1] * 60 +\r\n +afterTimeSeconds[2]; // converting\r\n\r\n const appoinmentTimeSeconds: any = appointmentTime.split(':');\r\n const appointmentSeconds =\r\n appoinmentTimeSeconds[0] * 3600 +\r\n appoinmentTimeSeconds[1] * 60 +\r\n +appoinmentTimeSeconds[2]; // converting\r\n if (wu.periods.length === 1) {\r\n if (\r\n appointmentSeconds > beforeSeconds &&\r\n appointmentSeconds < afterSeconds\r\n ) {\r\n this.outOfHour = false;\r\n } else {\r\n this.outOfHour = true;\r\n this.apptAvailable = true;\r\n }\r\n } else {\r\n if (\r\n appointmentSeconds > beforeSeconds &&\r\n appointmentSeconds < afterSeconds\r\n ) {\r\n this.outOfHour = false;\r\n this.apptAvailable = true;\r\n } else {\r\n this.outOfHour = true;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n });\r\n\r\n this.isActivityAdded = false;\r\n if (\r\n (undefined !== this.user &&\r\n undefined !== this.user.isActivityApproval &&\r\n this.user.isActivityApproval === 'nope') ||\r\n (this.user.isActivityApproval === 'outOfHoursNo' && !this.outOfHour)\r\n ) {\r\n this.isActivityAdded = true;\r\n }\r\n\r\n if (\r\n undefined !== this.user &&\r\n undefined !== this.user.isAutomaticApproval &&\r\n this.user.isAutomaticApproval === 'yesImmediateAccess'\r\n ) {\r\n this.isDisabled = false;\r\n } else if (\r\n undefined !== this.user &&\r\n undefined !== this.user.isAutomaticApproval &&\r\n this.user.isAutomaticApproval === 'yesDraftOnly'\r\n ) {\r\n this.isDisabled = false;\r\n } else if (\r\n undefined !== this.user &&\r\n undefined !== this.user.isAutomaticApproval &&\r\n this.user.isAutomaticApproval === 'outOfHoursDraftOnly'\r\n ) {\r\n this.isDisabled = false;\r\n } else if (\r\n undefined !== this.user &&\r\n undefined !== this.user.isAutomaticApproval &&\r\n this.user.isAutomaticApproval === 'outOfHoursNo' &&\r\n this.outOfHour === true\r\n ) {\r\n this.isDisabled = false;\r\n } else {\r\n this.isDisabled = true;\r\n }\r\n let customerCompanyId = 0;\r\n let vehicleId = 0;\r\n let startDate = null;\r\n if(this.appointment){\r\n if (\r\n this.jobcardItemForChecklistView == null &&\r\n this.appointment?.checklistInstances &&\r\n this.checklistInstanceId\r\n ) {\r\n this.checklistInstanceRoot = this.appointment?.checklistInstances.find(\r\n (instance) => instance.id === this.checklistInstanceId\r\n );\r\n this.checklistInstanceRootHtml = this.appointment?.checklistInstances.find(\r\n (instance) => instance.id === this.checklistInstanceId\r\n );\r\n } else {\r\n this.checklistInstanceRoot = this.jobcardItemForChecklistView?.checklistInstances[0];\r\n this.checklistInstanceRootHtml = this.jobcardItemForChecklistView?.checklistInstances[0];\r\n }\r\n if (this.checklistInstanceRoot) {\r\n this.checklistInstance = JSON.parse(\r\n this.checklistInstanceRoot?.content ?? null\r\n );\r\n this.results = this.checklistInstanceRoot.checkListResult;\r\n }\r\n customerCompanyId = this.appointment.customerCompany.id;\r\n vehicleId = this.appointment.vehicle.id;\r\n startDate = this.appointment.receptionDate;\r\n\r\n }\r\n if(this.appointmentNV){\r\n if (\r\n this.jobcardItemForChecklistViewNV == null &&\r\n this.appointmentNV?.checklistInstances &&\r\n this.checklistInstanceId\r\n ) {\r\n this.checklistInstanceRootNV = this.appointmentNV?.checklistInstances.find(\r\n (instance) => instance.id === this.checklistInstanceId\r\n );\r\n this.checklistInstanceRootHtml = this.appointmentNV?.checklistInstances.find(\r\n (instance) => instance.id === this.checklistInstanceId\r\n );\r\n } else {\r\n this.checklistInstanceRootNV = this.jobcardItemForChecklistViewNV?.checklistInstances[0];\r\n this.checklistInstanceRootHtml = this.jobcardItemForChecklistViewNV?.checklistInstances[0];\r\n }\r\n if (this.checklistInstanceRootNV) {\r\n this.checklistInstanceNV = JSON.parse(\r\n this.checklistInstanceRootNV?.content ?? null\r\n );\r\n this.resultsNV = this.checklistInstanceRootNV.checkListResult;\r\n }\r\n customerCompanyId = this.appointmentNV.customerCompany.id;\r\n vehicleId = this.appointmentNV.vehicle.id;\r\n startDate = this.appointmentNV.receptionDate;\r\n }\r\n const getParams: GetFutureAppointmentsCreatedFromChecklistRequestParams = {\r\n applicationToken: this.userService.newToken,\r\n authorization: this.userService.accessToken,\r\n customerCompanyId,\r\n vehicleId,\r\n startDate,\r\n };\r\n if (getParams?.customerCompanyId && getParams?.vehicleId && getParams?.startDate) {\r\n this.appointmentsService\r\n .getFutureAppointmentsCreatedFromChecklist(getParams)\r\n .subscribe((appointments) => {\r\n this.existingFutureJobcards = appointments || [];\r\n this.refreshChecklist();\r\n });\r\n }\r\n }\r\n\r\n backToPreviousView() {\r\n let nbNotActioned = 0;\r\n this.checklistDisplay?.forEach((checklist) => {\r\n checklist.questionaire?.forEach((question) => {\r\n if (this.isNotActioned(question)) {\r\n nbNotActioned++;\r\n }\r\n });\r\n });\r\n if (nbNotActioned > 0) {\r\n const modalRef = this.modalService.open(ConfirmModalComponent, {\r\n backdrop: 'static',\r\n });\r\n modalRef.componentInstance.title = $localize`Checks/items not actioned`;\r\n modalRef.componentInstance.message = Util.stringFormat(\r\n $localize`You have [0] issue(s) identified that have not been actioned, do you still want to close the checklist?`,\r\n nbNotActioned\r\n );\r\n modalRef.componentInstance.action = $localize`Close`;\r\n modalRef.result.then(\r\n (confirmed: boolean) => {\r\n if (confirmed) {\r\n this.back.emit(false);\r\n }\r\n },\r\n () => {\r\n /* Ignore dismiss */\r\n }\r\n );\r\n } else {\r\n this.back.emit(false);\r\n }\r\n }\r\n\r\n addActivity(\r\n question: ChecklistQuestionDisplay,\r\n activityStatus: string\r\n ): void {\r\n const modalRef = this.modalService.open(ConfirmModalComponent, {\r\n backdrop: 'static',\r\n });\r\n modalRef.componentInstance.title = $localize`Add check/item as Activity`;\r\n modalRef.componentInstance.message = Util.stringFormat(\r\n $localize`Are you sure you want to add the selected check/item ([0]) as an activity to the current jobcard?`,\r\n question.label\r\n );\r\n modalRef.componentInstance.action = $localize`Yes`;\r\n modalRef.result.then(\r\n (confirmed: boolean) => {\r\n if (confirmed) {\r\n // Add question as new activity to the current jobcard\r\n const customerN = this.appointment ? (this.appointment.status?.customerCompanyUser\r\n ? this.appointment.status?.customerCompanyUser?.firstName\r\n ? this.appointment.status?.customerCompanyUser?.firstName +\r\n ' ' +\r\n this.appointment.status?.customerCompanyUser?.lastName\r\n : this.appointment.status?.customerCompanyUser?.lastName\r\n : null) : (this.appointmentNV.status?.customerCompanyUser\r\n ? this.appointmentNV.status?.customerCompanyUser?.firstName\r\n ? this.appointmentNV.status?.customerCompanyUser?.firstName +\r\n ' ' +\r\n this.appointmentNV.status?.customerCompanyUser?.lastName\r\n : this.appointmentNV.status?.customerCompanyUser?.lastName\r\n : null);\r\n const customerName = customerN;\r\n\r\n let customerAgreement = true;\r\n let newStatus = JobcardItemStatus.StatusEnum.Todo;\r\n if (\r\n activityStatus === undefined ||\r\n activityStatus === 'yesToDoStatus' ||\r\n activityStatus === 'yesNewStatusOnly' ||\r\n (activityStatus === 'outOfHoursNewStatus' && this.outOfHour) ||\r\n activityStatus === 'outOfHoursNo'\r\n ) {\r\n customerAgreement = false;\r\n if (\r\n activityStatus === 'yesNewStatusOnly' ||\r\n (activityStatus === 'outOfHoursNewStatus' && this.outOfHour)\r\n ) {\r\n newStatus = JobcardItemStatus.StatusEnum.New;\r\n }\r\n }\r\n const workshopBayId = this.appointment ? this.appointment.workshopBayId : this.appointmentNV.workshopBayId;\r\n const weight = this.appointment ? (this.appointment.jobcard?.jobcardItems?.filter(\r\n (item) => !item.deleted && !item.deferred\r\n ).length) : (this.appointmentNV.jobcard?.jobcardItems?.filter(\r\n (item) => !item.deleted && !item.deferred\r\n ).length);\r\n const newJobcardItem: JobcardItemDto = {\r\n name: `${question.groupName} - ${question.label}`,\r\n type: 'checklist',\r\n visible: true,\r\n deferred: false,\r\n deleted: false,\r\n internalNotes: question.comment,\r\n operations: [],\r\n checklistInstances: [],\r\n jobcardItemAttachments: [],\r\n jobcardItemStatus: [\r\n {\r\n status: newStatus,\r\n time: moment(new Date()).toISOString(),\r\n },\r\n ],\r\n technicians: [],\r\n workshopBayId,\r\n isExtraActivity: false,\r\n isCustomerAgreed: customerAgreement,\r\n agreementCustomerName: customerName,\r\n weight,\r\n jobcardItemSpells: [\r\n {\r\n weight: 1,\r\n estimatedDuration: 0,\r\n startDate: this.newAppointmentService?.appointmentInCreation?.receptionDate,\r\n technicians: [],\r\n },\r\n ],\r\n };\r\n\r\n const defaultOperation = this.operationsNV.find(\r\n (x) => x?.isDefault === true\r\n );\r\n if (environment.isIveco && defaultOperation) {\r\n newJobcardItem.operations.push({\r\n code: defaultOperation?.code,\r\n manufacturer: defaultOperation?.manufacturer,\r\n label: defaultOperation?.label,\r\n durationTime: 0,\r\n officialTime: defaultOperation?.officialTime,\r\n isDefault: defaultOperation?.isDefault,\r\n parts: [],\r\n srt: false,\r\n });\r\n }\r\n this.newAppointmentService.setItemsWeight([newJobcardItem]);\r\n\r\n const createItemParams: CreateJobcardItemRequestParams = {\r\n jobcardId: this.appointmentNV.jobcard?.id,\r\n authorization: this.userService.accessToken,\r\n jobcardItemDto: newJobcardItem,\r\n };\r\n this.jobcardItemService.createJobcardItem(createItemParams)\r\n .subscribe((addedActivity) => {\r\n this.appointmentNV.jobcard?.jobcardItems?.push(addedActivity);\r\n this.toastrService.success($localize`Activity added`);\r\n this.refreshChecklist();\r\n });\r\n }\r\n },\r\n () => {\r\n /* Ignore dismiss */\r\n }\r\n );\r\n }\r\n\r\n deferActivity(question: ChecklistQuestionDisplay): void {\r\n const modalRef = this.modalService.open(DeferActivityModalComponent, {\r\n backdrop: 'static',\r\n });\r\n modalRef.componentInstance.message = Util.stringFormat(\r\n $localize`Are you sure you want to defer this activity ([0])?`,\r\n question.label\r\n );\r\n modalRef.componentInstance.deferringDate = moment(new Date())\r\n .add(3, 'months')\r\n .toDate();\r\n modalRef.componentInstance.fromCheckListDefered = true;\r\n modalRef.result.then(\r\n (confirmed) => {\r\n if (confirmed.deferredToDate) {\r\n // Add question as new deferred activity\r\n const workshopBayId = this.appointment ? this.appointment.workshopBayId : this.appointmentNV.workshopBayId;\r\n\r\n const newDeferredItem: JobcardItemDto = {\r\n name: `${question.groupName} - ${question.label}`,\r\n type: 'deferred',\r\n deferred: true,\r\n deferredDate: moment(new Date()).format('YYYY-MM-DD'),\r\n deferredToDate: confirmed.deferredToDate,\r\n deleted: false,\r\n reason: $localize`Deferred from checklist`,\r\n internalNotes: question.comment,\r\n operations: [],\r\n jobcardItemAttachments: [],\r\n jobcardItemStatus: [],\r\n technicians: [],\r\n workshopBayId,\r\n };\r\n\r\n const createItemParams: CreateJobcardItemRequestParams = {\r\n jobcardId: this.appointmentNV.jobcard?.id,\r\n jobcardItemDto: newDeferredItem,\r\n authorization: this.userService.accessToken,\r\n };\r\n this.jobcardItemService.createJobcardItem(createItemParams)\r\n .subscribe((addedActivity) => {\r\n this.appointmentNV.jobcard?.jobcardItems?.push(addedActivity);\r\n this.toastrService.success($localize`Activity deferred`);\r\n this.refreshChecklist();\r\n });\r\n }\r\n },\r\n () => {\r\n /* Ignore dismiss */\r\n }\r\n );\r\n }\r\n\r\n openAttachments(\r\n attachmentList: ChecklistResultAttachment[],\r\n questionComment: string\r\n ) {\r\n const modalRef = this.modalService.open(AttachmentsModalComponent, {\r\n backdrop: 'static',\r\n size: 'lg',\r\n });\r\n modalRef.componentInstance.jobcardAttachments = attachmentList;\r\n modalRef.componentInstance.comment = questionComment;\r\n modalRef.componentInstance.readonly = true;\r\n modalRef.componentInstance.azureFolder = `appointments/${this.appointmentNV.id}/jobcard`;\r\n }\r\n\r\n addToBasket(question: ChecklistQuestionDisplay) {\r\n question.isInBasket = true;\r\n this.basketContent.push(question);\r\n }\r\n\r\n removeFromBasket(question: ChecklistQuestionDisplay) {\r\n question.isInBasket = false;\r\n const index = this.basketContent.indexOf(question, 0);\r\n if (index > -1) {\r\n this.basketContent.splice(index, 1);\r\n }\r\n }\r\n\r\n goToAppointmentCreation(activityStatus: string) {\r\n let nbNotActioned = 0;\r\n this.checklistDisplay?.forEach((checklist) => {\r\n checklist.questionaire?.forEach((question) => {\r\n const index = this.basketContent.indexOf(question, 0);\r\n if (this.isNotActioned(question) && index === -1) {\r\n nbNotActioned++;\r\n }\r\n });\r\n });\r\n if (nbNotActioned > 0) {\r\n const modalRef = this.modalService.open(ConfirmModalComponent, {\r\n backdrop: 'static',\r\n });\r\n modalRef.componentInstance.title = $localize`Checks/items not actioned`;\r\n modalRef.componentInstance.message = Util.stringFormat(\r\n $localize`You have [0] issue(s) identified that have not been actioned, do you still want to proceed with creating a new Jobcard?`,\r\n nbNotActioned\r\n );\r\n modalRef.componentInstance.action = $localize`Yes`;\r\n modalRef.result.then(\r\n (confirmed: boolean) => {\r\n if (confirmed) {\r\n this.appointment ? this.createAppointment(activityStatus) : this.createAppointmentNV(activityStatus);\r\n }\r\n },\r\n () => {\r\n /* Ignore dismiss */\r\n }\r\n );\r\n } else {\r\n this.appointment ? this.createAppointment(activityStatus) : this.createAppointmentNV(activityStatus);\r\n }\r\n }\r\n\r\n private createAppointment(activityStatus: string) {\r\n // Agreement Customer Name\r\n let customerName = '';\r\n this.appointment?.jobcard?.jobcardItems?.forEach((ji) => {\r\n if (!customerName && ji.isCustomerAgreed && ji.agreementCustomerName) {\r\n customerName = ji.agreementCustomerName;\r\n }\r\n });\r\n\r\n // Create a new Jobcard item for each element in the basket\r\n const jobcardItems: JobcardItemDto[] = [];\r\n const technicians: JobcardItemTechnician[] = [];\r\n this.basketContent.forEach((question: ChecklistQuestionDisplay) => {\r\n const newJobcardItem: JobcardItemDto = {\r\n name: `${question.groupName} - ${question.label}`,\r\n operations: [],\r\n jobcardItemAttachments: [],\r\n jobcardItemStatus: [],\r\n type: 'checklist',\r\n internalNotes: question.comment,\r\n visible: true,\r\n deferred: false,\r\n deleted: false,\r\n technicians: [],\r\n workshopBayId: this.appointment.workshopBayId,\r\n isExtraActivity: false,\r\n isCustomerAgreed: true,\r\n agreementCustomerName: customerName,\r\n };\r\n newJobcardItem.jobcardItemStatus = [];\r\n newJobcardItem.jobcardItemSpells = [];\r\n newJobcardItem.jobcardItemSpells.push({\r\n weight: 1,\r\n technicians,\r\n estimatedDuration: 0,\r\n startDate: new Date().toISOString(),\r\n });\r\n\r\n this.setCustomerAgreement(newJobcardItem, activityStatus);\r\n\r\n jobcardItems.push(newJobcardItem);\r\n });\r\n\r\n // Sending informations from the original appointment to pre-fill the new one\r\n this.newAppointmentService.setAppointmentOrigin({\r\n id: undefined,\r\n customerCompany: this.appointment.customerCompany,\r\n status: {\r\n id: undefined,\r\n workshopUser: this.appointment.status.workshopUser,\r\n customerCompanyUser: this.appointment.status.customerCompanyUser,\r\n },\r\n vehicle: this.appointment.vehicle,\r\n driver: this.appointment.driver,\r\n engineHours: this.appointment.engineHours,\r\n jobcard: {\r\n id: undefined,\r\n failureDate: this.appointment.jobcard.failureDate,\r\n jobcardItems,\r\n },\r\n repairAddress: this.appointment.repairAddress,\r\n salesOrganizationId: this.appointment.salesOrganizationId,\r\n unitStatus: this.appointment.unitStatus,\r\n });\r\n this.router.navigateByUrl('/new-appointment');\r\n }\r\n\r\n private createAppointmentNV(activityStatus: string) {\r\n // Agreement Customer Name\r\n let customerName = '';\r\n this.appointmentNV?.jobcard?.jobcardItems?.forEach((ji) => {\r\n if (!customerName && ji.isCustomerAgreed && ji.agreementCustomerName) {\r\n customerName = ji.agreementCustomerName;\r\n }\r\n });\r\n\r\n // Create a new Jobcard item for each element in the basket\r\n const jobcardItems: JobcardItemDto[] = [];\r\n const technicians: JobcardItemTechnician[] = [];\r\n this.basketContent.forEach((question: ChecklistQuestionDisplay) => {\r\n const newJobcardItem: JobcardItemDto = {\r\n name: `${question.groupName} - ${question.label}`,\r\n operations: [],\r\n jobcardItemAttachments: [],\r\n jobcardItemStatus: [],\r\n type: 'checklist',\r\n internalNotes: question.comment,\r\n visible: true,\r\n deferred: false,\r\n deleted: false,\r\n technicians: [],\r\n workshopBayId: this.appointmentNV.workshopBayId,\r\n isExtraActivity: false,\r\n isCustomerAgreed: true,\r\n agreementCustomerName: customerName,\r\n };\r\n newJobcardItem.jobcardItemStatus = [];\r\n newJobcardItem.jobcardItemSpells = [];\r\n newJobcardItem.jobcardItemSpells.push({\r\n weight: 1,\r\n technicians,\r\n estimatedDuration: 0,\r\n startDate: new Date().toISOString(),\r\n });\r\n\r\n this.setCustomerAgreement(newJobcardItem, activityStatus);\r\n\r\n jobcardItems.push(newJobcardItem);\r\n });\r\n\r\n // Sending informations from the original appointment to pre-fill the new one\r\n this.newAppointmentService.setAppointmentOrigin({\r\n id: undefined,\r\n customerCompany: this.appointmentNV.customerCompany,\r\n status: {\r\n id: undefined,\r\n workshopUser: this.appointmentNV.status.workshopUser,\r\n customerCompanyUser: this.appointmentNV.status.customerCompanyUser,\r\n },\r\n vehicle: this.appointmentNV.vehicle,\r\n driver: this.appointmentNV?.driver ? this.appointmentNV.driver : {\r\n id: null,\r\n customerCompanyId: null,\r\n firstName: null,\r\n lastName: null,\r\n email: null,\r\n mobilePhone: null,\r\n phone: null,\r\n dmsId: null,\r\n role: null,\r\n },\r\n engineHours: this.appointmentNV.engineHours,\r\n jobcard: {\r\n id: undefined,\r\n failureDate: this.appointmentNV.jobcard.failureDate,\r\n jobcardItems,\r\n },\r\n repairAddress: this.appointmentNV.repairAddress,\r\n salesOrganizationId: this.appointmentNV.salesOrganizationId,\r\n unitStatus: this.appointmentNV.unitStatus,\r\n });\r\n this.newAppointmentService.setCreateAppointmentFromWorkFile();\r\n this.router.navigateByUrl('/new-appointment');\r\n }\r\n\r\n private refreshChecklist(): void {\r\n this.checklistDisplay = [];\r\n if (this.checklistInstance) {\r\n this.checklistInstance.groups.forEach((group: ChecklistGroup, index) => {\r\n const list: ChecklistQuestionDisplay[] = [];\r\n group.questions.forEach((question: ChecklistQuestionDisplay) => {\r\n question.isInBasket = false;\r\n question.groupName = group.name;\r\n question = this.setResult(question);\r\n list.push(question);\r\n });\r\n this.checklistDisplay.push({\r\n id: index,\r\n groupName: group.name,\r\n questionaire: list,\r\n });\r\n });\r\n }\r\n if (this.checklistInstanceNV) {\r\n this.checklistInstanceNV.groups.forEach((group: ChecklistGroup, index) => {\r\n const list: ChecklistQuestionDisplay[] = [];\r\n group.questions.forEach((question: ChecklistQuestionDisplay) => {\r\n question.isInBasket = false;\r\n question.groupName = group.name;\r\n question = this.setResult(question);\r\n list.push(question);\r\n });\r\n this.checklistDisplay.push({\r\n id: index,\r\n groupName: group.name,\r\n questionaire: list,\r\n });\r\n });\r\n }\r\n }\r\n\r\n private setResult(\r\n question: ChecklistQuestionDisplay\r\n ): ChecklistQuestionDisplay {\r\n this.resultsNV?.forEach((result) => {\r\n if (question.id === result.itemId) {\r\n question.resultValue = result.resultValue;\r\n if (question.resultType === this.resultTypeEnum.Slider) {\r\n if (!question.resultValue) {\r\n question.resultValue = '0';\r\n }\r\n question.rangeValue = `${question.resultValue} / ${question.sliderMax}`;\r\n question.resultValueN = Number(question.resultValue);\r\n } else if (question.resultType === this.resultTypeEnum.Checks) {\r\n question.checksArray = question.checks;\r\n question.checksArray.forEach((checks: ChecklistCheckDisplay) => {\r\n if (checks.id === Number(question.resultValue)) {\r\n checks.checked = true;\r\n }\r\n });\r\n }\r\n if (result.commentResult) {\r\n question.comment = result.commentResult;\r\n }\r\n question.hasAttachments =\r\n result?.checkListResultAttachment.length > 0 ? true : false;\r\n if (question.hasAttachments) {\r\n question.attachmentList = result.checkListResultAttachment;\r\n }\r\n // Determine if question check/item has been actioned already\r\n question.isActioned = !!this.appointmentNV.jobcard?.jobcardItems?.find(\r\n (item) =>\r\n item.name === `${question.groupName} - ${question.label}` &&\r\n // Is check/item added as an activity?\r\n ((item.type === 'checklist' && !item.deleted && !item.deferred) ||\r\n // Is check/item deferred?\r\n (item.deferred && !item.deleted))\r\n );\r\n if (!question.isActioned) {\r\n // Is check/item added in a new jobcard?\r\n question.isActioned = !!this.existingFutureJobcards.find(\r\n (app) =>\r\n !!app.jobcard?.jobcardItems?.find(\r\n (ji) =>\r\n ji.type === 'checklist' &&\r\n !ji.deleted &&\r\n ji.name === `${question.groupName} - ${question.label}`\r\n )\r\n );\r\n }\r\n }\r\n });\r\n this.results?.forEach((result) => {\r\n if (question.id === result.itemId) {\r\n question.resultValue = result.resultValue;\r\n if (question.resultType === this.resultTypeEnum.Slider) {\r\n if (!question.resultValue) {\r\n question.resultValue = '0';\r\n }\r\n question.rangeValue = `${question.resultValue} / ${question.sliderMax}`;\r\n question.resultValueN = Number(question.resultValue);\r\n } else if (question.resultType === this.resultTypeEnum.Checks) {\r\n question.checksArray = question.checks;\r\n question.checksArray.forEach((checks: ChecklistCheckDisplay) => {\r\n if (checks.id === Number(question.resultValue)) {\r\n checks.checked = true;\r\n }\r\n });\r\n }\r\n if (result.commentResult) {\r\n question.comment = result.commentResult;\r\n }\r\n question.hasAttachments =\r\n result?.checkListResultAttachment.length > 0 ? true : false;\r\n if (question.hasAttachments) {\r\n question.attachmentList = result.checkListResultAttachment;\r\n }\r\n // Determine if question check/item has been actioned already\r\n question.isActioned = !!this.appointment.jobcard?.jobcardItems?.find(\r\n (item) =>\r\n item.name === `${question.groupName} - ${question.label}` &&\r\n // Is check/item added as an activity?\r\n ((item.type === 'checklist' && !item.deleted && !item.deferred) ||\r\n // Is check/item deferred?\r\n (item.deferred && !item.deleted))\r\n );\r\n if (!question.isActioned) {\r\n // Is check/item added in a new jobcard?\r\n question.isActioned = !!this.existingFutureJobcards.find(\r\n (app) =>\r\n !!app.jobcard?.jobcardItems?.find(\r\n (ji) =>\r\n ji.type === 'checklist' &&\r\n !ji.deleted &&\r\n ji.name === `${question.groupName} - ${question.label}`\r\n )\r\n );\r\n }\r\n }\r\n });\r\n return question;\r\n }\r\n\r\n private isNotActioned(question: ChecklistQuestionDisplay) {\r\n if (\r\n (question.resultType === this.resultTypeEnum.Status &&\r\n question.resultValue === 'error') ||\r\n (question.resultType === this.resultTypeEnum.Switch &&\r\n question.resultValue === 'false') ||\r\n (question.resultType === this.resultTypeEnum.Slider &&\r\n parseFloat(question.resultValue) / question.sliderMax < 0.5)\r\n ) {\r\n return !question.isActioned;\r\n }\r\n return false;\r\n }\r\n\r\n private setCustomerAgreement(\r\n newJobcardItem: JobcardItemCollapsable,\r\n activityStatus: string\r\n ) {\r\n newJobcardItem.isCustomerAgreed = true;\r\n let newStatus = JobcardItemStatus.StatusEnum.Todo;\r\n if (\r\n activityStatus === undefined ||\r\n activityStatus === 'yesToDoStatus' ||\r\n activityStatus === 'yesNewStatusOnly' ||\r\n (activityStatus === 'outOfHoursNewStatus' && this.outOfHour) ||\r\n activityStatus === 'outOfHoursNo'\r\n ) {\r\n newJobcardItem.isCustomerAgreed = false;\r\n newJobcardItem.agreementCustomerName = undefined;\r\n if (\r\n activityStatus === 'yesNewStatusOnly' ||\r\n (activityStatus === 'outOfHoursNewStatus' && this.outOfHour)\r\n ) {\r\n newStatus = JobcardItemStatus.StatusEnum.New;\r\n }\r\n }\r\n newJobcardItem.jobcardItemStatus.push({\r\n status: newStatus,\r\n time: moment(new Date()).toISOString(),\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n Back to Workfile Details\r\n \r\n \r\n \r\n \r\n \r\n Back to Activities\r\n \r\n
    \r\n \r\n
    \r\n {{ appointment?.customerCompany?.name }}\r\n
    \r\n {{ appointment?.customerCompany?.phone }}\r\n
    \r\n {{ appointment?.customerCompany?.mobilePhone }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n The checklist has not been completed yet.\r\n \r\n\r\n \r\n The checklist is not set yet.\r\n \r\n\r\n \r\n

    \r\n
    \r\n Reception -\r\n
    \r\n
    \r\n {{ checklistInstanceRootHtml?.type | titlecase }} -\r\n
    \r\n {{ checklistInstanceRootHtml?.checklistTemplateTitle }}\r\n

    \r\n\r\n \r\n
    {{ group.groupName }}
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {{\r\n question.comment.length > 30\r\n ? (question.comment | slice: 0:30) + '...'\r\n : question.comment\r\n }}\r\n \r\n \r\n {{ question.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 \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n {{\r\n question?.rangeValue\r\n }}\r\n -\r\n \r\n\r\n \r\n \r\n {{ question.labelFault }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ question.labelOk }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ check.label }}\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

    Basket

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {{ question.groupName }} - {{ question.label }}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n User Don't have access\r\n \r\n\r\n \r\n \r\n Create New Jobcard\r\n \r\n \r\n
    \r\n
    \r\n \r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n ChecklistCheck,\n ChecklistGroup,\n ChecklistInstance,\n ChecklistQuestion,\n ChecklistResultAttachment,\n JobcardItem,\n JobcardItemStatus,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { Util } from 'src/app/core/util/util';\nimport { AttachmentsModalComponent } from '../attachments-modal/attachments-modal.component';\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\nimport { AppointmentsService, GetAppointmentByIdRequestParams, GetFutureAppointmentsCreatedFromChecklistRequestParams } from 'src/api/djc-booking-service/api/appointments.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { AppointmentDto } from 'src/api/djc-booking-service';\nimport { JobcardItemCollapsable } from 'src/app/workfile/workfile-item/workfile-item.component';\nimport { NewAppointmentService } from 'src/app/appointment/new-appointment.service';\nimport { Observable, switchMap, tap } from 'rxjs';\nimport { ChecklistInstanceDto, CheckListResultDto, JobcardItemDto } from 'src/api/djc-workitem-service';\nimport { MappingService } from 'src/app/core/mapping/mapping.service';\nimport { JobcardItemCollapsableNew } from '../new-activities/new-activities.component';\n\ninterface ChecklistInstanceDisplay extends ChecklistInstanceDto {\n groups?: ChecklistGroup[];\n}\n\nexport interface ChecklistCheckDisplay extends ChecklistCheck {\n checked?: boolean;\n}\n\ninterface ChecklistDisplay {\n id: number;\n groupName?: string;\n questionaire?: ChecklistQuestionDisplay[];\n}\n\ninterface ChecklistQuestionDisplay extends ChecklistQuestion {\n comment?: string;\n resultValue?: string;\n rangeValue?: string;\n isActioned?: boolean;\n hasAttachments?: boolean;\n attachmentList?: ChecklistResultAttachment[];\n checksArray?: ChecklistCheckDisplay[];\n isInBasket?: boolean;\n groupName?: string;\n}\n\n@Component({\n selector: 'jc-display-checklist-modal',\n templateUrl: './display-checklist-modal.component.html',\n styleUrls: ['./display-checklist-modal.component.scss'],\n})\nexport class DisplayChecklistModalComponent implements OnInit {\n @Input() appointment: AppointmentDto;\n @Input() jobcardItemForChecklistView: JobcardItemDto;\n @Output() back = new EventEmitter();\n @Output() updateValue = new EventEmitter();\n @Input() checklistInstanceId: number;\n editable: boolean;\n checklistInstance: ChecklistInstanceDisplay;\n checklistDisplay: ChecklistDisplay[] = [];\n results: CheckListResultDto[];\n basketContent: ChecklistQuestionDisplay[] = [];\n checklistInstanceRoot: ChecklistInstanceDto;\n readonly resultTypeEnum = ChecklistQuestion.ResultTypeEnum;\n safetyChecklistInstances: ChecklistInstanceDto[];\n inspectionReportsView = false;\n private existingFutureJobcards: AppointmentDto[] = [];\n\n constructor(\n public newAppointmentService: NewAppointmentService,\n private modalService: NgbModal,\n private apiAppointmentService: AppointmentsService,\n private toastrService: ToastrService,\n private router: Router,\n public activeModal: NgbActiveModal,\n private appointmentsService: AppointmentsService,\n private userAdminService: UserAdminService,\n private mappingService: MappingService\n ) {}\n\n ngOnInit() {\n if (\n this.jobcardItemForChecklistView == null &&\n this.appointment?.checklistInstances &&\n this.checklistInstanceId\n ) {\n this.checklistInstanceRoot = this.appointment?.checklistInstances.find(\n (instance) => instance.id === this.checklistInstanceId\n );\n } else {\n this.checklistInstanceRoot = this.jobcardItemForChecklistView?.checklistInstances[0];\n }\n\n if (this.checklistInstanceRoot) {\n this.checklistInstance = JSON.parse(\n this.checklistInstanceRoot?.content ?? null\n );\n this.results = this.checklistInstanceRoot.checkListResult;\n }\n const getParams: GetFutureAppointmentsCreatedFromChecklistRequestParams = {\n applicationToken: this.userAdminService.newToken,\n authorization: this.userAdminService.accessToken,\n customerCompanyId: this.appointment?.customerCompany.id,\n vehicleId: this.appointment?.vehicle.id,\n startDate: this.appointment?.receptionDate,\n };\n if (getParams?.customerCompanyId && getParams?.vehicleId) {\n this.appointmentsService\n .getFutureAppointmentsCreatedFromChecklist(getParams)\n .subscribe((appointments) => {\n this.existingFutureJobcards = appointments || [];\n this.refreshChecklist();\n });\n }\n }\n\n backToPreviousView() {\n let nbNotActioned = 0;\n this.checklistDisplay?.forEach((checklist) => {\n checklist.questionaire?.forEach((question) => {\n if (this.isNotActioned(question)) {\n nbNotActioned++;\n }\n });\n });\n if (nbNotActioned > 0) {\n const modalRef = this.modalService.open(ConfirmModalComponent, {\n backdrop: 'static',\n });\n modalRef.componentInstance.title = $localize`Checks/items not actioned`;\n modalRef.componentInstance.message = Util.stringFormat(\n $localize`You have [0] issue(s) identified that have not been actioned, do you still want to close the checklist?`,\n nbNotActioned\n );\n modalRef.componentInstance.action = $localize`Close`;\n modalRef.result.then(\n (confirmed: boolean) => {\n if (confirmed) {\n this.back.emit(false);\n }\n },\n () => {\n /* Ignore dismiss */\n }\n );\n } else {\n this.back.emit(false);\n }\n }\n\n addActivity(question: ChecklistQuestionDisplay): void {\n const modalRef = this.modalService.open(ConfirmModalComponent, {\n backdrop: 'static',\n });\n modalRef.componentInstance.title = $localize`Add check/item as Activity`;\n modalRef.componentInstance.message = Util.stringFormat(\n $localize`Are you sure you want to add the selected check/item ([0]) as an activity to the current jobcard?`,\n question.label\n );\n modalRef.componentInstance.action = $localize`Yes`;\n modalRef.result.then(\n (confirmed: boolean) => {\n if (confirmed) {\n // Add question as new activity to the current jobcard\n const customerName = this.appointment.status?.customerCompanyUser\n ? this.appointment.status?.customerCompanyUser?.firstName\n ? this.appointment.status?.customerCompanyUser?.firstName +\n ' ' +\n this.appointment.status?.customerCompanyUser?.lastName\n : this.appointment.status?.customerCompanyUser?.lastName\n : null;\n this.appointment.jobcard?.jobcardItems?.push({\n name: `${question.groupName} - ${question.label}`,\n type: 'checklist',\n visible: true,\n deferred: false,\n deleted: false,\n internalNotes: question.comment,\n operations: [],\n checklistInstances: [],\n jobcardItemAttachments: [],\n jobcardItemStatus: [\n {\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n },\n ],\n technicians: [],\n workshopBayId: this.appointment.workshopBayId,\n isExtraActivity: false,\n isCustomerAgreed: true,\n agreementCustomerName: customerName,\n weight: this.appointment.jobcard.jobcardItems.filter(\n (item) => !item.deleted && !item.deferred\n ).length,\n jobcardItemSpells: [\n {\n weight: 1,\n estimatedDuration: 0,\n startDate: this.newAppointmentService?.appointment?.receptionDate,\n technicians: [],\n },\n ],\n });\n // Update appointment with added activity\n this.saveAppointment();\n }\n },\n () => {\n /* Ignore dismiss */\n }\n );\n }\n\n saveAppointment(){\n this.apiAppointmentService.updateAppointment({\n isComplete: false,\n id: this.appointment.id,\n applicationToken: this.userAdminService.newToken,\n authorization: this.userAdminService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToCustomerAppointmentDtoFromAppoinmentDto(this.appointment),\n }).subscribe(\n (appointment) => {\n this.newAppointmentService.temporaryId = appointment.temporaryId;\n this.appointment.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.apiAppointmentService.updateAppointment({\n id: this.appointment.id,\n applicationToken: this.userAdminService.newToken,\n authorization: this.userAdminService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToBookingAppointmentDto(this.appointment),\n isComplete: true,\n }).subscribe((appointment2) => {\n this.appointment.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const params: GetAppointmentByIdRequestParams = {\n id: appointment2.id,\n applicationToken: this.userAdminService.newToken,\n authorization: this.userAdminService.accessToken,\n };\n this.apiAppointmentService.getAppointmentById(params).subscribe((appointment3) => {\n this.appointment = appointment3;\n this.appointment.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.toastrService.success($localize`Activity deferred`);\n this.refreshChecklist();\n });\n\n\n });\n });\n }\n deferActivity(question: ChecklistQuestionDisplay): void {\n const modalRef = this.modalService.open(ConfirmModalComponent, {\n backdrop: 'static',\n });\n modalRef.componentInstance.title = $localize`Add check/item as Deferred Activity`;\n modalRef.componentInstance.message = Util.stringFormat(\n $localize`Are you sure you want to defer this activity ([0])?`,\n question.label\n );\n modalRef.componentInstance.action = $localize`Confirm`;\n modalRef.result.then(\n (confirmed: boolean) => {\n if (confirmed) {\n // Add question as new deferred activity\n this.appointment.jobcard?.jobcardItems?.push({\n name: `${question.groupName} - ${question.label}`,\n type: 'deferred',\n deferred: true,\n deferredDate: moment(new Date()).format('YYYY-MM-DD'),\n deleted: false,\n reason: $localize`Deferred from checklist`,\n internalNotes: question.comment,\n operations: [],\n jobcardItemAttachments: [],\n jobcardItemStatus: [],\n technicians: [],\n workshopBayId: this.appointment.workshopBayId,\n });\n // Update appointment with added deferred activity\n this.apiAppointmentService.updateAppointment({\n isComplete: false,\n id: this.appointment.id,\n applicationToken: this.userAdminService.newToken,\n authorization: this.userAdminService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToCustomerAppointmentDtoFromAppoinmentDto(this.appointment),\n }).subscribe(\n (appointment) => {\n this.newAppointmentService.temporaryId = appointment.temporaryId;\n this.appointment.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.apiAppointmentService.updateAppointment({\n id: this.appointment.id,\n applicationToken: this.userAdminService.newToken,\n authorization: this.userAdminService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToBookingAppointmentDto(this.appointment),\n isComplete: true,\n }).subscribe((appointment2) => {\n this.appointment.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const params: GetAppointmentByIdRequestParams = {\n id: appointment2.id,\n applicationToken: this.userAdminService.newToken,\n authorization: this.userAdminService.accessToken,\n };\n this.apiAppointmentService.getAppointmentById(params).subscribe((appointment3) => {\n this.appointment = appointment3;\n this.appointment.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.toastrService.success($localize`Activity deferred`);\n this.refreshChecklist();\n });\n\n\n });\n });\n\n }\n },\n () => {\n /* Ignore dismiss */\n }\n );\n }\n\n openAttachments(\n attachmentList: ChecklistResultAttachment[],\n questionComment: string\n ) {\n const modalRef = this.modalService.open(AttachmentsModalComponent, {\n backdrop: 'static',\n size: 'lg',\n });\n modalRef.componentInstance.jobcardAttachments = attachmentList;\n modalRef.componentInstance.comment = questionComment;\n modalRef.componentInstance.readonly = true;\n modalRef.componentInstance.azureFolder = `appointments/${this.appointment.id}/jobcard`;\n }\n\n goToAppointmentCreation() {\n let nbNotActioned = 0;\n this.checklistDisplay?.forEach((checklist) => {\n checklist.questionaire?.forEach((question) => {\n const index = this.basketContent.indexOf(question, 0);\n if (this.isNotActioned(question) && index === -1) {\n nbNotActioned++;\n }\n });\n });\n if (nbNotActioned > 0) {\n const modalRef = this.modalService.open(ConfirmModalComponent, {\n backdrop: 'static',\n });\n modalRef.componentInstance.title = $localize`Checks/items not actioned`;\n modalRef.componentInstance.message = Util.stringFormat(\n $localize`You have [0] issue(s) identified that have not been actioned, do you still want to proceed with creating a new Jobcard?`,\n nbNotActioned\n );\n modalRef.componentInstance.action = $localize`Yes`;\n modalRef.result.then(\n (confirmed: boolean) => {\n if (confirmed) {\n this.createAppointment();\n }\n },\n () => {\n /* Ignore dismiss */\n }\n );\n } else {\n this.createAppointment();\n }\n }\n\n addToBasket(question: ChecklistQuestionDisplay) {\n question.isInBasket = true;\n this.basketContent.push(question);\n }\n\n removeFromBasket(question: ChecklistQuestionDisplay) {\n question.isInBasket = false;\n const index = this.basketContent.indexOf(question, 0);\n if (index > -1) {\n this.basketContent.splice(index, 1);\n }\n }\n\n private createAppointment() {\n // Customer Name\n let customerName: string = null;\n if (this.appointment.status?.customerCompanyUser) {\n const customerFirstName = this.appointment.status?.customerCompanyUser\n ?.firstName\n ? this.appointment.status?.customerCompanyUser?.firstName\n : '';\n const customerLaststName = this.appointment.status?.customerCompanyUser\n ?.lastName\n ? this.appointment.status?.customerCompanyUser?.lastName\n : '';\n customerName = customerFirstName + ' ' + customerLaststName;\n }\n\n // Create a new Jobcard item for each element in the basket\n const jobcardItems: JobcardItem[] = [];\n this.basketContent.forEach((question: ChecklistQuestionDisplay) => {\n const newJobcardItem: JobcardItem = {\n name: `${question.groupName} - ${question.label}`,\n operations: [],\n jobcardItemAttachments: [],\n jobcardItemStatus: [],\n type: 'checklist',\n internalNotes: question.comment,\n visible: true,\n deferred: false,\n deleted: false,\n technicians: [],\n workshopBayId: this.appointment.workshopBayId,\n isExtraActivity: false,\n isCustomerAgreed: true,\n agreementCustomerName: customerName,\n };\n newJobcardItem.jobcardItemStatus = [];\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n jobcardItems.push(newJobcardItem);\n });\n\n // Sending informations from the original appointment to pre-fill the new one\n this.newAppointmentService.setAppointmentOrigin({\n id: undefined,\n customerCompany: this.appointment.customerCompany,\n status: {\n id: undefined,\n workshopUser: this.appointment.status.workshopUser,\n customerCompanyUser: this.appointment.status.customerCompanyUser,\n },\n vehicle: this.appointment.vehicle,\n driver: this.appointment.driver,\n engineHours: this.appointment.engineHours,\n jobcard: {\n id: undefined,\n failureDate: this.appointment.jobcard.failureDate,\n jobcardItems,\n },\n repairAddress: this.appointment.repairAddress,\n salesOrganizationId: this.appointment.salesOrganizationId,\n unitStatus: this.appointment.unitStatus,\n });\n this.router.navigateByUrl('/new-appointment');\n }\n\n private refreshChecklist(): void {\n this.checklistDisplay = [];\n if (this.checklistInstance) {\n this.checklistInstance.groups.forEach((group: ChecklistGroup, index) => {\n const list: ChecklistQuestionDisplay[] = [];\n group.questions.forEach((question: ChecklistQuestionDisplay) => {\n question.isInBasket = false;\n question.groupName = group.name;\n question = this.setResult(question);\n list.push(question);\n });\n this.checklistDisplay.push({\n id: index,\n groupName: group.name,\n questionaire: list,\n });\n });\n }\n }\n\n private setResult(\n question: ChecklistQuestionDisplay\n ): ChecklistQuestionDisplay {\n this.results.forEach((result) => {\n if (question.id === result.itemId) {\n question.resultValue = result.resultValue;\n if (question.resultType === this.resultTypeEnum.Slider) {\n if (!question.resultValue) {\n question.resultValue = '0';\n }\n question.rangeValue = `${question.resultValue} / ${question.sliderMax}`;\n } else if (question.resultType === this.resultTypeEnum.Checks) {\n question.checksArray = question.checks;\n question.checksArray.forEach((checks: ChecklistCheckDisplay) => {\n if (checks.id === Number(question.resultValue)) {\n checks.checked = true;\n }\n });\n }\n if (result.commentResult) {\n question.comment = result.commentResult;\n }\n question.hasAttachments =\n result?.checkListResultAttachment.length > 0 ? true : false;\n if (question.hasAttachments) {\n question.attachmentList = result.checkListResultAttachment;\n }\n // Determine if question check/item has been actioned already\n question.isActioned = !!this.appointment.jobcard?.jobcardItems?.find(\n (item) =>\n item.name === `${question.groupName} - ${question.label}` &&\n // Is check/item added as an activity?\n ((item.type === 'checklist' && !item.deleted && !item.deferred) ||\n // Is check/item deferred?\n (item.deferred && !item.deleted))\n );\n if (!question.isActioned) {\n // Is check/item added in a new jobcard?\n question.isActioned = !!this.existingFutureJobcards.find(\n (app) =>\n !!app.jobcard?.jobcardItems?.find(\n (ji) =>\n ji.type === 'checklist' &&\n !ji.deleted &&\n ji.name === `${question.groupName} - ${question.label}`\n )\n );\n }\n }\n });\n return question;\n }\n\n private isNotActioned(question: ChecklistQuestionDisplay) {\n if (\n (question.resultType === this.resultTypeEnum.Status &&\n question.resultValue === 'error') ||\n (question.resultType === this.resultTypeEnum.Switch &&\n question.resultValue === 'false') ||\n (question.resultType === this.resultTypeEnum.Slider &&\n parseFloat(question.resultValue) / question.sliderMax < 0.5)\n ) {\n return !question.isActioned;\n }\n return false;\n }\n}\n","
    \n \n ×\n \n
    \n \n
    \n {{ appointment?.customerCompany?.name }}\n
    \n {{ appointment?.customerCompany?.phone }}\n
    \n {{ appointment?.customerCompany?.mobilePhone }}\n
    \n
    \n
    \n
    \n\n \n The checklist has not been completed yet.\n \n\n \n The checklist is not set yet.\n \n
    \n
    \n

    \n
    \n Reception -\n
    \n
    \n {{ checklistInstanceRoot?.type | titlecase }} -\n
    \n {{ checklistInstanceRoot?.checklistTemplateTitle }}\n

    \n
    \n
    \n

    \n {{ checklistInstanceRoot?.checklistTemplateTitle }}\n

    \n
    \n
    \n
    \n \n
    {{ group.groupName }}
    \n
    \n
    \n \n
    \n \n {{\n question.comment.length > 30\n ? (question.comment | slice: 0:30) + '...'\n : question.comment\n }}\n \n \n {{ question.label }}\n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n\n \n \n {{\n question?.rangeValue\n }}\n -\n \n \n \n \n \n \n\n \n \n {{ question.labelFault }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ question.labelOk }}\n \n\n \n \n \n \n \n {{ check.label }}\n \n \n \n \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n 0\">\n

    Basket

    \n
    \n \n \n \n \n \n \n \n \n \n
    {{ question.groupName }} - {{ question.label }}\n \n \n \n \n \n
    \n
    \n \n Create New Jobcard\n \n
    \n
    \n \n\n
    \n \n Cancel\n \n
    \n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DmsControllerService, DmsStatusDto } from 'src/api/djc-dms-service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DmsConnectionService {\n constructor(private dmsService: DmsControllerService, private userService: UserAdminService) {}\n\n getDmsStatus(workshopId: number, noLoader = true): Observable {\n return this.dmsService.validate({ authorization: this.userService.accessToken, workshopId, noLoader });\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { WorkshopUser } from 'src/app/models/model/models';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { DmsConnectionService } from './dms-connection.service';\nimport { WorkshopService } from 'src/api/djc-booking-service/api/workshop.service';\n@Component({\n selector: 'jc-dms-indicator',\n templateUrl: './dms-indicator.component.html',\n styleUrls: ['./dms-indicator.component.scss'],\n})\nexport class DmsIndicatorComponent implements OnInit {\n // Only for AG: dmsStatus can be sa for standalone, meaning no dms\n dmsStatus: 'sa' | 'checking' | 'ok' | 'ko' = 'checking';\n error: string;\n user: WorkshopUser;\n standAloneModeOn: boolean = false;\n\n constructor(\n private userService: UserService,\n private dmsConnectionService: DmsConnectionService,\n private workshopService: WorkshopService\n ) {}\n\n ngOnInit(): void {\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n this.workshopService\n .getWorkshopById({ workshopId: user.workshopId, authorization: this.userService.accessToken})\n .subscribe((workshop) => {\n this.standAloneModeOn = workshop.standAloneMode;\n if (this.standAloneModeOn) {\n // The workshop is in standalone mode, no need to request dms connection status\n this.dmsStatus = 'sa';\n } else {\n // The workshop is not in standalone mode, need to request dms connection status\n this.dmsConnectionService.getDmsStatus(user.workshopId).subscribe(\n (status) => {\n if (status.connected) {\n this.dmsStatus = 'ok';\n } else {\n this.dmsStatus = 'ko';\n this.error = status.details;\n }\n },\n () => (this.dmsStatus = 'ko')\n );\n }\n });\n });\n }\n}\n","\n \n\n \n \n \n\n \n \n \n \n
    DMS not available!
    \n {{ error }}\n
    \n\n \n \n \n
    \n","import { DatePipe } from '@angular/common';\nimport { Component, Inject, Input, OnInit } from '@angular/core';\nimport { DmsLog, Workshop } from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport { ExcelService } from '../excel/excel.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { DmsLogControllerService, GetDmsLogsRequestParams } from 'src/api/djc-dms-service/api/dmsLogController.service';\nimport * as moment from 'moment';\nimport { DmsLogDto } from 'src/api/djc-dms-service';\n\n@Component({\n selector: 'jc-dms-logs-notification-modal',\n templateUrl: './dms-logs-notification-modal.component.html',\n styleUrls: ['./dms-logs-notification-modal.component.scss'],\n})\nexport class DmsLogsNotificationModalComponent implements OnInit {\n here: string = 'here';\n frequency: number;\n type: string;\n filterBy: string;\n filterValue: number;\n lastFilter: string;\n workshop: Workshop;\n startDate: NgbDateStruct;\n endDate: NgbDateStruct;\n xml: Blob;\n code: string;\n @Input() logData: DmsLog[];\n @Input() dmsOrderNumber: string;\n @Input() appointmentId: number;\n @Input() totalElements: number;\n\n workshopId: number;\n constructor(\n private datePipe: DatePipe,\n private excelService: ExcelService,\n public activeModal: NgbActiveModal,\n private userService: UserAdminService,\n @Inject(DmsLogControllerService) private dmsService: DmsLogControllerService,\n ) {}\n\n ngOnInit(): void {\n this.userService.getUser().subscribe(user => {\n this.workshopId = user.workshopId;\n });\n }\n\n cancel() {\n this.activeModal.dismiss();\n }\n exportExcel() {\n const limitCell = 32767;\n\n this.totalElements = this.totalElements ? this.totalElements : 0;\n // check put because excel breaks if the number of characters is too large\n const size = this.totalElements;// > 10 ? 10 : this.totalElements;\n this.filterBy = 'appointmentId';\n this.filterValue = this.appointmentId;\n const params: GetDmsLogsRequestParams = {\n workshopId: this.workshopId,\n filterBy: !this.filterValue ? undefined : this.filterBy,\n filterValue: this.filterValue?.toString(),\n startDate: !this.startDate\n ? undefined\n : moment({\n year: this.startDate.year,\n month: this.startDate.month - 1,\n date: this.startDate.day,\n }).format('YYYY-MM-DD'),\n endDate: !this.endDate\n ? undefined\n : moment({\n year: this.endDate.year,\n month: this.endDate.month - 1,\n date: this.endDate.day,\n }).format('YYYY-MM-DD'),\n authorization: this.userService.accessToken,\n isComplete: true,\n size,\n };\n this.dmsService?.getDmsLogs(params).subscribe((logs) => {\n const json: any[] = [];\n json.push({\n id: $localize`DMS Log Id`,\n dmsOrderNumber: $localize`DMS Order / Job Order`,\n workshopId: $localize`Workshop Id`,\n logDate: $localize`Log Date`,\n functionName: $localize`Function Name`,\n code: $localize`Code`,\n content: $localize`Content`,\n appointmentId: $localize`Appointment Id`,\n responseTime: $localize`Response Time`,\n fromDate: $localize`From Date`,\n todate: $localize`To Date`,\n request: $localize`Request`,\n response: $localize`response`,\n uuid: $localize`UUID`,\n //page: $localize`Page`,\n });\n\n logs.content.forEach((data: DmsLogDto) => {\n let line: any;\n let dataContent: string[] = []; \n let dataRequest: string[] = []; \n \n dataContent = this.excelService.splitTextCellExcel(data.content, limitCell)\n dataRequest = this.excelService.splitTextCellExcel(data.request, limitCell)\n \n if(dataContent.length > 0 || dataRequest.length > 0)\n {\n for(let i = 0; i< Math.max(dataContent.length, dataRequest.length); i++){\n line = {\n // id: data.id,\n id: this.excelService.getValueLine(data.id, null, i, true),\n // workshopId: i == 0 ? data.workshopId : '',\n workshopId: this.excelService.getValueLine(data.workshopId, null, i, false),\n // logDate: i == 0 ? this.datePipe.transform(data.logDate) : '',\n logDate: this.excelService.getValueLine(this.datePipe.transform(data.logDate), null, i, false),\n // functionName: i == 0 ? data.functionName : '',\n functionName: this.excelService.getValueLine(data.functionName, null, i, false),\n // code: i == 0 ? data.code : '',\n code: this.excelService.getValueLine(data?.code, null, i, false),\n // content: data.content : '',\n content: this.excelService.getValueLine(data?.content, dataContent, i, false),\n // appointmentId: data.appointmentId,\n appointmentId: this.excelService.getValueLine(data?.appointmentId, null, i, false),\n // responseTime: i == 0 ? data.responseTime : '',\n responseTime: this.excelService.getValueLine(data?.functionName, null, i, false),\n // fromDate: i == 0 ? this.datePipe.transform(data.fromDate) : '',\n fromDate: this.excelService.getValueLine(this.datePipe.transform(data.fromDate), null, i, false),\n // toDate: i == 0 ? this.datePipe.transform(data.toDate) : '',\n toDate: this.excelService.getValueLine(this.datePipe.transform(data.toDate), null, i, false),\n // request: data.request,\n request: this.excelService.getValueLine(data?.request, dataRequest, i, false),\n // response: i == 0 ? data.response : '',\n response: this.excelService.getValueLine(data?.response, null, i, false),\n // uuid: i == 0 ? data.uuid : '',\n uuid: this.excelService.getValueLine(data?.uuid, null, i, false),\n };\n // line = {\n // // id: data.id,\n // id: this.excelService.getValueLine(data.id.toString(), null, i, true),\n // // workshopId: i == 0 ? data.workshopId : '',\n // workshopId: this.excelService.getValueLine(data.workshopId.toString(), null, i, false),\n // // logDate: i == 0 ? this.datePipe.transform(data.logDate) : '',\n // logDate: this.excelService.getValueLine(this.datePipe.transform(data.logDate)?.toString(), null, i, false),\n // // functionName: i == 0 ? data.functionName : '',\n // functionName: this.excelService.getValueLine(data.functionName?.toString(), null, i, false),\n // // code: i == 0 ? data.code : '',\n // code: this.excelService.getValueLine(data?.code.toString(), null, i, false),\n // // content: data.content : '',\n // content: this.excelService.getValueLine(data?.content?.toString(), dataContent, i, false),\n // // appointmentId: data.appointmentId,\n // appointmentId: this.excelService.getValueLine(data?.appointmentId?.toString(), null, i, false),\n // // responseTime: i == 0 ? data.responseTime : '',\n // responseTime: this.excelService.getValueLine(data?.functionName?.toString(), null, i, false),\n // // fromDate: i == 0 ? this.datePipe.transform(data.fromDate) : '',\n // fromDate: this.excelService.getValueLine(this.datePipe.transform(data.fromDate)?.toString(), null, i, false),\n // // toDate: i == 0 ? this.datePipe.transform(data.toDate) : '',\n // toDate: this.excelService.getValueLine(this.datePipe.transform(data.toDate)?.toString(), null, i, false),\n // // request: data.request,\n // request: this.excelService.getValueLine(data?.request?.toString(), dataRequest, i, false),\n // // response: i == 0 ? data.response : '',\n // response: this.excelService.getValueLine(data?.response?.toString(), null, i, false),\n // // uuid: i == 0 ? data.uuid : '',\n // uuid: this.excelService.getValueLine(data?.uuid?.toString(), null, i, false),\n // };\n json.push(line); \n }\n }else{\n\n line = {\n id: data.id,\n workshopId: data.workshopId,\n logDate: this.datePipe.transform(data.logDate),\n functionName: data.functionName,\n code: data.code,\n content: data.content,\n appointmentId: data.appointmentId,\n responseTime: data.responseTime,\n fromDate: this.datePipe.transform(data.fromDate),\n toDate: this.datePipe.transform(data.toDate),\n request: data.request,\n response: data.response,\n uuid: data.uuid,\n // page: data.page,\n };\n json.push(line);\n }\n \n });\n this.excelService.exportAsExcelFile(json, 'DMS-Logs');\n });\n }\n}\n","
    \n

    DMS Logs

    \n \n ×\n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ log.response }}\n \n \n \n \n \n \n
    Log DateAppointment IDResponseFunctionResult
    {{ log.logDate | date: 'short' }}{{ log.appointmentId }}{{ log.functionName }}SuccessfulError
    \n
    \n \n Close\n \n
    \n
    \n\n","import { Component, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-dms-error-toastr-modal',\n templateUrl: './dms-error-toastr-modal.component.html',\n styleUrls: ['./dms-error-toastr-modal.component.scss'],\n})\nexport class DmsErrorToastrModalComponent implements OnInit {\n displayError: boolean = false;\n error: string;\n action: string;\n message: string;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit(): void {}\n}\n","
    \n
    \n
    \n [Notification]\n
    \n Oops! There's an issue with your DMS.\n
    \n
    \n
    \n
    \n \n Error: {{ error }}\n \n \n
    \n Action: {{ action }}\n
    \n \n
    \n Error: {{ message }}\n An error occured\n \n
    \n
    \n
    \n \n Dismiss\n \n
    \n \n
    \n","import { HttpErrorResponse } from '@angular/common/http';\nimport {\n Component,\n DoCheck,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport {\n Appointment,\n AppointmentStatus,\n Jobcard,\n JobcardItemStatus,\n OnHoldReason,\n OperationPartLocation,\n JobcardPartsBacklog,\n JobcardItem,\n OperationPart,\n JobcardItemCustomerStatus,\n PartAvailability,\n DmsLog,\n Permission,\n ChecklistInstance,\n JobcardItemTechnician,\n Part,\n WorkshopDiscount,\n WarrantyType,\n} from 'src/app/models/model/models';\nimport { NgbDateStruct, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as FileSaver from 'file-saver';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { PaymentsService } from 'src/app/core/payments/payments.service';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { AddNotificationModalComponent } from 'src/app/notification/add-notification/add-notification-modal.component';\nimport { DmsConnectionService } from 'src/app/shared/dms-indicator/dms-connection.service';\nimport { OnHoldReasonModalComponent } from 'src/app/shared/dropdown-action/on-hold-reason-modal/on-hold-reason-modal.component';\nimport { WorkshopService as CoreWorkshopService } from 'src/app/core/workshop/workshop.service';\n// import { MaintenanceService } from '@api-jobcard';\nimport { AppointmentFinalizeModalComponent } from 'src/app/workfile/workfile-item/appointment-finalize-modal/appointment-finalize-modal.component';\nimport { Observable, Subject,Subscription, switchMap, tap } from 'rxjs';\nimport { PermissionsService } from 'src/app/core/permissions/permissions.service';\nimport {\n GetMaintenanceOperationByCouponRequestParams,\n MaintenanceService as MaintenanceServices,\n} from '@api-smartview';\nimport { ClientVerbalAgreementModalComponent } from '../client-verbal-agreement-modal/client-verbal-agreement-modal.component';\nimport { DmsLogsNotificationModalComponent } from '../dms-logs-notification-modal/dms-logs-notification-modal.component';\nimport { DropdownActionService } from './dropdown-action.service';\nimport { FeedbackModalComponent } from '../feedback-modal/feedback-modal.component';\nimport { ConfirmModalComponent } from 'src/app/shared/confirm-modal/confirm-modal.component';\nimport { DmsErrorToastrModalComponent } from './dms-error-toastr-modal/dms-error-toastr-modal.component';\nimport { AppointmentEmailsService, AppointmentSignaturesService, AppointmentsService, CreateAppointmentRequestParams, CreateAppointmentSignatureRequestParams, CreateOrUpdateCspsTrackerRequestParams, CreateOrUpdateDmsTrackerRequestParams, CSPSControllerService, CustomerAppointmentDto, ExportInvoicePdfService, GetAppointmentByIdRequestParams, GetPartsAvailabilityInCspsRequestParams, JobcardItemDto, JobcardItemService, MaintenanceService, NotificationService, PartialUpdateJobcardItemRequestParams, PartsTrackerService, PaymentTypeDto, RetriveAppoinmentPdfExportRequestParams, SaveMaintenanceRequestParams, UpdateJobcardItemRequestParams, WorkshopUserDto } from 'src/api/djc-booking-service';\nimport { AppointmentInCreation, NewAppointmentService } from 'src/app/appointment/new-appointment.service';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { WorkshopDto } from 'src/api/djc-admin-service';\nimport { DmsControllerService, DmsLogControllerService, GetDmsLogsRequestParams, GetPartsAvailableRequestParams, PageDmsLog } from 'src/api/djc-dms-service';\nimport { PaymentsServiceAdmin } from 'src/app/core/payments/payments.serviceAdmin';\nimport { EmailConfirmModalComponent } from 'src/app/appointment/email-confirm-modal/email-confirm-modal.component';\nimport { Router } from '@angular/router';\nimport { MappingService } from 'src/app/core/mapping/mapping.service';\nimport { AppointmentDto, AppointmentStatusDto } from 'src/api/djc-workitem-service/model/models';\nimport { JobcardItemCollapsableNew } from '../new-activities/new-activities.component';\nimport { jobcardDmsOrderTypeEnum, jobcardItemTypeEnum, PaymentTypeTypeEnum } from '../constants/constants';\nimport { AppointmentStatusService, CreateAppointmentStatusRequestParams } from 'src/api/djc-workitem-service/api/appointmentStatus.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { EmailService, JobcardItemControllerService, SaveActivityValidateStatusRequestParams } from 'src/api/djc-workitem-service';\nimport { JobcardItemOperationDto } from 'src/app/model/jobcardItemOperationDtoFE';\n\nexport interface JobcardItemCollapsable extends JobcardItem {\n /** Indicates if jobcard item is displayed collapsed. */\n collapsed?: boolean;\n warrantyCoverage?: boolean;\n causalParts?: Part[];\n causalPartCodes?: string[];\n isMaintenance?: boolean;\n noData?: boolean;\n totalDuration?: number;\n techniciansDuration?: number[];\n isPartAvailable?: boolean;\n currentStatus?: JobcardItemStatus;\n checklist?: ChecklistInstance;\n inspectionChecklist?: ChecklistInstance[];\n clockedTechnicians?: JobcardItemTechnician[];\n discounts?: WorkshopDiscount[];\n checklistIconVisible?: boolean;\n hasMissingParts?: ActivityDetails[];\n paymentWarrantyType?: WarrantyType;\n}\n\ninterface ActivityDetails {\n activityId: number;\n activityName: string;\n opePartCode: string;\n missingParts: string[];\n}\n\nexport type EmailTypeEnum = 'NEGOTIATE' | 'FINAL';\nexport const emailType = {\n negotiate: 'NEGOTIATE' as EmailTypeEnum,\n final: 'FINAL' as EmailTypeEnum,\n};\n@Component({\n selector: 'jc-dropdown-action',\n templateUrl: './dropdown-action.component.html',\n styleUrls: ['./dropdown-action.component.scss'],\n})\nexport class DropdownActionComponent implements OnInit, DoCheck, OnDestroy {\n @Input() appointment: Appointment;\n @Input() appointmentNV: AppointmentDto;\n @Input() isWorkfile = false;\n @Input() isActivity = false;\n @Input() appointmentOriginal: AppointmentDto;\n @Input() appointmentOriginalNV: Appointment;\n @Input() logData: DmsLog[];\n @Input() appointmentInCreation: AppointmentInCreation;\n @Output()\n refresh: EventEmitter = new EventEmitter();\n user: WorkshopUserDto;\n displaySentBackButton: boolean;\n isDmsConnected = false;\n orderTypes = jobcardDmsOrderTypeEnum;\n paymentTypes: PaymentTypeDto[] = [];\n checkAvailableParts: OperationPart[] = [];\n checkAvailablePartsDms: OperationPart[] = [];\n hasWarrantyCoverage: boolean;\n paymentTypesEnum = PaymentTypeTypeEnum;\n type: string;\n jobcardItems: JobcardItemCollapsableNew[];\n reasons: OnHoldReason[] = [];\n isOnHoldAvailable: boolean;\n appStatus = AppointmentStatus.StatusEnum;\n environment = environment;\n serialNumberVoilated = false;\n workshop: WorkshopDto;\n checkMaintenanceActivityStatus: boolean;\n jobcardItem: Array = [];\n jobcardPartsBacklog?: JobcardPartsBacklog[] = [];\n disableAction: boolean;\n lastFilter: string;\n // logs: DmsLog[];\n logs: PageDmsLog;\n filterBy: string;\n filterValue: number;\n startDate: NgbDateStruct;\n endDate: NgbDateStruct;\n noMachineAppointment = true;\n isInProgress: boolean;\n isjcitemStatusValid = false;\n jobcardItemType = JobcardItem.TypeEnum;\n isMPActivityCompleted: boolean;\n maintenanceItems: JobcardItem[];\n standAloneMode: boolean;\n appointmentHtml: any;\n private subscription: Subscription;\n constructor(\n private appointmentService: AppointmentService,\n private modalService: NgbModal,\n private jobcardItemService: JobcardItemService,\n private toastrService: ToastrService,\n private userService: UserAdminService,\n private paymentsService: PaymentsServiceAdmin,\n private dmsConnectionService: DmsConnectionService,\n private dmsService: DmsLogControllerService,\n private coreWorkshopService: WorkshopAdminService,\n private emailService: EmailService,\n @Inject(MaintenanceService)private maintenanceService: MaintenanceService,\n private cspsService: CSPSControllerService,\n private jobcardItemControllerService: JobcardItemControllerService,\n private notificationService: NotificationService,\n private partTrackerService: PartsTrackerService,\n private ngbModal: NgbModal,\n private dropDownService: DropdownActionService,\n private permissionService: PermissionsService,\n private maintenanceServices: MaintenanceServices,\n public newAppointmentService: NewAppointmentService,\n private dmsControllerService: DmsControllerService,\n private router: Router,\n public mappingService: MappingService,\n private newApiAppointmentsService: AppointmentsService,\n private exportInvoicePdfService: ExportInvoicePdfService,\n private appointmentSignaturesService: AppointmentSignaturesService,\n private appointmentStatusService: AppointmentStatusService,\n private appointmentEmailsService: AppointmentEmailsService\n ) {\n this.subscription = this.dropDownService.buttonClick$.subscribe((type) => {\n this.sendOrder(type);\n });\n }\n\n ngOnInit(): void {\n if(this.appointmentInCreation !== undefined){\n this.appointmentHtml = this.appointmentInCreation;\n }\n if(this.appointmentNV !== undefined){\n this.appointmentHtml = this.appointmentNV;\n }\n this.jobcardItems = this.appointmentHtml?.jobcard?.jobcardItems;\n\n // this.appointmentInCreation?.jobcard?.jobcardItems.forEach((item) => {\n // if (undefined === item.id || null === item.id) {\n // this.addPartToBacklog = true;\n // }\n // });\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n this.dmsConnectionService.getDmsStatus(user.workshopId).subscribe(\n (status) => {\n this.isDmsConnected = status.connected;\n },\n () => {\n this.isDmsConnected = false;\n }\n );\n });\n this.paymentsService.getPaymentTypes(this.user.workshopId).subscribe((types) => {\n this.paymentTypes.push(...types.filter((type) => type.isVisible));\n setTimeout(() => {\n this.isCheckWarrantyType();\n }, 100);\n });\n\n this.isOnHoldAvailable = this.setIsOnHold();\n\n this.displaySentBackButton = true\n ? this.appointmentHtml.currentStatus ===\n AppointmentStatus.StatusEnum.WarrantyValidationPending ||\n this.appointmentHtml.currentStatus ===\n AppointmentStatus.StatusEnum.WorkfileValidated ||\n this.appointmentHtml.currentStatus ===\n AppointmentStatus.StatusEnum.SentBackError\n : false;\n\n this.coreWorkshopService.getWorkshop().subscribe((workshop) => {\n this.workshop = workshop;\n this.standAloneMode = this.workshop.standAloneMode;\n });\n this.filterBy = 'appointmentId';\n this.filterValue = this.appointmentHtml?.id;\n const params: GetDmsLogsRequestParams = {\n workshopId: this.workshop?.id,\n authorization: this.userService.accessToken,\n filterBy: !this.filterValue ? undefined : this.filterBy,\n filterValue: this.filterValue?.toString(),\n startDate: !this.startDate\n ? undefined\n : moment({\n year: this.startDate.year,\n month: this.startDate.month - 1,\n date: this.startDate.day,\n }).format('YYYY-MM-DD'),\n endDate: !this.endDate\n ? undefined\n : moment({\n year: this.endDate.year,\n month: this.endDate.month - 1,\n date: this.endDate.day,\n }).format('YYYY-MM-DD'),\n };\n if (this.appointmentHtml?.id !== undefined) {\n this.dmsService?.getDmsLogs(params).subscribe((logs) => {\n this.logs = logs;\n // From the call it no longer returns an array but an object\n // this.logs.sort(\n // (a, b) => moment(b.logDate).unix() - moment(a.logDate).unix()\n // );\n });\n }\n\n this.checkJobcardItemCurrentStatus();\n //this.workshop.enableCsps = true;\n }\n\n notify(response: HttpErrorResponse) {\n const modalRef = this.modalService.open(DmsErrorToastrModalComponent);\n const error = response?.error?.errors.length > 0 ? response?.error?.errors[0].detail.substring(\n response?.error?.errors[0].detail.indexOf('error :') + 7,\n response?.error?.errors[0].detail.lastIndexOf(', action :')\n ) : null;\n const action = response?.error?.errors.length > 0 ? response?.error?.errors[0].detail.split(', action :', 2)[1] : null;\n if (action) {\n modalRef.componentInstance.error = error;\n modalRef.componentInstance.action = action;\n } else {\n modalRef.componentInstance.message = response?.error?.errors.length > 0 ? response?.error?.errors[0].detail : null;\n }\n }\n\n ngDoCheck() {\n // if (environment.isIveco) {\n // if (\n // this.appointmentInCreation?.id ||\n // this.appointmentInCreation?.jobcard?.jobcardItems?.length > 0 ||\n // (this.isDmsConnected &&\n // this.appointmentInCreation.customerCompany?.dmsId &&\n // this.appointmentInCreation.vehicle?.dmsId)\n // ) {\n // this.disableAction = false;\n // } else {\n // this.disableAction = true;\n // }\n // } else {\n // this.permissionService\n // .hasPermissions([Permission.NoMachineAppointment])\n // .subscribe((noMachineAppointment) => {\n // this.noMachineAppointment = noMachineAppointment;\n // });\n // if (\n // this.appointmentInCreation?.id ||\n // this.appointmentInCreation?.jobcard?.jobcardItems?.length > 0 ||\n // (this.isDmsConnected &&\n // this.appointmentInCreation.customerCompany?.dmsId &&\n // (this.appointmentInCreation.vehicle?.dmsId || this.noMachineAppointment))\n // ) {\n // this.disableAction = false;\n // } else {\n // this.disableAction = true;\n // }\n // }\n if (environment.isIveco) {\n if (\n this.appointmentHtml?.id ||\n this.appointmentHtml?.jobcard?.jobcardItems?.length > 0 ||\n (this.isDmsConnected &&\n this.appointmentHtml.customerCompany?.dmsId &&\n this.appointmentHtml.vehicle?.dmsId)\n ) {\n this.disableAction = false;\n } else {\n this.disableAction = true;\n }\n } else {\n this.permissionService\n .hasPermissions([Permission.NoMachineAppointment])\n .subscribe((noMachineAppointment) => {\n this.noMachineAppointment = noMachineAppointment;\n });\n if (\n this.appointmentHtml?.id ||\n this.appointmentHtml?.jobcard?.jobcardItems?.length > 0 ||\n (this.isDmsConnected &&\n this.appointmentHtml.customerCompany?.dmsId &&\n (this.appointmentHtml.vehicle?.dmsId || this.noMachineAppointment))\n ) {\n this.disableAction = false;\n } else {\n this.disableAction = true;\n }\n }\n }\n\n isCheckWarrantyType() {\n this.hasWarrantyCoverage = false;\n if (!environment.isIveco) {\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n if (item?.paymentType?.type === 'warranty') {\n this.hasWarrantyCoverage = true;\n }\n });\n } else if (environment.isIveco) {\n this.hasWarrantyCoverage = this.appointmentHtml?.jobcard?.jobcardItems?.some(\n (item: JobcardItem | JobcardItemDto) =>\n item?.paymentType?.type.toLocaleLowerCase() ===\n PaymentTypeTypeEnum.Warranty\n );\n if (!this.hasWarrantyCoverage) {\n const isPtype = this.paymentTypes.find((ptype) =>\n this.appointmentHtml?.jobcard?.jobcardItems?.find(\n (item: any) => item?.paymentTypeId === ptype.id && item?.isVisible\n )\n );\n if (\n isPtype?.type.toLocaleLowerCase() === PaymentTypeTypeEnum.Warranty &&\n isPtype.isVisible\n ) {\n this.hasWarrantyCoverage = true;\n }\n }\n }\n }\n\n validateWorkfile(): void {\n const modal = this.modalService.open(AppointmentFinalizeModalComponent);\n modal.componentInstance.appointment = JSON.parse(\n JSON.stringify(this.appointmentHtml)\n );\n this.checkMaintenanceActivityStatus = this.isjobCardHasMaintenanceActivity();\n if (this.checkMaintenanceActivityStatus) {\n modal.componentInstance.msg = $localize`You are about to Validate the Jobcard and update eTIM with the corresponding Maintenance plan`;\n } else {\n modal.componentInstance.msg = $localize`You are about to Validate the Jobcard and update`;\n }\n modal.componentInstance.label = $localize`Yes, I confirm the job card is validated and completed`;\n modal.componentInstance.message = $localize`Move Document status to \"Ready to Invoice\"`;\n modal.result.then((result) => {\n if (result === true) {\n // this.etimUpdateMaintenance();\n if (!environment.isIveco) {\n // Retrieving the connected user to \"sign\" the workfile\n this.userService.getUser().subscribe((user) => {\n const signatureParams: CreateAppointmentSignatureRequestParams = {\n // appointmentId: this.appointmentInCreation.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n appointmentSignatureDto: {\n id: -1,\n appointmentId: this.appointmentHtml.id,\n customerCompanyUserId: this.appointmentHtml?.status\n ?.customerCompanyUser?.id,\n time: new Date(moment().format()).toISOString(),\n signatory: user?.displayedName,\n workshopUserId: user?.id,\n isTechnician: false,\n },\n };\n // Signing\n this.appointmentSignaturesService\n .createAppointmentSignature(signatureParams)\n .subscribe(() => {\n // After having signed, changing the appointment statuts to \"Workfile validated\"\n const appointmentStatus: AppointmentStatusDto = { id: -1 };\n appointmentStatus.time = new Date(\n moment().format()\n ).toISOString();\n appointmentStatus.status =\n AppointmentStatus.StatusEnum.WorkfileValidated;\n appointmentStatus.workshopUser = this.user;\n appointmentStatus.customerCompanyUser = this.appointmentHtml?.status?.customerCompanyUser;\n if (!appointmentStatus.customerCompanyUser) {\n appointmentStatus.customerCompanyUser = {};\n }\n const statusParams: CreateAppointmentStatusRequestParams = {\n appointmentId: this.appointmentHtml.id,\n appointmentStatusDto: appointmentStatus,\n applicationToken: this.userService.newToken,\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.appointmentStatusService\n .createAppointmentStatus(statusParams)\n .subscribe((status) => {\n this.appointmentHtml.status = status;\n this.refresh.emit(this.appointmentHtml);\n this.displaySentBackButton = true;\n this.isOnHoldAvailable = false;\n\n // Save the Maintenance Coupons performed in eTIM DB\n this.saveMaintenanceCouponsAndValidateActivities('fromValidateWorkfile');\n // ADDED TO SAVEMAINTENANCECOUPONANDVALIDATEACTIVITIES\n // this.removeOnHold();\n });\n });\n });\n } else {\n this.appointmentHtml.jobcard.djcOrderType =\n Jobcard.DjcOrderTypeEnum.ReadyToInvoice;\n this.saveAppointmentSubscribe(this.appointmentHtml, 'validateWorkfileProcessForCV');\n // ADDED TO SUBSCRIBE\n // this.validateWorkfileProcessForCV();\n }\n } else {\n if (environment.isIveco) {\n this.validateWorkfileProcessForCV();\n }\n }\n });\n }\n\n saveAppointment(appointmentCurrent: any): Observable {\n return this.newApiAppointmentsService.updateAppointment({\n id: appointmentCurrent.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToCustomerAppointmentDtoFromAppoinmentDto(appointmentCurrent),\n }).pipe(\n switchMap((appointment) => {\n appointmentCurrent.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n return this.newApiAppointmentsService.updateAppointment({\n id: appointmentCurrent.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToBookingAppointmentDto(appointmentCurrent),\n isComplete: true,\n });\n }),\n switchMap((appointment2) => {\n appointmentCurrent.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const params: GetAppointmentByIdRequestParams = {\n id: appointment2.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n return this.newApiAppointmentsService.getAppointmentById(params);\n }),\n tap((appointment3) => {\n appointmentCurrent = appointment3;\n appointmentCurrent.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.appointmentHtml = appointment3;\n this.refresh.emit(this.appointmentHtml);\n })\n );\n }\n saveAppointmentSubscribe(appointmentCurrent: any, action?: string) {\n this.newApiAppointmentsService.updateAppointment({\n isComplete: false,\n id: appointmentCurrent.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToCustomerAppointmentDtoFromAppoinmentDto(appointmentCurrent),\n }).subscribe(\n (appointment) => {\n this.newAppointmentService.temporaryId = appointment.temporaryId;\n this.newApiAppointmentsService.updateAppointment({\n id: appointmentCurrent.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToBookingAppointmentDto(appointmentCurrent),\n isComplete: true,\n }).subscribe((appointment2) => {\n const params: GetAppointmentByIdRequestParams = {\n id: appointment2.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n this.newApiAppointmentsService.getAppointmentById(params).subscribe((appointment3) => {\n appointment3.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const app = this.mappingService.mapAppointmentDtoToAppointmentInCreation(appointment3);\n this.appointmentHtml = app;\n this.appointmentInCreation = app;\n this.newAppointmentService.appointmentInCreation = app;\n this.refresh.emit(this.appointmentHtml);\n if (action === 'validateWorkfileProcessForCV') {\n this.validateWorkfileProcessForCV();\n } else if (action === 'postNotification') {\n this.toastrService.success($localize`Appointment edited`);\n // Send the notification in case of activities approved by the Service Advisor\n if (\n this.appointmentHtml?.id &&\n this.newAppointmentService.newApprovedActivities.length > 0\n ) {\n const lang = this.userService.getLanguage(this.user.language);\n this.notificationService\n .postNotification({\n applicationToken: this.userService.newToken,\n acceptLanguage: lang,\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n notificationCreationDto: {\n type: 'ACTIVITY_APPROVED',\n appointmentId: this.newAppointmentService.appointmentInCreation.id,\n },\n noLoader: true,\n })\n .subscribe(() => {\n this.newAppointmentService.newApprovedActivities = [];\n });\n }\n } else if (action === 'setPaymentTypes') {\n this.appointmentHtml.jobcard?.jobcardItems?.forEach((item: any) => {\n this.setPaymentTypes(item);\n });\n }\n });\n });\n });\n }\n\n validateWorkfileProcessForCV(): void {\n // Retrieving the connected user to \"sign\" the workfile\n this.userService.getUser().subscribe((user) => {\n const signatureParams: CreateAppointmentSignatureRequestParams = {\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n // appointmentId: this.appointmentInCreation.id,\n appointmentSignatureDto: {\n id: -1,\n appointmentId: this.appointmentHtml.id,\n customerCompanyUserId: this.appointmentHtml?.status?.customerCompanyUser\n ?.id,\n time: new Date(moment().format()).toISOString(),\n signatory: user?.displayedName,\n workshopUserId: user?.id,\n isTechnician: false,\n },\n };\n // Signing\n this.appointmentSignaturesService\n .createAppointmentSignature(signatureParams)\n .subscribe(() => {\n // After having signed, changing the appointment statuts to \"Workfile validated\"\n const appointmentStatus: AppointmentStatusDto = { id: -1 };\n appointmentStatus.time = new Date(moment().format()).toISOString();\n if (this.appointmentHtml.isBreakdownAppt) {\n appointmentStatus.status = AppointmentStatus.StatusEnum.Delivered;\n appointmentStatus.workshopUser = this.user;\n appointmentStatus.customerCompanyUser = this.appointmentHtml?.status?.customerCompanyUser;\n } else {\n appointmentStatus.status =\n AppointmentStatus.StatusEnum.WorkfileValidated;\n appointmentStatus.workshopUser = this.user;\n appointmentStatus.customerCompanyUser = this.appointmentHtml?.status?.customerCompanyUser;\n }\n if (!appointmentStatus.customerCompanyUser) {\n appointmentStatus.customerCompanyUser = {};\n }\n const statusParams: CreateAppointmentStatusRequestParams = {\n appointmentId: this.appointmentHtml.id,\n appointmentStatusDto: appointmentStatus,\n applicationToken: this.userService.newToken,\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.appointmentStatusService\n .createAppointmentStatus(statusParams)\n .subscribe((status) => {\n this.appointmentHtml.status = status;\n this.refresh.emit(this.appointmentHtml);\n this.displaySentBackButton = true;\n this.isOnHoldAvailable = false;\n\n // Save the Maintenance Coupons performed in eTIM DB\n this.saveMaintenanceCouponsAndValidateActivities('fromValidateWorkfileProcessForCv');\n // ADDED TO SAVEMAINTENANCECOUPONANDVALIDATEACTIVITIES\n // // Remove On Hold status from appointment\n // this.removeOnHold();\n // // Sending mail about workfile validation to Warranty users\n // this.emailService\n // .sendWorkfileValidatedMail({\n // appointmentId: this.appointmentHtml.id,\n // applicationToken: this.userService.newToken,\n // authorization: this.userService.accessToken\n // })\n // .subscribe(\n // (result) => {\n // if (result?.code === 'SENT') {\n // this.toastrService.success(\n // $localize`Email sent to Warranty users`\n // );\n // }\n // },\n // () => {\n // this.toastrService.error(\n // $localize`Email could not been sent to Warranty users`\n // );\n // }\n // );\n });\n });\n });\n }\n\n updateMaintenances() {\n // Aggiungere swagger jobcardItems mpinfo couponstatus e activityvalidate\n this.maintenanceItems = this.appointmentHtml?.jobcard?.jobcardItems?.filter(\n (jc: JobcardItem) =>\n (jc.mpInfo || jc.couponStatus) &&\n !jc?.activityValidated &&\n (this.newAppointmentService.getCurrentItemStatus(jc)?.status === 'done' ||\n this.newAppointmentService.getCurrentItemStatus(jc)?.status ===\n 'invoiced')\n );\n if (!this.maintenanceItems?.length) {\n this.toastrService.info(\n $localize`Completed Plans are already updated in eTIM`\n );\n } else {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n modalRef.componentInstance.title = $localize`Update maintenance on eTIM`;\n modalRef.componentInstance.message = $localize`Do you confirm that the all maintenance activities are completed?
    By selecting 'Yes' the maintenance plan for this machine will be updated in eTIM.`;\n modalRef.componentInstance.cancelAction = $localize`No`;\n modalRef.componentInstance.action = $localize`Yes`;\n modalRef.result.then(() => {\n this.isMPActivityCompleted = true;\n this.saveMaintenanceCouponsAndValidateActivities();\n });\n }\n }\n saveMaintenanceCouponsAndValidateActivities(from?: string): void {\n const mpParams: SaveMaintenanceRequestParams = {\n appointmentId: this.appointmentHtml.id,\n authorization: this.userService.accessToken,\n };\n this.maintenanceService.saveMaintenance(mpParams).subscribe(\n () => {\n if (this.isMPActivityCompleted) {\n this.toastrService.success(\n $localize`Plans successfully updated in eTIM`\n );\n }\n this.etimUpdateMaintenance();\n if (from === 'fromValidateWorkfileProcessForCv') {\n // Remove On Hold status from appointment\n this.removeOnHold();\n // Sending mail about workfile validation to Warranty users\n this.emailService\n .sendWorkfileValidatedMail({\n appointmentId: this.appointmentHtml.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken\n })\n .subscribe(\n (result) => {\n if (result?.code === 'SENT') {\n this.toastrService.success(\n $localize`Email sent to Warranty users`\n );\n }\n },\n () => {\n this.toastrService.error(\n $localize`Email could not been sent to Warranty users`\n );\n }\n );\n } else if(from === 'fromValidateWorkfile') {\n this.removeOnHold();\n }\n },\n (error) => {\n this.toastrService.error(\n $localize`Error in sending plans to update in eTIM`,\n error\n );\n }\n );\n }\n\n removeOnHold(offHold?: boolean): void {\n if (offHold) {\n this.isOnHoldAvailable = true;\n }\n //la chiamata di put è stata sostituita con saveAppointment\n // const paramsUpdateApp: UpdateAppointmentRequestParams = {\n // id: this.appointmentHtml.id,\n // appointment: this.appointmentHtml,\n // view: 'app',\n // };\n // this.apiAppointmentService\n // .updateAppointment(paramsUpdateApp)\n // .subscribe((app) => {\n // app.jobcard?.jobcardItems?.forEach((item) => {\n // this.setPaymentTypes(item);\n // });\n // this.appointmentHtml = app;\n // });\n const params: GetAppointmentByIdRequestParams = {\n id: this.appointmentHtml.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n this.newApiAppointmentsService.getAppointmentById(params).subscribe((appointment) => {\n appointment.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const app = this.mappingService.mapAppointmentDtoToAppointmentInCreation(appointment);\n this.appointmentHtml.onHold = false;\n this.appointmentHtml = app;\n this.appointmentInCreation = app;\n this.newAppointmentService.appointmentInCreation = app;\n this.refresh.emit(this.appointmentHtml);\n this.saveAppointmentSubscribe(this.appointmentHtml, 'setPaymentTypes');\n });\n // ADDED TO SUBSCRIBE\n // this.appointmentHtml.jobcard?.jobcardItems?.forEach((item: any) => {\n // this.setPaymentTypes(item);\n // });\n }\n\n setIsOnHold() {\n return (\n !this.appointmentHtml?.onHold &&\n (this.appointmentHtml?.status?.status === this.appStatus.Received ||\n this.appointmentHtml?.status?.status === this.appStatus.Reparing ||\n this.appointmentHtml?.status?.status ===\n this.appStatus.ServiceAdvisorValidationPending ||\n this.appointmentHtml?.status?.status ===\n this.appStatus.ClientValidationPending ||\n this.appointmentHtml?.status?.status ===\n this.appStatus.WarrantyValidationPending ||\n this.appointmentHtml?.status?.status === this.appStatus.SentBackError)\n );\n }\n\n replaceActivity(jobcardItem: JobcardItemCollapsableNew) {\n const ji: JobcardItemCollapsableNew = jobcardItem;\n ji.checklist =\n ji.checklistInstances?.length > 0\n ? { ...jobcardItem.checklistInstances[0] }\n : { id: null, checklistTemplateId: null };\n\n this.jobcardItems?.splice(\n this.jobcardItems.findIndex((i) => i.id === jobcardItem.id),\n 1,\n jobcardItem\n );\n }\n\n getClientAgreement(): void {\n const modalRef = this.modalService.open(\n ClientVerbalAgreementModalComponent\n );\n modalRef.componentInstance.appointment = this.appointmentHtml;\n modalRef.result.then(\n (customer) => {\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n if (!item.jobcardItemStatus) {\n item.jobcardItemStatus = [];\n }\n if (customer === false) {\n item.agreementCustomerName = null;\n item.isCustomerAgreed = false;\n\n item.jobcardItemStatus.unshift({\n status: JobcardItemStatus.StatusEnum.New,\n time: moment(new Date()).toISOString(),\n workshopUserId: this.user.id,\n });\n\n // Remove the previously saved Service Advisor approval\n const itemIndex = this.newAppointmentService.newApprovedActivities.findIndex(\n (i) => i.id === item.id\n );\n if (itemIndex > -1) {\n this.newAppointmentService.newApprovedActivities.splice(itemIndex, 1);\n }\n } else {\n if (typeof customer === 'string') {\n item.agreementCustomerName = customer;\n } else {\n item.agreementCustomerName = `${customer.firstName || ''} ${\n customer.lastName || ''\n }`.trim();\n }\n item.isCustomerAgreed = true;\n item.visible = true;\n if (item.jobcardItemStatus && item.jobcardItemStatus.length > 0 && item.jobcardItemStatus[0].status === 'new') {\n item.jobcardItemStatus.unshift({\n status: JobcardItemStatus.StatusEnum.Todo,\n duration: 0,\n time: new Date(moment().format()).toISOString(),\n jobcardItemId: item.id,\n });\n }\n\n // Save the Service Advisor approval\n if (this.newAppointmentService.appointmentInCreation?.id && item.id) {\n const originalItem = this.newAppointmentService.basedAppointmentInCreation?.jobcard?.jobcardItems?.find(\n (ji: any) => ji.id === item.id\n );\n if (originalItem?.jobcardItemStatus[0].status === 'new') {\n this.newAppointmentService.newApprovedActivities.push(item);\n }\n }\n }\n\n if (!item.jobcardItemCustomerStatus) {\n item.jobcardItemCustomerStatus = [];\n }\n\n item.jobcardItemCustomerStatus.push({\n action: item.isCustomerAgreed\n ? JobcardItemCustomerStatus.ActionEnum.Approve\n : JobcardItemCustomerStatus.ActionEnum.Decline,\n actionDateTime: new Date().toISOString(),\n actionType: JobcardItemCustomerStatus.ActionTypeEnum.Offline,\n actionPerformedBy: this.user?.displayedName,\n });\n\n // added appointment because there are 2 types of appointment html and in creation\n this.newAppointmentService.computeTotalPrice(this.paymentTypes, this.appointmentHtml);\n // If its in workfile screen then update jobcardItem\n if (item?.id && this.isWorkfile) {\n const params: UpdateJobcardItemRequestParams = {\n id: item.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: item,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe((ji) => {\n this.replaceActivity(ji);\n this.appointmentNV.jobcard.jobcardItems.forEach(element => {\n if(element.id === item.id)\n element = ji\n });\n });\n }\n });\n this.refresh.emit(this.appointmentNV);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n sendNotification(): void {\n const appointmentStatus: AppointmentStatusDto = { id: -1 };\n const modal = this.modalService.open(AddNotificationModalComponent);\n modal.componentInstance.appointment = this.appointmentHtml;\n modal.result.then(() => {\n // si notif cree, creer un new status sentbackerror\n // cette partie ne fonctionne que si le back envoie\n appointmentStatus.time = new Date(moment().format()).toISOString();\n appointmentStatus.status = AppointmentStatus.StatusEnum.SentBackError;\n appointmentStatus.workshopUser = this.user;\n const statusParams: CreateAppointmentStatusRequestParams = {\n appointmentId: this.appointmentHtml.id,\n appointmentStatusDto: appointmentStatus,\n applicationToken: this.userService.newToken,\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.appointmentStatusService\n .createAppointmentStatus(statusParams)\n .subscribe((status) => {\n this.appointmentHtml.status = status;\n // this.refresh.emit(this.appointmentHtml);\n // this.displaySentBackButton = false;\n // this.isOnHoldAvailable = this.setIsOnHold();\n // this.appointmentHtml.onHold = false;\n // const paramsUpdateApp: UpdateAppointmentRequestParams = {\n // id: this.appointmentHtml.id,\n // appointment: this.appointmentHtml,\n // view: 'app',\n // };\n // this.apiAppointmentService\n // .updateAppointment(paramsUpdateApp)\n // .subscribe((app) => {\n // this.appointmentHtml = app;\n // this.refresh.emit(this.appointmentHtml);\n // });\n const params: GetAppointmentByIdRequestParams = {\n id: this.appointmentHtml.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n this.newApiAppointmentsService.getAppointmentById(params).subscribe((appointment) => {\n appointment.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const app = this.mappingService.mapAppointmentDtoToAppointmentInCreation(appointment);\n this.appointmentHtml = app;\n this.appointmentInCreation = app;\n this.newAppointmentService.appointmentInCreation = app;\n this.appointmentHtml = appointment;\n this.refresh.emit(this.appointmentHtml);\n this.displaySentBackButton = false;\n this.isOnHoldAvailable = this.setIsOnHold();\n this.appointmentHtml.onHold = false;\n this.saveAppointmentSubscribe(this.appointmentHtml);\n });\n });\n });\n }\n\n exportPdf(pdfType: string) {\n const exportParams: RetriveAppoinmentPdfExportRequestParams = {\n applicationToken: this.userService.newToken,\n acceptLanguage: this.userService.getLanguage(this.user.language),\n authorization: this.userService.accessToken,\n appointmentId: this.appointmentHtml.id,\n pdfType,\n };\n this.exportInvoicePdfService\n .retriveAppoinmentPdfExport(exportParams)\n .subscribe((pdf: Blob) => {\n this.generatePdf(pdf, pdfType);\n });\n }\n generatePdf(pdf: Blob, pdfType: string) {\n if (pdfType === 'CheckIn') {\n pdfType = 'Checked_In';\n }\n FileSaver.saveAs(\n pdf,\n `Jobcard_${this.appointmentHtml.id}_${moment(new Date()).format(\n 'YYYY-MM-DD'\n )}_Status_${pdfType}.pdf`\n );\n }\n\n checkPartsInDms() {\n const partNotAvailableInLocalStock: string[] = [];\n\n if (this.isDmsConnected) {\n this.checkAvailableParts = [];\n this.appointmentHtml.jobcard?.jobcardItems?.forEach((ji: any) =>\n ji.operations?.forEach((op: any) =>\n op.parts?.forEach((p: any) => {\n this.checkAvailableParts.push(p);\n })\n )\n );\n\n if (this.checkAvailableParts?.length > 0) {\n const params: GetPartsAvailableRequestParams = {\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n jobcardItemOperationPartDto: this.checkAvailableParts,\n };\n this.dmsControllerService.getPartsAvailable(params).subscribe((parts: any[]) => {\n if (parts.length > 0) {\n parts.forEach((part) => {\n this.appointmentHtml.jobcard?.jobcardItems?.forEach((item: any) =>\n item.operations?.forEach((operation: any) =>\n operation.parts?.forEach((opePart: any) => {\n if (\n opePart.part.code === part.code &&\n opePart.part.manufacturer === part.manufacturer\n ) {\n opePart.quantityInStock = part.quantityInStock\n ? part.quantityInStock\n : 0;\n opePart.quantityInTransit = part.quantityInTransit\n ? part.quantityInTransit\n : 0;\n opePart.quantityOnOrder = part.quantityOnOrder\n ? part.quantityOnOrder\n : 0;\n\n opePart.jobcardItemOperationPartLocationList =\n part.jobcardItemOperationPartLocationList;\n opePart.isHomeLocation = part.isHomeLocation;\n // Check if parts are available at home location\n let quantityOnOtherWorkshop = 0;\n part.jobcardItemOperationPartLocationList?.forEach(\n (location: OperationPartLocation) => {\n if (\n this.workshop.sapCode.indexOf(\n location.locationId.toString()\n ) > -1 &&\n location.quantityInStock >= opePart.quantity\n ) {\n opePart.isAvailableAtHomeLocation =\n location.quantityInStock >= opePart.quantity;\n } else {\n quantityOnOtherWorkshop += location.quantityInStock;\n }\n }\n );\n opePart.isAvailableAtOtherLocation =\n !opePart.isAvailableAtHomeLocation &&\n quantityOnOtherWorkshop > 0;\n opePart.isNotAvailable =\n !opePart.isAvailableAtOtherLocation &&\n !opePart.isAvailableAtHomeLocation;\n }\n })\n )\n );\n });\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item.operations?.forEach((opr: any) => {\n opr.parts?.forEach((p: any) => {\n if (\n !p.quantityInStock ||\n p.quantityInStock === 0 ||\n p.quantityInStock < p.quantity\n ) {\n if (!partNotAvailableInLocalStock.includes(p.part.code)) {\n partNotAvailableInLocalStock.push(p.part.code);\n }\n }\n });\n });\n });\n if (partNotAvailableInLocalStock.length > 0) {\n this.partsCheckInCsps(partNotAvailableInLocalStock);\n }\n this.newAppointmentService.arePartsAvailable(\n this.appointmentHtml.jobcard?.jobcardItems,\n this.workshop\n );\n } else {\n this.setAllPartsForCspsCheck();\n }\n // Save parts stock tracker if not available in dms\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item?.operations.forEach((opr: any) => {\n opr.parts.forEach((p: any) => {\n let availability = 0;\n p?.jobcardItemOperationPartLocationList?.forEach((loc: any) => {\n availability += loc?.quantityInStock;\n });\n if (availability === 0 || p.quantity > availability) {\n const dmsParam: CreateOrUpdateDmsTrackerRequestParams = {\n noLoader: true,\n authorization: this.userService.accessToken,\n partsTrackerDmsDto: {\n logDate: moment().toISOString(),\n nonAvailability: 1,\n partId: p.part.id,\n workshopId: this.workshop.id,\n },\n };\n this.partTrackerService.createOrUpdateDmsTracker(dmsParam).subscribe();\n }\n });\n });\n });\n });\n } else {\n this.toastrService.warning(\n $localize`There is no Part selected in your activities.`\n );\n }\n } else {\n this.setAllPartsForCspsCheck();\n }\n }\n\n partsCheckInCsps(parts: string[]) {\n //Reset existing data\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item?.operations?.forEach((opr: any) => {\n opr?.parts.forEach((p: any) => {\n p.part.cspsPartDetails = [];\n p.part.totalAvailableCspsQty = undefined;\n });\n });\n });\n const cspsParams: GetPartsAvailabilityInCspsRequestParams = {\n partsCode: parts,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n userId: this.workshop.cspsUserId,\n };\n this.cspsService\n .getPartsAvailabilityInCsps(cspsParams)\n .subscribe((partCsps: PartAvailability[]) => {\n if (partCsps.length > 0) {\n partCsps?.forEach((csps) => {\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item?.operations?.forEach((opr: any) => {\n opr?.parts.forEach((p: any) => {\n if (!p?.part?.cspsPartDetails) {\n p.part.cspsPartDetails = [];\n }\n if (\n p.part.code === csps.partCode &&\n csps.localAvailable_qty !== 0 &&\n !this.isLocalExist(csps?.localCode, p.part.cspsPartDetails)\n ) {\n p.part.cspsPartDetails.push({\n localCode: csps.localCode,\n localName: csps.localName,\n localAvailable_qty: csps.localAvailable_qty,\n });\n }\n if (\n p.part.code === csps.partCode &&\n p.part.cspsPartDetails.length === 0\n ) {\n p.part.totalAvailableCspsQty = 0;\n }\n });\n });\n });\n });\n this.totalCspsCalculation();\n } else {\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item?.operations.forEach((opr: any) => {\n opr.parts.forEach((p: any) => {\n p.part.totalAvailableCspsQty = -1;\n });\n });\n });\n }\n // Save parts stock tracker if not available in csps\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item?.operations.forEach((opr: any) => {\n opr.parts.forEach((p: any) => {\n if (\n p.part.id &&\n (p.part.totalAvailableCspsQty <= 0 ||\n p.quantity > p.part.totalAvailableCspsQty)\n ) {\n const cspsParam: CreateOrUpdateCspsTrackerRequestParams = {\n noLoader: true,\n authorization: this.userService.accessToken,\n partsTrackerCspsDto: {\n logDate: moment().toISOString(),\n nonAvailability: 1,\n partId: p.part.id,\n workshopId: this.workshop.id,\n },\n };\n this.partTrackerService.createOrUpdateCspsTracker(cspsParam).subscribe();\n }\n });\n });\n });\n });\n }\n\n addPartsToBacklog() {\n //Reset existing data\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item?.operations?.forEach((opr: any) => {\n opr?.parts.forEach((p: any) => {\n if (p.quantityInStock === undefined || null == p.quantityInStock) {\n p.quantityInStock = 0;\n }\n if (p.quantityInStock < p.quantity) {\n if ((p.selected === undefined || p.selected) && p.part?.id !== -1) {\n this.jobcardPartsBacklog.push({\n jobcardItemId: p.id,\n partId: Number(p.part.id),\n appointmentId: this.appointmentHtml.id,\n quantity: p.quantity - p.quantityInStock,\n customerCompanyId: this.appointmentHtml.customerCompany.id,\n partStatus: 'To be ordered',\n workshopId: this.workshop.id,\n });\n }\n\n item.jobcardPartsBacklog = this.jobcardPartsBacklog;\n }\n this.toastrService.success($localize`The part is added to backlog.`);\n });\n });\n this.jobcardPartsBacklog = [];\n });\n if (this.appointmentHtml.id !== undefined || null !== this.appointmentHtml.id) {\n this.edditAppointmentForPartsBacklog();\n }\n }\n sendOrder(type: string) {\n if (this.appointmentHtml.id === undefined) {\n this.addAppointment(type);\n } else {\n this.editAppointment(type);\n }\n }\n\n successUpsert(appointment: AppointmentDto, type: string) {\n let message = '';\n switch (type) {\n case jobcardDmsOrderTypeEnum.Quote:\n message = $localize`Quote successfully sent to DMS.`;\n break;\n case jobcardDmsOrderTypeEnum.Reservation:\n message = $localize`Reservation successfully sent to DMS.`;\n break;\n case jobcardDmsOrderTypeEnum.Order:\n message = $localize`Order successfully sent to DMS.`;\n break;\n }\n this.toastrService.success(message);\n this.initChecklist(appointment);\n appointment.jobcard?.jobcardItems?.forEach((jiDto: JobcardItemCollapsableNew) => {\n jiDto.isMaintenance =\n jiDto.type === JobcardItem.TypeEnum.NextMaintenance ||\n jiDto.type === JobcardItem.TypeEnum.ProposedMaintenance;\n const ji = this.mappingService.mapJobcardItemDtoToJobcardItem(jiDto);\n //this.getMpOperations(ji);\n // this.getMpOperationsVersionsOperation(ji); metodo aggiunto in refreshAppointment\n });\n const app = this.mappingService.mapAppointmentDtoToAppointmentInCreation(appointment);\n this.appointmentHtml = app;\n this.appointmentInCreation = app;\n this.newAppointmentService.appointmentInCreation = app;\n this.refreshAppointment();\n }\n\n //metodo copiato da Operation\n getMpOperationsVersionsOperation(jobcardItem: JobcardItemCollapsableNew) {\n if (\n jobcardItem.type === jobcardItemTypeEnum.NextMaintenance ||\n jobcardItem.type === jobcardItemTypeEnum.ProposedMaintenance\n ) {\n if (!jobcardItem.jobcardItemStatus) {\n jobcardItem.jobcardItemStatus = [];\n jobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n }\n\n if (!jobcardItem.checklistInstances) {\n jobcardItem.checklistInstances = [\n { id: null, checklistTemplateId: null },\n ];\n }\n\n jobcardItem.loading = true;\n // this.setCustomerAgreement(jobcardItem);\n const params: GetMaintenanceOperationByCouponRequestParams = {\n couponCode: jobcardItem.code,\n marketId: this.workshop.marketId,\n planId: jobcardItem.mpInfo?.planId,\n vin: this.newAppointmentService.appointmentInCreation.vehicle?.vin,\n country: this.workshop.country,\n appointmentId: this.newAppointmentService.appointmentInCreation.id,\n noLoader: true,\n };\n // this.maintenanceService\n this.maintenanceServices\n .getMaintenanceOperationByCoupon(params)\n .subscribe((operations) => {\n const operationsMapped: Array = [];\n operations.forEach(op => {\n operationsMapped.push(this.mappingService.mapOperationToJobcardItemOperationDto(op));\n });\n if (jobcardItem.id || jobcardItem.operations) {\n // Retrieve all operations, parts and consumables that already exists in the object.\n // If it exists, then let as it is (keeping the ID in this way)\n // Otherwise, add them into the final object\n operationsMapped.forEach((ope) => {\n const existingOpe = jobcardItem.operations.find(\n (o) =>\n (o.code && o.code === ope.code) ||\n (o.label && o.label === ope.label)\n );\n if (existingOpe) {\n existingOpe.isKitComplete = ope.isKitComplete;\n existingOpe.kits = ope.kits;\n existingOpe.useKitPart = ope.useKitPart;\n\n if (ope.parts) {\n ope.parts.forEach((part) => {\n const existingPart = existingOpe.parts.find(\n (pa) => pa.part.code === part.part.code\n );\n if (existingPart) {\n existingPart.part.isKit =\n part.part.isKit === undefined ? false : part.part.isKit;\n existingPart.part.kitPart = part.part.kitPart;\n if (!this.environment.isIveco) {\n existingPart.selected = true;\n }\n } else {\n if (!existingOpe.parts) {\n existingOpe.parts = [];\n }\n part.selected = false;\n existingOpe.parts.push(part);\n }\n });\n }\n if (ope.consumables) {\n ope.consumables.forEach((cons) => {\n const c = existingOpe.consumables?.find(\n (co) =>\n co.consumable.code === cons.consumable.code &&\n co.quantity === cons.quantity\n );\n if (c) {\n c.consumable.partNumber = cons.consumable.partNumber;\n existingOpe.consumables.splice(\n existingOpe.consumables\n .map((c2) => c2.id)\n .indexOf(c.id),\n 1,\n c\n );\n } else {\n if (!existingOpe.consumables) {\n existingOpe.consumables = [];\n }\n cons.selected = false;\n existingOpe.consumables.push(cons);\n }\n });\n }\n } else {\n if (!jobcardItem.operations) {\n jobcardItem.operations = [];\n }\n jobcardItem.operations.push(ope);\n }\n });\n } else {\n jobcardItem.operations = operationsMapped;\n }\n\n if (jobcardItem.operations) {\n jobcardItem.operations.forEach((ope) => {\n if (ope.parts) {\n ope.parts.forEach((opePart) => {\n if (!jobcardItem.causalParts) {\n jobcardItem.causalParts = [];\n jobcardItem.causalParts.push(opePart.part);\n } else if (\n jobcardItem.causalParts\n .map((part) => part.code)\n .indexOf(opePart.part?.code) === -1\n ) {\n jobcardItem.causalParts.push(opePart.part);\n }\n });\n }\n if (ope?.consumables?.length > 1 && !this.environment.isIveco) {\n ope.consumables[0].selected = true;\n }\n });\n }\n jobcardItem.loading = false;\n // this.newAppointmentService.setItemsWeight([jobcardItem]);\n //per mantenere l'ordine deve essere eseguita per ogni jobcarditem\n });\n }\n // this.newAppointmentService.setItemsWeight([jobcardItem]);\n }\n\n refreshAppointment() {\n // added appointment because there are 2 types of appointment html and in creation\n this.newAppointmentService.computeTotalPrice(this.paymentTypes, this.appointmentHtml);\n if(this.newAppointmentService.appointmentInCreation.jobcard && this.newAppointmentService.appointmentInCreation.jobcard.jobcardItems) {\n this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems?.forEach((ji: any) => {\n ji.totalPrice = this.newAppointmentService.fullOperationPrice(ji);\n });\n this.newAppointmentService.refreshJobcardItems(\n this.paymentTypes,\n this.workshop\n );\n }\n this.appointmentHtml.jobcard?.jobcardItems?.forEach((ji: any) => {\n this.getMpOperationsVersionsOperation(ji);\n });\n if (this.refresh) {\n this.refresh.emit(this.appointmentHtml);\n }\n }\n\n errorUpsert(appointment: AppointmentInCreation) {\n this.toastrService.error(appointment.dmsResponseMessage);\n this.appointmentHtml = appointment;\n this.newAppointmentService.appointmentInCreation = appointment;\n // added appointment because there are 2 types of appointment html and in creation\n this.newAppointmentService.computeTotalPrice(this.paymentTypes, this.appointmentHtml);\n this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems?.forEach((ji: any) => {\n ji.totalPrice = this.newAppointmentService.fullOperationPrice(ji);\n });\n this.newAppointmentService.refreshJobcardItems(\n this.paymentTypes,\n this.workshop\n );\n if (this.refresh) {\n this.refresh.emit();\n }\n }\n\n openClaim() {\n this.dropDownService.appointment = this.appointmentHtml;\n this.dropDownService.openClaimModal();\n }\n // openClaimModal() {\n // this.appointmentInCreationOriginal = JSON.parse(JSON.stringify(this.appointmentInCreation));\n // const sealerMarketCheckParams = {\n // sapDealerMarketCheckResult: {\n // appointmentId: this.appointmentInCreationOriginal.id,\n // },\n // };\n // this.sapClaimService\n // .checkSapDealerMarketInEurope(sealerMarketCheckParams)\n // .subscribe((checkResult) => {\n // const modalRef = this.modalService.open(WarrantyClaimModalComponent, {\n // size: 'xl',\n // backdrop: 'static',\n // });\n // const warrantyModal = modalRef.componentInstance as WarrantyClaimModalComponent;\n // warrantyModal.appointment = { ...this.appointmentInCreationOriginal };\n // warrantyModal.serialNumberVoilated = this.serialNumberVoilated;\n // warrantyModal.dealerMarketCheckResult = checkResult;\n // warrantyModal.paymentTypes = this.paymentTypes;\n\n // if (environment.isIveco) {\n // warrantyModal.modelTitle = $localize`My Best Claim`;\n // warrantyModal.warraningMessage = $localize`No Activities available to claim. Please ensure the Activities are in 'Done' status before claiming to My Best`;\n // }\n\n // modalRef.result.then(\n // (appointmentReturned) => {\n // const warrantyDModal = this.modalService.open(\n // WarrantyDisclaimerModalComponent,\n // {\n // size: 'xl',\n // backdrop: 'static',\n // }\n // );\n\n // this.checkMPValidate(appointmentReturned);\n\n // const dModal = warrantyDModal.componentInstance as WarrantyDisclaimerModalComponent;\n // dModal.jobcardItems = this.jobcardItems;\n // //Check already claim item selected\n // const isAlreadyClaim = appointmentReturned?.jobcard?.jobcardItems.some(\n // (item: any) => item?.['selected'] && item?.['isAlreadyClaim']\n // );\n // //Check not claim item selected\n // const isNotAlreadyClaim = appointmentReturned.jobcard.jobcardItems.some(\n // (item: any) => item?.['selected'] && !item?.['isAlreadyClaim']\n // );\n\n // warrantyDModal.result.then(\n // () => {\n // let enableWarranty = false;\n // let isAlreadyClaimExist = false;\n // if (isAlreadyClaim && isNotAlreadyClaim) {\n // enableWarranty = true;\n // isAlreadyClaimExist = true;\n // } else if (isAlreadyClaim && !isNotAlreadyClaim) {\n // enableWarranty = true;\n // }\n // if (enableWarranty) {\n // const warrantyCModal = this.modalService.open(\n // WarrantyConfirmModalComponent,\n // {\n // size: 'xl',\n // backdrop: 'static',\n // }\n // );\n // warrantyCModal.componentInstance.isAlreadyClaimExist = isAlreadyClaimExist;\n // warrantyCModal.componentInstance.jobcardItems = appointmentReturned.jobcard.jobcardItems.filter(\n // (item: any) => item.selected\n // );\n // warrantyCModal.result.then(\n // () => {\n // if (environment.isIveco) {\n // this.myBestclaimSubmitToApi(appointmentReturned);\n // } else {\n // this.claimSubmitToApi(appointmentReturned);\n // }\n // },\n // () => {\n // /* Ignore dismiss */\n // }\n // );\n // } else {\n // if (environment.isIveco) {\n // this.myBestclaimSubmitToApi(appointmentReturned);\n // } else {\n // this.claimSubmitToApi(appointmentReturned);\n // }\n // }\n // },\n // () => {\n // /* Ignore dismiss */\n // }\n // );\n // },\n // (data) => {\n // this.serialNumberVoilated = false;\n // this.checkMPValidate(data);\n // }\n // );\n // });\n // }\n\n /**\n * To check appointment with have MP coupon and updated MP validate\n */\n // checkMPValidate(data: Appointment) {\n // if (\n // this.appointmentInCreation?.jobcard?.jobcardItems.find(\n // (jc: JobcardItem) =>\n // !jc.activityValidated && (jc?.mpInfo || jc.couponStatus)\n // )\n // ) {\n // data?.jobcard?.jobcardItems?.forEach((jc: JobcardItem) => {\n // this.updateJobCardItemBasedOnMP(jc);\n // });\n // }\n // }\n\n /**\n *\n * @param jobCardItem jobcard item to be update MP flag\n */\n // updateJobCardItemBasedOnMP(jobCardItem: JobcardItem) {\n // this.appointmentInCreation?.jobcard?.jobcardItems.map((jc: JobcardItem) => {\n // if (jc.id === jobCardItem.id && jobCardItem.activityValidated) {\n // jc.activityValidated = true;\n // }\n // return jc;\n // });\n // }\n\n jobcardFinalised() {\n const modal = this.modalService.open(AppointmentFinalizeModalComponent);\n modal.componentInstance.msg = $localize`You are about to finalize the job card`;\n modal.componentInstance.label = $localize`Yes, I confirm the jobcard is completed and finalised.`;\n\n modal.result.then((validationConfirmed) => {\n if (validationConfirmed === true) {\n // Retrieving the connected user to \"sign\" the workfile\n this.userService.getUser().subscribe((user) => {\n const signatureParams: CreateAppointmentSignatureRequestParams = {\n // appointmentId: this.appointmentInCreation.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n appointmentSignatureDto: {\n id: -1,\n appointmentId: this.appointmentHtml.id,\n customerCompanyUserId: this.appointmentHtml?.status\n ?.customerCompanyUser?.id,\n time: new Date(moment().format()).toISOString(),\n signatory: user?.displayedName,\n workshopUserId: user?.id,\n isTechnician: false,\n },\n };\n // Signing\n this.appointmentSignaturesService\n .createAppointmentSignature(signatureParams)\n .subscribe(() => {\n // After having signed, changing the appointment statuts to \"Jobcard Finalised\"\n const appointmentStatus: AppointmentStatusDto = { id: -1 };\n appointmentStatus.time = new Date(\n moment().format()\n ).toISOString();\n appointmentStatus.status =\n AppointmentStatus.StatusEnum.JobcardFinalised;\n appointmentStatus.workshopUser = this.user;\n if (!appointmentStatus.customerCompanyUser) {\n appointmentStatus.customerCompanyUser = {};\n }\n const statusParams: CreateAppointmentStatusRequestParams = {\n appointmentId: this.appointmentHtml.id,\n appointmentStatusDto: appointmentStatus,\n applicationToken: this.userService.newToken,\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.appointmentStatusService\n .createAppointmentStatus(statusParams)\n .subscribe((status) => {\n this.appointmentHtml.status = status;\n this.refresh.emit(this.appointmentHtml);\n });\n });\n });\n }\n });\n }\n\n //checking inprogress activity\n checkActivityInProgress(): void {\n this.isInProgress = false;\n if (environment.isIveco) {\n this.appointmentHtml.jobcard.jobcardItems?.forEach((ji: any) => {\n const jis = this.newAppointmentService.getCurrentItemStatus(ji);\n if (jis.status === 'inProgress') {\n this.isInProgress = true;\n }\n });\n\n if (this.isInProgress) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n modalRef.componentInstance.title = $localize`Clocking in Progress`;\n modalRef.componentInstance.message = $localize`There is currently active clocking on this appointment.
    Do you wish to continue?`;\n modalRef.componentInstance.cancelAction = $localize`No`;\n modalRef.componentInstance.action = $localize`Yes`;\n modalRef.result.then(() => {\n this.raiseOnHold();\n });\n } else {\n this.raiseOnHold();\n }\n } else {\n this.raiseOnHold();\n }\n }\n\n raiseOnHold(): void {\n this.isOnHoldAvailable = false;\n const modalRef = this.modalService.open(OnHoldReasonModalComponent);\n modalRef.result.then(\n (ohr: OnHoldReason) => {\n this.appointmentHtml.onHold = true;\n this.appointmentHtml.onHoldReason = ohr;\n\n // const params: UpdateAppointmentRequestParams = {\n // id: this.appointmentHtml.id,\n // appointment: this.appointmentHtml,\n // view: 'app',\n // };\n // this.apiAppointmentService\n // .updateAppointment(params)\n // .subscribe((app) => {\n // this.appointmentHtml = app;\n // this.refresh.emit(this.appointmentHtml);\n // });\n //presente all'interno di saveAppointment\n //this.refresh.emit(this.appointmentHtml);\n this.saveAppointmentSubscribe(this.appointmentHtml);\n },\n () => {\n // Bug 172911: On cancel button reset option display\n this.isOnHoldAvailable = true;\n }\n );\n\n //deferModal.onHoldReasons = this.reasons;\n }\n\n openDmsNotificationModal() {\n const modalRef = this.ngbModal.open(DmsLogsNotificationModalComponent, {\n size: 'xl',\n });\n modalRef.componentInstance.logData = this.logs.content;\n modalRef.componentInstance.dmsOrderNumber = this.newAppointmentService?.appointmentInCreation?.jobcard?.dmsJobOrder;\n modalRef.componentInstance.appointmentId = this.appointmentHtml.id;\n modalRef.componentInstance.totalElements = this.logs.totalElements;\n }\n // removed for the task 445593\n // openFeedbackMenu() {\n // const feedbackModalData = {\n // id: this.user.id,\n // displayedName: this.user.displayedName,\n // notificationEmail: this.user.email,\n // sapCode: this.workshop.sapCode,\n // };\n // const modalRef = this.ngbModal.open(FeedbackModalComponent, {\n // size: 'lg',\n // });\n // modalRef.componentInstance.feedbackModalData = feedbackModalData;\n // modalRef.componentInstance.appointmentDto = this.appointmentHtml;\n // }\n\n sendEmail() {\n const hasEmail =\n this.appointmentHtml.status.customerCompanyUser.email ||\n this.appointmentHtml.customerCompany.email;\n\n if (hasEmail) {\n const lang = this.userService.getLanguage(this.user.language);\n this.appointmentEmailsService\n .sendAppointmentMail({\n appointmentId: this.appointmentHtml.id,\n emailType: 'DEFAULT',\n acceptLanguage: lang,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n })\n .subscribe(\n () => {\n this.toastrService.success($localize`Email sent`);\n },\n () => {\n this.toastrService.error($localize`Email has not been sent.`);\n }\n );\n } else {\n this.toastrService.error(\n $localize`Customer/Contact email-ID not provided. Kindly update the details in the appointment.`\n );\n }\n }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.appointmentNV) {\n this.appointmentNV = changes.appointmentNV.currentValue;\n this.appointmentHtml = changes.appointmentNV.currentValue;\n }\n \n }\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n // commented because moved to activity420840\n // sendConfirmationEmail() {\n // const hasEmail =\n // this.appointmentInCreation.status.customerCompanyUser.email ||\n // this.appointmentInCreation.customerCompany.email;\n // let type: EmailTypeEnum;\n // const removeNegotiationEmail = false;\n // if (hasEmail) {\n // const modalRef = this.modalService.open(EmailConfirmModalComponent);\n // modalRef.componentInstance.onlyFinalEmailType = removeNegotiationEmail;\n // modalRef.result.then((resp) => {\n // type = resp ? emailType.negotiate : emailType.final;\n // this.newAppointmentService.setItemsWeight(\n // this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems\n // );\n // this.apiAppointmentService\n // .updateAppointment({\n // id: this.newAppointmentService.appointmentInCreation.id,\n // appointment: this.newAppointmentService.appointmentInCreation,\n // })\n // .subscribe(\n // () => {\n // this.toastrService.success($localize`Appointment edited`);\n // this.emailService\n // .sendAppointmentMailByAppointmentId({\n // appointmentId: this.appointmentInCreation.id,\n // emailType: type,\n // })\n // .subscribe(\n // () => {\n // this.toastrService.success($localize`Email sent`);\n // },\n // () => {\n // this.toastrService.error(\n // $localize`Email has not been sent.`\n // );\n // }\n // );\n // },\n // (error: HttpErrorResponse) => {\n // const apiError: ApiError = error.error;\n // this.toastrService.error(apiError.message);\n // }\n // );\n // });\n // } else {\n // const modalRef = this.modalService.open(ConfirmModalComponent);\n // const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n // confirmModal.title = $localize`Send confirmation email`;\n // confirmModal.message = $localize`Email addresses are empty. Please enter at least one email address.`;\n // confirmModal.action = $localize`OK`;\n // confirmModal.showCancelButton = false;\n // }\n // }\n // private claimSubmitToApi(appointmentReturned: any): void {\n // const getParams: GetWorkshopByIdRequestParams = {\n // workshopId: this.user.workshopId,\n // };\n // const ids: number[] = [];\n // const travels: ActivityTravelList[] = [];\n // ids.push(\n // ...appointmentReturned.jobcard.jobcardItems\n // .filter((item: JobcardItemCollapsable) => item?.selected)\n // .map((item: JobcardItemCollapsable) => item?.id)\n // );\n // ids.forEach((id) => {\n // const activityTravelList = {\n // itemId: id,\n // travelList:\n // appointmentReturned.jobcard.jobcardItems\n // .find((jc: JobcardItemCollapsable) => jc.id === id)\n // ?.ewarrantyTravels?.map((travel: JobcardTravel) => travel.id) ?? [],\n // };\n // travels.push(activityTravelList);\n // });\n // this.workshopService.getWorkshopById(getParams).subscribe((workshop) => {\n // const params: ClaimCreationRequestParams = {\n // id: ids,\n // marketId: workshop.marketId,\n // dealerClaimNumber: appointmentReturned?.jobcard?.dealerClaimNumber,\n // activityTravelList: travels,\n // };\n // if (this.serialNumberVoilated) {\n // params.serialNumber = appointmentReturned?.vehicle?.plate;\n // }\n // this.sapClaimService.claimCreation(params).subscribe(\n // (response: Appointment) => {\n // // backend return null if an exception has been raised\n // if (response === null) {\n // this.toastrService.error($localize`eWarranty Claim Creation Failed!`);\n // } else {\n // let sapResponse = '';\n // response?.jobcard?.jobcardItems?.forEach((item) => {\n // if (item?.sapResponse && ids.includes(item.id)) {\n // sapResponse = item.sapResponse;\n // }\n // this.replaceJobcardItem(item);\n // this.setPaymentTypes(item);\n // });\n // let isDsubtype = false;\n // this.appointmentInCreation.jobcard.jobcardItems = this.jobcardItems;\n // this.appointmentInCreation.jobcard.dealerClaimNumber =\n // response?.jobcard?.dealerClaimNumber;\n // this.appointmentInCreation.vehicle.serialNumber = response?.vehicle?.plate;\n // this.appointmentInCreation.jobcard?.jobcardItems.forEach(\n // (jobcardItem: JobcardItemCollapsable) => {\n // if (jobcardItem?.paymentSubcode?.toUpperCase() === 'D') {\n // isDsubtype = true;\n // }\n // jobcardItem.causalParts = [];\n // if (jobcardItem?.operations) {\n // jobcardItem?.operations.forEach((ope) => {\n // if (ope.parts) {\n // ope.parts.forEach((opePart) => {\n // if (\n // jobcardItem.causalParts\n // .map((part) => part.id)\n // .indexOf(opePart.part?.id) === -1\n // ) {\n // jobcardItem?.causalParts.push(opePart.part);\n // }\n // });\n // }\n // });\n // }\n // if (jobcardItem?.causalPartCode) {\n // jobcardItem.causalPartId = -1;\n // }\n // jobcardItem.totalDuration = 0;\n // jobcardItem.techniciansDuration = [];\n // jobcardItem.technicians.forEach(() => {\n // jobcardItem.techniciansDuration.push(0);\n // });\n // jobcardItem?.jobcardItemStatus\n // .filter(\n // (jis) =>\n // jis.status !== JobcardItemStatus.StatusEnum.New &&\n // jis.status !== JobcardItemStatus.StatusEnum.Todo\n // )\n // .filter((jis) => !jis.deleted)\n // .forEach((jci) => {\n // if (jci.duration) {\n // jobcardItem.totalDuration += jci.duration;\n // jobcardItem.technicians.forEach((technician, index) => {\n // if (technician.workshopUserId === jci.workshopUserId) {\n // jobcardItem.techniciansDuration[index] += jci.duration;\n // }\n // });\n // }\n // });\n // }\n // );\n // this.refresh.emit(this.appointmentInCreation);\n // this.jobcardItems = this.appointmentInCreation?.jobcard?.jobcardItems;\n // if (\n // sapResponse != null &&\n // sapResponse.length > 4 &&\n // sapResponse.substring(0, 4) === 'ERR-'\n // ) {\n // const responses = `ERR-VIN not found on SAP`;\n // if (sapResponse === responses && isDsubtype) {\n // const snModalRef = this.modalService.open(ConfirmModalComponent);\n // snModalRef.componentInstance.title = $localize`PIN Not Found`;\n // snModalRef.componentInstance.message = $localize`Serial Number is not present on eWarranty system`;\n // snModalRef.componentInstance.action = $localize`Enter serial number`;\n // snModalRef.result.then(\n // (resp: boolean) => {\n // if (resp) {\n // this.serialNumberVoilated = resp;\n // this.openClaimModal();\n // }\n // },\n // () => {\n // /* Ignore dismiss */\n // }\n // );\n // } else {\n // this.toastrService.error(\n // sapResponse.substring(4, sapResponse.length)\n // );\n // }\n // } else if (sapResponse != null) {\n // this.toastrService.success(sapResponse);\n // }\n // }\n // });\n // });\n // }\n\n private isjobCardHasMaintenanceActivity() {\n let result = false;\n this.jobcardItems?.forEach((jobcardItem) => {\n if (jobcardItem.couponStatus) {\n result = true;\n }\n });\n return result;\n }\n\n // TODO: Will update this function once ready API - my Best\n // private myBestclaimSubmitToApi(appointmentReturned: any): void {\n // const getParams: GetWorkshopByIdRequestParams = {\n // workshopId: this.user.workshopId,\n // };\n // const ids: number[] = [];\n // ids.push(\n // ...appointmentReturned.jobcard.jobcardItems\n // .filter((item: JobcardItemCollapsable) => item?.selected)\n // .map((item: JobcardItemCollapsable) => item?.id)\n // );\n // this.workshopService.getWorkshopById(getParams).subscribe((workshop) => {\n // const params: ClaimCreationRequestParams = {\n // id: ids,\n // marketId: workshop.marketId,\n // dealerClaimNumber: appointmentReturned?.jobcard?.dealerClaimNumber,\n // };\n // if (this.serialNumberVoilated) {\n // params.serialNumber = appointmentReturned?.vehicle?.plate;\n // }\n // this.myBestService.myBestClaimCreation(params).subscribe(\n // (response: Appointment) => {\n // if (response) {\n // let sapResponse = $localize`My Best claim submitted`;\n\n // response?.jobcard?.jobcardItems?.forEach((item) => {\n // if (item?.sapResponse && ids.includes(item.id)) {\n // sapResponse = item.sapResponse;\n // }\n // this.replaceJobcardItem(item);\n // this.setPaymentTypes(item);\n // });\n // let isDsubtype = false;\n // this.appointmentInCreation.jobcard.jobcardItems = this.jobcardItems;\n // this.appointmentInCreation.jobcard.dealerClaimNumber =\n // response?.jobcard?.dealerClaimNumber;\n // this.appointmentInCreation.vehicle.serialNumber = response?.vehicle?.plate;\n\n // this.appointmentInCreation.jobcard?.jobcardItems.forEach(\n // (jobcardItem: JobcardItemCollapsable) => {\n // if (jobcardItem?.paymentSubcode?.toUpperCase() === 'D') {\n // isDsubtype = true;\n // }\n\n // jobcardItem.causalParts = [];\n // jobcardItem?.operations?.forEach((ope) => {\n // ope?.parts?.forEach((opePart) => {\n // if (\n // jobcardItem.causalParts\n // .map((part) => part.id)\n // .indexOf(opePart.part?.id) === -1\n // ) {\n // jobcardItem?.causalParts.push(opePart.part);\n // }\n // });\n // });\n\n // if (jobcardItem?.causalPartCode) {\n // jobcardItem.causalPartId = -1;\n // }\n\n // jobcardItem.totalDuration = 0;\n // jobcardItem.techniciansDuration = [];\n\n // jobcardItem?.technicians?.forEach(() => {\n // jobcardItem.techniciansDuration.push(0);\n // });\n\n // jobcardItem?.jobcardItemStatus\n // .filter(\n // (jis) =>\n // jis.status !== JobcardItemStatus.StatusEnum.New &&\n // jis.status !== JobcardItemStatus.StatusEnum.Todo\n // )\n // .filter((jis) => !jis.deleted)\n // .forEach((jci) => {\n // if (jci?.duration) {\n // jobcardItem.totalDuration += jci.duration;\n // jobcardItem.technicians.forEach((technician, index) => {\n // if (\n // technician?.workshopUserId === jci?.workshopUserId\n // ) {\n // jobcardItem.techniciansDuration[index] +=\n // jci.duration;\n // }\n // });\n // }\n // });\n // }\n // );\n\n // this.refresh.emit(this.appointmentInCreation);\n\n // this.jobcardItems = this.appointmentInCreation?.jobcard?.jobcardItems;\n\n // if (\n // sapResponse != null &&\n // sapResponse?.length > 4 &&\n // sapResponse?.substring(0, 4) === 'ERR-'\n // ) {\n // const responses = `ERR-VIN not found on SAP`;\n // if (sapResponse === responses && isDsubtype) {\n // const snModalRef = this.modalService.open(\n // ConfirmModalComponent\n // );\n // snModalRef.componentInstance.title = $localize`VIN Not Found`;\n // snModalRef.componentInstance.message = $localize`Serial Number is not present on My Best system`;\n // snModalRef.componentInstance.action = $localize`Enter serial number`;\n // snModalRef.result.then(\n // (resp: boolean) => {\n // if (resp) {\n // this.serialNumberVoilated = resp;\n // this.openClaimModal();\n // }\n // },\n // () => {\n // /* Ignore dismiss */\n // }\n // );\n // } else {\n // this.toastrService.error(\n // sapResponse.substring(4, sapResponse.length)\n // );\n // }\n // } else if (sapResponse != null) {\n // this.toastrService.success(sapResponse);\n // }\n // } else {\n // this.toastrService.error(\n // $localize`Something went wrong My Best Claim creation, please try again later!`\n // );\n // }\n // },\n // () => {\n // this.toastrService.error($localize`My Best Claim submit Failed!`);\n // }\n // );\n // });\n // }\n\n private addAppointment(type: string) {\n // in bookingappointmentdto\n if (!this.appointmentInCreation.receptionDate) {\n this.appointmentInCreation.receptionDate = moment(new Date()).toISOString();\n }\n // in bookingappointmentdto\n if (!this.appointmentInCreation.deliveryDate) {\n this.appointmentInCreation.deliveryDate = moment(new Date())\n .add(\n this.newAppointmentService.appointmentInCreation.jobcard.estimatedDuration,\n 'minutes'\n )\n .toISOString();\n }\n // abbiamo il campo in customer\n this.newAppointmentService.appointmentInCreation.workshopUserId = this.user.id;\n this.newAppointmentService.setItemsWeight(\n this.appointmentInCreation.jobcard?.jobcardItems\n );\n // OLD VERSION\n // const params: CreateAppointmentRequestParams = {\n // appointment: this.appointmentInCreation,\n // };\n // this.apiAppointmentService\n // .createAppointment(params)\n // .subscribe((appointment) => {\n // let date;\n // if (\n // (type === Jobcard.DmsOrderTypeEnum.Reservation ||\n // type === Jobcard.DmsOrderTypeEnum.Order) &&\n // !appointment.dmsCreationDate\n // ) {\n // date = new Date().toISOString();\n // }\n // appointment.jobcard?.jobcardItems?.forEach(\n // (ji: JobcardItemCollapsable) => {\n // ji.isMaintenance =\n // ji.type === JobcardItem.TypeEnum.NextMaintenance ||\n // ji.type === JobcardItem.TypeEnum.ProposedMaintenance;\n // }\n // );\n\n // this.appointmentInCreation = appointment;\n // this.newAppointmentService.appointmentInCreation = appointment;\n // this.apiAppointmentService\n // .upsertAppointmentOrder({\n // id: appointment.id,\n // type,\n // date,\n // })\n // .subscribe(\n // (appointment2) => {\n // appointment2.jobcard?.jobcardItems?.forEach(\n // (ji: JobcardItemCollapsable) => {\n // ji.isMaintenance =\n // ji.type === JobcardItem.TypeEnum.NextMaintenance ||\n // ji.type === JobcardItem.TypeEnum.ProposedMaintenance;\n // }\n // );\n // this.successUpsert(appointment2, type);\n // this.newAppointmentService.arePartsAvailable(\n // this.appointmentInCreation.jobcard.jobcardItems,\n // this.workshop\n // );\n // },\n // (res: HttpErrorResponse) => {\n // //this.toastrService.error(res.error.message);\n // this.notify(res);\n // this.refreshAppointment();\n // }\n // );\n // });\n // NEW VERSION\n let page;\n switch (true) {\n case this.router.url.includes('customer'):\n page = 'customer';\n break;\n case this.router.url.includes('activity'):\n page = 'activity';\n break;\n case this.router.url.includes('operations'):\n page = 'operations';\n break;\n case this.router.url.includes('booking'):\n page = 'booking';\n break;\n }\n let appDto;\n if(page === 'customer') {\n appDto = this.mappingService.mapAppointmentInCreationDtoToCustomerAppointmentDto(this.newAppointmentService.appointmentInCreation);\n } else if(page === 'operations' || page === 'booking' || page === 'activity') {\n appDto = this.mappingService.mapAppointmentInCreationDtoToBookingAppointmentDto(this.newAppointmentService.appointmentInCreation);\n }\n const params: CreateAppointmentRequestParams = {\n authorization: this.userService.accessToken,\n applicationToken: this.userService.newToken,\n bookingAppointmentDtoCustomerAppointmentDto: appDto,\n isComplete: true,\n src: 'web',\n };\n this.newApiAppointmentsService.createAppointment(params).subscribe(app => {\n this.newAppointmentService.temporaryId = null;\n this.newAppointmentService.appointmentInCreation.id = app.id;\n let date;\n if (\n (type === jobcardDmsOrderTypeEnum.Reservation ||\n type === jobcardDmsOrderTypeEnum.Order) &&\n !this.newAppointmentService.appointmentInCreation.dmsCreationDate\n ) {\n date = new Date().toISOString();\n }\n this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.isMaintenance =\n ji.type === JobcardItem.TypeEnum.NextMaintenance ||\n ji.type === JobcardItem.TypeEnum.ProposedMaintenance;\n }\n );\n\n this.appointmentInCreation = this.newAppointmentService.appointmentInCreation;\n this.newAppointmentService.appointmentInCreation = this.newAppointmentService.appointmentInCreation;\n this.newApiAppointmentsService\n .upsertOrder({\n applicationToken: this.userService.newToken,\n acceptLanguage: this.userService.getLanguage(this.user.language),\n id: this.newAppointmentService.appointmentInCreation.id,\n type,\n authorization: this.userService.accessToken,\n date,\n })\n .subscribe(\n (appointment2) => {\n this.appointmentHtml = this.mappingService.mapAppointmentDtoToAppointmentInCreation(appointment2);\n this.appointmentHtml.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.isMaintenance =\n ji.type === JobcardItem.TypeEnum.NextMaintenance ||\n ji.type === JobcardItem.TypeEnum.ProposedMaintenance;\n }\n );\n this.successUpsert(this.appointmentHtml, type);\n this.newAppointmentService.arePartsAvailable(\n this.appointmentInCreation.jobcard.jobcardItems,\n this.workshop\n );\n this.refreshAppointment();\n },\n (res: HttpErrorResponse) => {\n //this.toastrService.error(res.error.message);\n this.getAppointment(this.appointmentHtml.id);\n this.notify(res);\n this.refreshAppointment();\n }\n );\n });\n }\n\n private editAppointment(type: string) {\n this.newAppointmentService.setItemsWeight(\n this.appointmentHtml.jobcard?.jobcardItems\n );\n // const params: UpdateAppointmentRequestParams = {\n // id: this.appointmentHtml.id,\n // appointment: this.appointmentHtml,\n // };\n // this.saveAppointmentWithSubscribe(this.appointmentHtml);\n this.newApiAppointmentsService.updateAppointment({\n isComplete: false,\n id: this.appointmentHtml.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToCustomerAppointmentDtoFromAppoinmentDto(this.appointmentHtml),\n }).subscribe(\n (appointment) => {\n this.newAppointmentService.temporaryId = appointment.temporaryId;\n this.appointmentHtml.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.newApiAppointmentsService.updateAppointment({\n id: this.appointmentHtml.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToBookingAppointmentDto(this.appointmentHtml),\n isComplete: true,\n }).subscribe((appointment2) => {\n this.appointmentHtml.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const params: GetAppointmentByIdRequestParams = {\n id: appointment2.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n this.newApiAppointmentsService.getAppointmentById(params).subscribe((appointment3) => {\n this.appointmentHtml = appointment3;\n this.appointmentHtml.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.refresh.emit(this.appointmentHtml);\n let date;\n if (\n (type === Jobcard.DmsOrderTypeEnum.Reservation ||\n type === Jobcard.DmsOrderTypeEnum.Order) &&\n !this.appointmentHtml.dmsCreationDate\n ) {\n date = new Date().toISOString();\n }\n this.appointmentHtml.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsable) => {\n ji.isMaintenance =\n ji.type === JobcardItem.TypeEnum.NextMaintenance ||\n ji.type === JobcardItem.TypeEnum.ProposedMaintenance;\n }\n );\n this.appointmentInCreation = this.appointmentHtml;\n this.newAppointmentService.appointmentInCreation = this.appointmentHtml;\n this.newApiAppointmentsService\n .upsertOrder({\n applicationToken: this.userService.newToken,\n acceptLanguage: this.userService.getLanguage(this.user.language),\n id: this.appointmentHtml.id,\n authorization: this.userService.accessToken,\n type,\n date,\n })\n .subscribe(\n (finalAppointment) => {\n this.appointmentHtml = this.mappingService.mapAppointmentDtoToAppointmentInCreation(finalAppointment);\n this.appointmentHtml.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.isMaintenance =\n ji.type === JobcardItem.TypeEnum.NextMaintenance ||\n ji.type === JobcardItem.TypeEnum.ProposedMaintenance;\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(\n ji\n );\n }\n );\n this.successUpsert(this.appointmentHtml, type);\n this.newAppointmentService.arePartsAvailable(\n this.appointmentInCreation.jobcard.jobcardItems,\n this.workshop\n );\n this.refreshAppointment();\n },\n (res: HttpErrorResponse) => {\n /*this.toastrService.error(\n res?.error?.message\n ? res?.error?.message\n : $localize`An error occured`\n );*/\n this.getAppointment(this.appointmentHtml.id);\n this.notify(res);\n this.refreshAppointment();\n }\n );\n });\n });\n });\n }\n\n private edditAppointmentForPartsBacklog() {\n this.newAppointmentService.retainLatestStatus();\n // this.newAppointmentService.appointmentInCreation.isAppointmentOpened = false;\n // const params: UpdateAppointmentRequestParams = {\n // id: this.appointmentHtml.id,\n // appointment: this.appointmentHtml,\n // };\n // this.apiAppointmentService.updateAppointment(params).subscribe(\n // () => {\n // this.toastrService.success($localize`Appointment edited`);\n // // Send the notification in case of activities approved by the Service Advisor\n // if (\n // this.appointmentHtml?.id &&\n // this.newAppointmentService.newApprovedActivities.length > 0\n // ) {\n // const lang = this.userService.getLanguage(this.user.language);\n // this.notificationService\n // .postNotification({\n // applicationToken: this.userService.newToken,\n // acceptLanguage: lang,\n // workshopId: this.user.workshopId,\n // authorization: this.userService.accessToken,\n // notificationCreationDto: {\n // type: 'ACTIVITY_APPROVED',\n // appointmentId: this.newAppointmentService.appointmentInCreation.id,\n // },\n // noLoader: true,\n // })\n // .subscribe(() => {\n // this.newAppointmentService.newApprovedActivities = [];\n // });\n // }\n // },\n // (error: HttpErrorResponse) => {\n // const apiError: ApiError = error.error;\n // this.toastrService.error(apiError.message);\n // }\n // );\n this.saveAppointmentSubscribe(this.appointmentHtml, 'postNotification');\n // ADDED TO SUBSCRIBE\n // this.toastrService.success($localize`Appointment edited`);\n // // Send the notification in case of activities approved by the Service Advisor\n // if (\n // this.appointmentHtml?.id &&\n // this.newAppointmentService.newApprovedActivities.length > 0\n // ) {\n // const lang = this.userService.getLanguage(this.user.language);\n // this.notificationService\n // .postNotification({\n // applicationToken: this.userService.newToken,\n // acceptLanguage: lang,\n // workshopId: this.user.workshopId,\n // authorization: this.userService.accessToken,\n // notificationCreationDto: {\n // type: 'ACTIVITY_APPROVED',\n // appointmentId: this.newAppointmentService.appointmentInCreation.id,\n // },\n // noLoader: true,\n // })\n // .subscribe(() => {\n // this.newAppointmentService.newApprovedActivities = [];\n // });\n // }\n }\n\n // private replaceJobcardItem(jobcardItem: JobcardItemCollapsable) {\n // this.jobcardItems.splice(\n // this.jobcardItems.findIndex((i) => i.id === jobcardItem.id),\n // 1,\n // jobcardItem\n // );\n // }\n\n private setPaymentTypes(jobcardItem: any) {\n this.paymentTypes.forEach((payment) => {\n if (jobcardItem.paymentTypeId === payment.id) {\n payment.paymentSubTypes.forEach((subType) => {\n if (jobcardItem.paymentSubTypeId === subType.id) {\n jobcardItem.paymentCode = payment.code;\n jobcardItem.paymentType = payment;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n }\n });\n }\n });\n }\n\n private totalCspsCalculation() {\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item?.operations.forEach((opr: any) => {\n opr.parts.forEach((p: any) => {\n p.part.cspsPartDetails.forEach((csps: any) => {\n p.part.totalAvailableCspsQty = 0;\n p.part.totalAvailableCspsQty =\n p.part.totalAvailableCspsQty + csps.localAvailable_qty;\n });\n if (p.quantity > p.quantityInStock && !p.part.totalAvailableCspsQty) {\n p.part.totalAvailableCspsQty = -1;\n }\n });\n });\n });\n }\n private isLocalExist(localCode: string, partDetails: PartAvailability[]) {\n partDetails = partDetails.filter((part) => part?.localCode === localCode);\n return partDetails?.length > 0 ? true : false;\n }\n\n private setAllPartsForCspsCheck() {\n const partNotAvailableInLocalStock: string[] = [];\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((item: any) => {\n item.operations?.forEach((opr: any) => {\n opr.parts?.forEach((p: any) => {\n if (!partNotAvailableInLocalStock.includes(p.part.code)) {\n partNotAvailableInLocalStock.push(p.part.code);\n }\n });\n });\n });\n if (partNotAvailableInLocalStock.length > 0) {\n this.partsCheckInCsps(partNotAvailableInLocalStock);\n }\n }\n\n private etimUpdateMaintenance() {\n let jcIds: number[];\n if (this.isMPActivityCompleted) {\n jcIds = this.maintenanceItems?.map((item) => item.id) ?? [];\n } else {\n jcIds =\n this.appointmentHtml?.jobcard?.jobcardItems\n .filter(\n (jc: JobcardItem) =>\n (jc.mpInfo || jc.couponStatus) && !jc?.activityValidated\n )\n .map((jcid: JobcardItem) => jcid.id) ?? [];\n }\n\n if (jcIds.length) {\n const jobcardItem: JobcardItemDto = {};\n jobcardItem.ids = jcIds;\n const params: SaveActivityValidateStatusRequestParams = {\n authorization: this.userService.accessToken,\n jobcardItemDto: jobcardItem,\n };\n this.jobcardItemControllerService\n .saveActivityValidateStatus(params)\n .subscribe(() => {\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach(\n (jc: JobcardItemDto) => {\n if (jcIds.includes(jc.id)) {\n jc.activityValidated = true;\n jc.version++;\n //this.updateJobCardItemBasedOnMP(jc);\n }\n }\n );\n this.refresh.emit(this.appointmentHtml);\n });\n }\n this.appointmentHtml?.jobcard?.jobcardItems?.map(\n (jc: JobcardItemCollapsableNew) => {\n jc.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(jc);\n }\n );\n }\n\n private checkJobcardItemCurrentStatus() {\n this.appointmentHtml?.jobcard?.jobcardItems?.forEach((jc: JobcardItem) => {\n if (\n jc.type === this.jobcardItemType.NextMaintenance ||\n jc.type === this.jobcardItemType.ProposedMaintenance\n ) {\n const currentStatus = this.newAppointmentService.getCurrentItemStatus(jc);\n if (\n currentStatus.status === 'done' ||\n currentStatus.status === 'invoiced'\n ) {\n this.isjcitemStatusValid = true;\n }\n }\n });\n }\n private initChecklist(appointment: AppointmentDto) {\n // If the jobcard has no checklist, we need to set it an empty one\n if (!appointment?.checklistInstances) {\n appointment.checklistInstances = [\n {\n id: undefined,\n workshopUserId: this.newAppointmentService.user.id,\n type: 'reception',\n checkListResult: [],\n checklistTemplateId: -1,\n },\n ];\n if (!environment.isIveco) {\n appointment.checklistInstances.push({\n id: undefined,\n workshopUserId: this.newAppointmentService.user.id,\n type: 'safety',\n checkListResult: [],\n checklistTemplateId: -1,\n });\n }\n } else {\n appointment.checklistInstances.sort((a, b) => (a.id > b.id ? 1 : -1));\n const receptionChecklist = appointment.checklistInstances.find(\n (instance) => instance.type === 'reception'\n );\n if (!receptionChecklist) {\n appointment.checklistInstances.unshift({\n id: undefined,\n workshopUserId: this.newAppointmentService.user.id,\n type: 'reception',\n checkListResult: [],\n checklistTemplateId: -1,\n });\n } else {\n appointment.checklistInstances.splice(\n appointment.checklistInstances.indexOf(receptionChecklist),\n 1\n );\n appointment.checklistInstances.unshift(receptionChecklist);\n }\n if (\n !environment.isIveco &&\n (!appointment.checklistInstances[1] ||\n appointment.checklistInstances[1].type !== 'safety')\n ) {\n appointment.checklistInstances.splice(1, 0, {\n id: undefined,\n workshopUserId: this.newAppointmentService.user.id,\n type: 'safety',\n checkListResult: [],\n checklistTemplateId: -1,\n });\n }\n }\n }\n private getMpOperations(jobcardItem: JobcardItemCollapsable) {\n if (\n jobcardItem.type === JobcardItem.TypeEnum.NextMaintenance ||\n jobcardItem.type === JobcardItem.TypeEnum.ProposedMaintenance\n ) {\n jobcardItem.isMaintenance = true;\n if (!jobcardItem.jobcardItemStatus) {\n jobcardItem.jobcardItemStatus = [];\n jobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatus.StatusEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n }\n\n if (!jobcardItem.checklistInstances) {\n jobcardItem.checklistInstances = [\n { id: null, checklistTemplateId: null },\n ];\n }\n\n jobcardItem.loading = true;\n const params: GetMaintenanceOperationByCouponRequestParams = {\n couponCode: jobcardItem.code,\n marketId: this.workshop.marketId,\n planId: jobcardItem.mpInfo?.planId,\n vin: this.newAppointmentService.appointmentInCreation.vehicle?.vin,\n country: this.workshop.country,\n appointmentId: this.newAppointmentService.appointmentInCreation.id,\n noLoader: true,\n };\n // CHIAMATA DA AGGIUNGERE\n this.maintenanceServices\n .getMaintenanceOperationByCoupon(params)\n .subscribe((operations) => {\n if (jobcardItem.id && jobcardItem.operations) {\n // Retrieve all operations, parts and consumables that already exists in the object.\n // If it exists, then let as it is (keeping the ID in this way)\n // Otherwise, add them into the final object\n operations.forEach((ope) => {\n const existingOpe = jobcardItem.operations.find(\n (o) =>\n (o.code && o.code === ope.code) ||\n (o.label && o.label === ope.label)\n );\n if (existingOpe) {\n existingOpe.isKitComplete = ope.isKitComplete;\n existingOpe.kits = ope.kits;\n existingOpe.useKitPart = ope.useKitPart;\n\n if (ope.parts) {\n ope.parts.forEach((part) => {\n const existingPart = existingOpe.parts.find(\n (pa) => pa.part.code === part.part.code\n );\n if (existingPart) {\n existingPart.part.isKit =\n part.part.isKit === undefined ? false : part.part.isKit;\n existingPart.part.kitPart = part.part.kitPart;\n existingPart.selected = true;\n } else {\n if (!existingOpe.parts) {\n existingOpe.parts = [];\n }\n part.selected = false;\n existingOpe.parts.push(part);\n }\n });\n }\n if (ope.consumables) {\n ope.consumables.forEach((cons) => {\n const c = existingOpe.consumables.find(\n (co) =>\n co.consumable.code === cons.consumable.code &&\n co.quantity === cons.quantity\n );\n if (c) {\n c.consumable.partNumber = cons.consumable.partNumber;\n existingOpe.consumables.splice(\n existingOpe.consumables\n .map((c2: any) => c2.id)\n .indexOf(c.id),\n 1,\n c\n );\n } else {\n if (!existingOpe.consumables) {\n existingOpe.consumables = [];\n }\n cons.selected = false;\n existingOpe.consumables.push(cons);\n }\n });\n }\n } else {\n if (!jobcardItem.operations) {\n jobcardItem.operations = [];\n }\n jobcardItem.operations.push(ope);\n }\n });\n } else {\n jobcardItem.operations = operations;\n }\n\n if (jobcardItem.operations) {\n jobcardItem.operations.forEach((ope) => {\n if (ope.parts) {\n ope.parts.forEach((opePart) => {\n if (!jobcardItem.causalParts) {\n jobcardItem.causalParts = [];\n jobcardItem.causalParts.push(opePart.part);\n } else if (\n jobcardItem.causalParts\n .map((part) => part.code)\n .indexOf(opePart.part?.code) === -1\n ) {\n jobcardItem.causalParts.push(opePart.part);\n }\n });\n }\n });\n }\n jobcardItem.loading = false;\n });\n }\n }\n\n private getAppointment(id: number) {\n const params: GetAppointmentByIdRequestParams = {\n id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n this.newApiAppointmentsService.getAppointmentById(params).subscribe((appointment) => {\n const app = this.mappingService.mapAppointmentViewDtoToAppointmentInCreation(appointment);\n this.appointmentHtml = app;\n this.appointmentInCreation = app;\n this.newAppointmentService.appointmentInCreation = app;\n });\n }\n}\n","
    \n \n Actions\n \n \n \n \n \n \n Update Appointment\n \n \n \n \n \n Workfile Details\n \n \n \n \n \n Workspace Details\n \n \n \n \n \n \n On Hold\n \n \n \n \n \n \n \n Off Hold\n \n \n \n \n \n \n Validate Workfile\n \n
    \n \n \n \n \n Jobcard Finalised\n \n
    \n \n \n \n \n Send back to technician\n Technician Re-validation\n \n 0 && (standAloneMode===false || environment.isIveco)\"\n >\n \n \n \n Parts Availability\n \n 0 &&\n workshop?.enableCsps &&\n environment.isIveco\n \"\n >\n \n \n \n Add Parts to backlog\n \n \n 0\n \">\n \n \n \n Authorize all Activities\n \n \n \n \n \n \n Update all maintenances on eTIM \n \n \n \n \n \n \n Send Data to eWarranty\n Send Data to My Best\n \n \n
    \n \n \n \n \n Price From DMS\n \n
    \n
    \n \n \n \n \n Price From DMS\n \n
    \n
    \n \n \n \n \n \n Update Reservation\n \n \n Raise Reservation\n \n \n
    \n
    \n \n \n \n \n \n Update Reservation\n \n \n Raise Reservation\n \n \n
    \n
    \n \n \n \n \n \n Update Order\n \n \n Raise Order\n \n \n
    \n
    \n \n \n \n \n \n Update Order\n \n \n Raise Order\n \n \n
    \n\n \n \n\n \n \n \n \n \n Show DMS Logs \n \n\n \n \n \n \n Print Check In\n \n \n \n \n \n Print Quotation\n \n\n \n \n \n \n Print Order\n \n \n \n
    \n \n \n \n \n Send Vehicle Ready Mail\n \n
    \n \n \n
    \n\n","import { EventEmitter, Injectable, Output } from '@angular/core';\r\n// import {\r\n// ClaimCreationRequestParams,\r\n// MyBestService,\r\n// SapClaimService,\r\n// } from '@api-jobcard';\r\nimport {\r\n ActivityTravelList,\r\n Appointment,\r\n JobcardItem,\r\n JobcardItemStatus,\r\n JobcardTravel,\r\n PaymentType,\r\n WorkshopUser,\r\n} from 'src/app/models/model/models';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { WarrantyClaimModalComponent } from 'src/app/workfile/workfile-item/warranty-claim-modal/warranty-claim-modal.component';\r\nimport { WarrantyDisclaimerModalComponent } from 'src/app/workfile/workfile-item/warranty-claim-modal/warranty-disclaimer-modal/warranty-disclaimer-modal.component';\r\nimport { WarrantyConfirmModalComponent } from 'src/app/workfile/workfile-item/warranty-confirm-modal/warranty-confirm-modal.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { JobcardItemCollapsable } from '../activities/activities.component';\r\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\r\nimport { UserService } from '../../core/user/user.service';\r\nimport { Subject } from 'rxjs';\r\nimport { GetWorkshopByIdRequestParams, WorkshopService } from 'src/api/djc-booking-service/api/workshop.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DropdownActionService {\r\n @Output()\r\n refresh: EventEmitter = new EventEmitter();\r\n appointmentOriginal: Appointment;\r\n appointment: Appointment;\r\n serialNumberVoilated = false;\r\n paymentTypes: PaymentType[] = [];\r\n environment = environment;\r\n jobcardItems: JobcardItem[];\r\n user: WorkshopUser;\r\n\r\n constructor(\r\n //TODO(Matteo) ignorare RemoveYaml\r\n // private sapClaimService: SapClaimService,\r\n private workshopService: WorkshopService,\r\n private modalService: NgbModal,\r\n //TODO(Matteo) ignorare RemoveYaml\r\n // private myBestService: MyBestService,\r\n private userService: UserService,\r\n private toastrService: ToastrService\r\n ) {\r\n this.userService.getUser().subscribe((user) => {\r\n this.user = user;\r\n });\r\n }\r\n\r\n openClaimModal() {\r\n this.appointmentOriginal = JSON.parse(JSON.stringify(this.appointment));\r\n // const sealerMarketCheckParams = {\r\n // sapDealerMarketCheckResult: {\r\n // appointmentId: this.appointmentOriginal.id,\r\n // },\r\n // };\r\n //TODO(Matteo) ignorare RemoveYaml this.sapClaimService httpClient.post(`${this.configuration.basePath}/sap/europe-dealer-check`\r\n // .checkSapDealerMarketInEurope(sealerMarketCheckParams)\r\n // .subscribe((checkResult) => {\r\n // const modalRef = this.modalService.open(WarrantyClaimModalComponent, {\r\n // size: 'xl',\r\n // backdrop: 'static',\r\n // });\r\n // const warrantyModal = modalRef.componentInstance as WarrantyClaimModalComponent;\r\n // warrantyModal.appointment = { ...this.appointmentOriginal };\r\n // warrantyModal.serialNumberVoilated = this.serialNumberVoilated;\r\n // warrantyModal.dealerMarketCheckResult = checkResult;\r\n // warrantyModal.paymentTypes = this.paymentTypes;\r\n\r\n // if (environment.isIveco) {\r\n // warrantyModal.modelTitle = $localize`My Best Claim`;\r\n // warrantyModal.warraningMessage = $localize`No Activities available to claim. Please ensure the Activities are in 'Done' status before claiming to My Best`;\r\n // }\r\n\r\n // modalRef.result.then(\r\n // (appointmentReturned) => {\r\n // const warrantyDModal = this.modalService.open(\r\n // WarrantyDisclaimerModalComponent,\r\n // {\r\n // size: 'xl',\r\n // backdrop: 'static',\r\n // }\r\n // );\r\n\r\n // this.checkMPValidate(appointmentReturned);\r\n\r\n // const dModal = warrantyDModal.componentInstance as WarrantyDisclaimerModalComponent;\r\n // dModal.jobcardItems = this.jobcardItems;\r\n // //Check already claim item selected\r\n // const isAlreadyClaim = appointmentReturned?.jobcard?.jobcardItems.some(\r\n // (item: any) => item?.['selected'] && item?.['isAlreadyClaim']\r\n // );\r\n // //Check not claim item selected\r\n // const isNotAlreadyClaim = appointmentReturned.jobcard.jobcardItems.some(\r\n // (item: any) => item?.['selected'] && !item?.['isAlreadyClaim']\r\n // );\r\n\r\n // warrantyDModal.result.then(\r\n // () => {\r\n // let enableWarranty = false;\r\n // let isAlreadyClaimExist = false;\r\n // if (isAlreadyClaim && isNotAlreadyClaim) {\r\n // enableWarranty = true;\r\n // isAlreadyClaimExist = true;\r\n // } else if (isAlreadyClaim && !isNotAlreadyClaim) {\r\n // enableWarranty = true;\r\n // }\r\n // if (enableWarranty) {\r\n // const warrantyCModal = this.modalService.open(\r\n // WarrantyConfirmModalComponent,\r\n // {\r\n // size: 'xl',\r\n // backdrop: 'static',\r\n // }\r\n // );\r\n // warrantyCModal.componentInstance.isAlreadyClaimExist = isAlreadyClaimExist;\r\n // warrantyCModal.componentInstance.jobcardItems = appointmentReturned.jobcard.jobcardItems.filter(\r\n // (item: any) => item.selected\r\n // );\r\n // warrantyCModal.result.then(\r\n // () => {\r\n // if (environment.isIveco) {\r\n // this.myBestclaimSubmitToApi(appointmentReturned);\r\n // } else {\r\n // this.claimSubmitToApi(appointmentReturned);\r\n // }\r\n // },\r\n // () => {\r\n // /* Ignore dismiss */\r\n // }\r\n // );\r\n // } else {\r\n // if (environment.isIveco) {\r\n // this.myBestclaimSubmitToApi(appointmentReturned);\r\n // } else {\r\n // this.claimSubmitToApi(appointmentReturned);\r\n // }\r\n // }\r\n // },\r\n // () => {\r\n // /* Ignore dismiss */\r\n // }\r\n // );\r\n // },\r\n // (data) => {\r\n // this.serialNumberVoilated = false;\r\n // this.checkMPValidate(data);\r\n // }\r\n // );\r\n // });\r\n }\r\n\r\n /**\r\n * To check appointment with have MP coupon and updated MP validate\r\n */\r\n checkMPValidate(data: Appointment) {\r\n if (\r\n this.appointment?.jobcard?.jobcardItems.find(\r\n (jc: JobcardItem) =>\r\n !jc.activityValidated && (jc?.mpInfo || jc.couponStatus)\r\n )\r\n ) {\r\n data?.jobcard?.jobcardItems?.forEach((jc: JobcardItem) => {\r\n this.updateJobCardItemBasedOnMP(jc);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param jobCardItem jobcard item to be update MP flag\r\n */\r\n updateJobCardItemBasedOnMP(jobCardItem: JobcardItem) {\r\n this.appointment?.jobcard?.jobcardItems.map((jc: JobcardItem) => {\r\n if (jc.id === jobCardItem.id && jobCardItem.activityValidated) {\r\n jc.activityValidated = true;\r\n }\r\n return jc;\r\n });\r\n }\r\n\r\n // TODO: Will update this function once ready API - my Best\r\n private myBestclaimSubmitToApi(appointmentReturned: any): void {\r\n const getParams: GetWorkshopByIdRequestParams = {\r\n authorization: this.userService.accessToken,\r\n workshopId: this.user.workshopId,\r\n };\r\n const ids: number[] = [];\r\n ids.push(\r\n ...appointmentReturned.jobcard.jobcardItems\r\n .filter((item: JobcardItemCollapsable) => item?.selected)\r\n .map((item: JobcardItemCollapsable) => item?.id)\r\n );\r\n this.workshopService.getWorkshopById(getParams).subscribe((workshop) => {\r\n // const params: ClaimCreationRequestParams = {\r\n // id: ids,\r\n // marketId: workshop.marketId,\r\n // dealerClaimNumber: appointmentReturned?.jobcard?.dealerClaimNumber,\r\n // };\r\n // if (this.serialNumberVoilated) {\r\n // params.serialNumber = appointmentReturned?.vehicle?.plate;\r\n // }\r\n //TODO(Matteo) ignorare RemoveYaml httpClient.get(`${this.configuration.basePath}/mybest/claim-creation\r\n // this.myBestService.myBestClaimCreation(params).subscribe(\r\n // (response: Appointment) => {\r\n // if (response) {\r\n // let sapResponse = $localize`My Best claim submitted`;\r\n\r\n // response?.jobcard?.jobcardItems?.forEach((item) => {\r\n // if (item?.sapResponse && ids.includes(item.id)) {\r\n // sapResponse = item.sapResponse;\r\n // }\r\n // this.replaceJobcardItem(item);\r\n // this.setPaymentTypes(item);\r\n // });\r\n // let isDsubtype = false;\r\n // this.appointment.jobcard.jobcardItems = this.jobcardItems;\r\n // this.appointment.jobcard.dealerClaimNumber =\r\n // response?.jobcard?.dealerClaimNumber;\r\n // this.appointment.vehicle.serialNumber = response?.vehicle?.plate;\r\n\r\n // this.appointment.jobcard?.jobcardItems.forEach(\r\n // (jobcardItem: JobcardItemCollapsable) => {\r\n // if (jobcardItem?.paymentSubcode?.toUpperCase() === 'D') {\r\n // isDsubtype = true;\r\n // }\r\n\r\n // jobcardItem.causalParts = [];\r\n // jobcardItem?.operations?.forEach((ope) => {\r\n // ope?.parts?.forEach((opePart) => {\r\n // if (\r\n // jobcardItem.causalParts\r\n // .map((part) => part.id)\r\n // .indexOf(opePart.part?.id) === -1\r\n // ) {\r\n // jobcardItem?.causalParts.push(opePart.part);\r\n // }\r\n // });\r\n // });\r\n\r\n // if (jobcardItem?.causalPartCode) {\r\n // jobcardItem.causalPartId = -1;\r\n // }\r\n\r\n // jobcardItem.totalDuration = 0;\r\n // jobcardItem.techniciansDuration = [];\r\n\r\n // jobcardItem?.technicians?.forEach(() => {\r\n // jobcardItem.techniciansDuration.push(0);\r\n // });\r\n\r\n // jobcardItem?.jobcardItemStatus\r\n // .filter(\r\n // (jis) =>\r\n // jis.status !== JobcardItemStatus.StatusEnum.New &&\r\n // jis.status !== JobcardItemStatus.StatusEnum.Todo\r\n // )\r\n // .filter((jis) => !jis.deleted)\r\n // .forEach((jci) => {\r\n // if (jci?.duration) {\r\n // jobcardItem.totalDuration += jci.duration;\r\n // jobcardItem.technicians.forEach((technician, index) => {\r\n // if (\r\n // technician?.workshopUserId === jci?.workshopUserId\r\n // ) {\r\n // jobcardItem.techniciansDuration[index] +=\r\n // jci.duration;\r\n // }\r\n // });\r\n // }\r\n // });\r\n // }\r\n // );\r\n\r\n // this.refresh.emit(this.appointment);\r\n\r\n // this.jobcardItems = this.appointment?.jobcard?.jobcardItems;\r\n\r\n // if (\r\n // sapResponse != null &&\r\n // sapResponse?.length > 4 &&\r\n // sapResponse?.substring(0, 4) === 'ERR-'\r\n // ) {\r\n // const responses = `ERR-VIN not found on SAP`;\r\n // if (sapResponse === responses && isDsubtype) {\r\n // const snModalRef = this.modalService.open(\r\n // ConfirmModalComponent\r\n // );\r\n // snModalRef.componentInstance.title = $localize`VIN Not Found`;\r\n // snModalRef.componentInstance.message = $localize`Serial Number is not present on My Best system`;\r\n // snModalRef.componentInstance.action = $localize`Enter serial number`;\r\n // snModalRef.result.then(\r\n // (resp: boolean) => {\r\n // if (resp) {\r\n // this.serialNumberVoilated = resp;\r\n // this.openClaimModal();\r\n // }\r\n // },\r\n // () => {\r\n // /* Ignore dismiss */\r\n // }\r\n // );\r\n // } else {\r\n // this.toastrService.error(\r\n // sapResponse.substring(4, sapResponse.length)\r\n // );\r\n // }\r\n // } else if (sapResponse != null) {\r\n // this.toastrService.success(sapResponse);\r\n // }\r\n // } else {\r\n // this.toastrService.error(\r\n // $localize`Something went wrong My Best Claim creation, please try again later!`\r\n // );\r\n // }\r\n // },\r\n // () => {\r\n // this.toastrService.error($localize`My Best Claim submit Failed!`);\r\n // }\r\n // );\r\n });\r\n }\r\n //isiveco false\r\n private claimSubmitToApi(appointmentReturned: any): void {\r\n this.jobcardItems = this.appointment?.jobcard?.jobcardItems;\r\n const getParams: GetWorkshopByIdRequestParams = {\r\n authorization: this.userService.accessToken,\r\n workshopId: this.user.workshopId,\r\n };\r\n const ids: number[] = [];\r\n const travels: ActivityTravelList[] = [];\r\n ids.push(\r\n ...appointmentReturned.jobcard.jobcardItems\r\n .filter((item: JobcardItemCollapsable) => item?.selected)\r\n .map((item: JobcardItemCollapsable) => item?.id)\r\n );\r\n ids.forEach((id) => {\r\n const activityTravelList = {\r\n itemId: id,\r\n travelList:\r\n appointmentReturned.jobcard.jobcardItems\r\n .find((jc: JobcardItemCollapsable) => jc.id === id)\r\n ?.ewarrantyTravels?.map((travel: JobcardTravel) => travel.id) ?? [],\r\n };\r\n travels.push(activityTravelList);\r\n });\r\n this.workshopService.getWorkshopById(getParams).subscribe((workshop) => {\r\n // const params: ClaimCreationRequestParams = {\r\n // id: ids,\r\n // marketId: workshop.marketId,\r\n // dealerClaimNumber: appointmentReturned?.jobcard?.dealerClaimNumber,\r\n // activityTravelList: travels,\r\n // };\r\n // if (this.serialNumberVoilated) {\r\n // params.serialNumber = appointmentReturned?.vehicle?.plate;\r\n // }\r\n //isIveco false\r\n // this.sapClaimService\r\n // .claimCreation(params)\r\n // .subscribe((response: Appointment) => {\r\n // // backend return null if an exception has been raised\r\n // if (response === null) {\r\n // this.toastrService.error(\r\n // $localize`eWarranty Claim Creation Failed!`\r\n // );\r\n // } else {\r\n // let sapResponse = '';\r\n // response?.jobcard?.jobcardItems?.forEach((item) => {\r\n // if (item?.sapResponse && ids.includes(item.id)) {\r\n // sapResponse = item.sapResponse;\r\n // }\r\n // this.replaceJobcardItem(item);\r\n // this.setPaymentTypes(item);\r\n // });\r\n // let isDsubtype = false;\r\n // this.appointment.jobcard.jobcardItems = this.jobcardItems;\r\n // this.appointment.jobcard.dealerClaimNumber =\r\n // response?.jobcard?.dealerClaimNumber;\r\n // this.appointment.vehicle.serialNumber = response?.vehicle?.plate;\r\n // this.appointment.jobcard?.jobcardItems.forEach(\r\n // (jobcardItem: JobcardItemCollapsable) => {\r\n // if (jobcardItem?.paymentSubcode?.toUpperCase() === 'D') {\r\n // isDsubtype = true;\r\n // }\r\n // jobcardItem.causalParts = [];\r\n // if (jobcardItem?.operations) {\r\n // jobcardItem?.operations.forEach((ope) => {\r\n // if (ope.parts) {\r\n // ope.parts.forEach((opePart) => {\r\n // if (\r\n // jobcardItem.causalParts\r\n // .map((part) => part.id)\r\n // .indexOf(opePart.part?.id) === -1\r\n // ) {\r\n // jobcardItem?.causalParts.push(opePart.part);\r\n // }\r\n // });\r\n // }\r\n // });\r\n // }\r\n // if (jobcardItem?.causalPartCode) {\r\n // jobcardItem.causalPartId = -1;\r\n // }\r\n // jobcardItem.totalDuration = 0;\r\n // jobcardItem.techniciansDuration = [];\r\n // jobcardItem.technicians.forEach(() => {\r\n // jobcardItem.techniciansDuration.push(0);\r\n // });\r\n // jobcardItem?.jobcardItemStatus\r\n // .filter(\r\n // (jis) =>\r\n // jis.status !== JobcardItemStatus.StatusEnum.New &&\r\n // jis.status !== JobcardItemStatus.StatusEnum.Todo\r\n // )\r\n // .filter((jis) => !jis.deleted)\r\n // .forEach((jci) => {\r\n // if (jci.duration) {\r\n // jobcardItem.totalDuration += jci.duration;\r\n // jobcardItem.technicians.forEach((technician, index) => {\r\n // if (technician.workshopUserId === jci.workshopUserId) {\r\n // jobcardItem.techniciansDuration[index] +=\r\n // jci.duration;\r\n // }\r\n // });\r\n // }\r\n // });\r\n // }\r\n // );\r\n // this.refresh.emit(this.appointment);\r\n // this.jobcardItems = this.appointment?.jobcard?.jobcardItems;\r\n // if (\r\n // sapResponse != null &&\r\n // sapResponse.length > 4 &&\r\n // sapResponse.substring(0, 4) === 'ERR-'\r\n // ) {\r\n // const responses = `ERR-VIN not found on SAP`;\r\n // if (sapResponse === responses && isDsubtype) {\r\n // const snModalRef = this.modalService.open(\r\n // ConfirmModalComponent\r\n // );\r\n // snModalRef.componentInstance.title = $localize`PIN Not Found`;\r\n // snModalRef.componentInstance.message = $localize`Serial Number is not present on eWarranty system`;\r\n // snModalRef.componentInstance.action = $localize`Enter serial number`;\r\n // snModalRef.result.then(\r\n // (resp: boolean) => {\r\n // if (resp) {\r\n // this.serialNumberVoilated = resp;\r\n // this.openClaimModal();\r\n // }\r\n // },\r\n // () => {\r\n // /* Ignore dismiss */\r\n // }\r\n // );\r\n // } else {\r\n // this.toastrService.error(\r\n // sapResponse.substring(4, sapResponse.length)\r\n // );\r\n // }\r\n // } else if (sapResponse != null) {\r\n // this.toastrService.success(sapResponse);\r\n // }\r\n // }\r\n // });\r\n });\r\n }\r\n\r\n private replaceJobcardItem(jobcardItem: JobcardItemCollapsable) {\r\n this.jobcardItems.splice(\r\n this.jobcardItems.findIndex((i) => i.id === jobcardItem.id),\r\n 1,\r\n jobcardItem\r\n );\r\n }\r\n\r\n private setPaymentTypes(jobcardItem: JobcardItemCollapsable) {\r\n this.paymentTypes.forEach((payment) => {\r\n if (jobcardItem.paymentTypeId === payment.id) {\r\n payment.paymentSubTypes.forEach((subType) => {\r\n if (jobcardItem.paymentSubTypeId === subType.id) {\r\n jobcardItem.paymentCode = payment.code;\r\n jobcardItem.paymentType = payment;\r\n jobcardItem.paymentSubType = subType;\r\n jobcardItem.paymentSubcode = subType.code;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n // It is used to call the sendOrder function from the header component\r\n private buttonClickSource = new Subject();\r\n buttonClick$ = this.buttonClickSource.asObservable();\r\n\r\n emitButtonClick(buttonId: string): void {\r\n this.buttonClickSource.next(buttonId);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { OnHoldReason } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { OnHoldReasonDto } from 'src/api/djc-booking-service/model/onHoldReasonDto';\nimport { OnHoldReasonsService } from 'src/api/djc-booking-service/api/onHoldReasons.service';\n// import { OnholdstatusService } from '@api-jobcard';\n\n@Component({\n selector: 'jc-on-hold-reason-modal',\n templateUrl: './on-hold-reason-modal.component.html',\n styleUrls: ['./on-hold-reason-modal.component.scss'],\n})\nexport class OnHoldReasonModalComponent implements OnInit {\n message: string;\n onHoldReasonSelected: string;\n onHoldReasons: OnHoldReasonDto[] = [];\n\n constructor(\n public activeModal: NgbActiveModal,\n private onholdstatusService: OnHoldReasonsService,\n private userService: UserAdminService\n ) {}\n\n ngOnInit(): void {\n this.userService.getUser().subscribe(user => {\n this.onHoldReasonSelected = '';\n this.onholdstatusService\n .getOnHoldStatusByWorkshopId({workshopId: user.workshopId, authorization: this.userService.accessToken})\n .subscribe((reasons: OnHoldReasonDto[]) => {\n this.onHoldReasons = reasons.filter((reason) => reason.isVisible);\n this.onHoldReasons.sort((a, b) =>\n a.description.localeCompare(b.description)\n );\n });\n })\n }\n onSubmit(): void {\n this.activeModal.close(this.onHoldReasonSelected);\n }\n}\n","
    \n

    Raise On Hold

    \n \n ×\n \n
    \n
    \n
    \n
    \n
    \n \n Cancel\n \n \n On Hold\n \n
    \n
    \n","import {\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n NgbTimeAdapter,\n NgbTimepickerConfig,\n NgbTimepickerI18n,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { JcTime } from './jc-time';\nimport { NgbTimeMinutesAdapter } from './ngb-time-minutes-adapter';\n\nconst FILTER_REGEX = /[^0-9]/g;\n\nconst NGB_TIMEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DurationPickerComponent),\n multi: true,\n};\n\n@Component({\n selector: 'jc-duration-picker',\n templateUrl: './duration-picker.component.html',\n styleUrls: ['./duration-picker.component.scss'],\n providers: [\n NGB_TIMEPICKER_VALUE_ACCESSOR,\n { provide: NgbTimeAdapter, useClass: NgbTimeMinutesAdapter },\n ],\n})\nexport class DurationPickerComponent\n implements ControlValueAccessor, OnChanges {\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\n static ngAcceptInputType_size: string;\n /**\n * Whether to display 12H or 24H mode.\n */\n @Input() meridian: boolean;\n\n /**\n * If `true`, the spinners above and below inputs are visible.\n */\n @Input() spinners: boolean;\n\n /**\n * If `true`, it is possible to select seconds.\n */\n @Input() seconds: boolean;\n\n /**\n * If `true`, the timepicker is readonly and can't be changed.\n */\n @Input() readonlyInputs: boolean;\n\n /**\n * The size of inputs and buttons.\n */\n @Input() size: 'small' | 'medium' | 'large';\n @Input() max: number;\n @Input() showArrow = true;\n\n disabled: boolean;\n model: JcTime;\n\n private _hourStep: number;\n private _minuteStep: number;\n private _secondStep: number;\n\n get isSmallSize(): boolean {\n return this.size === 'small';\n }\n\n get isLargeSize(): boolean {\n return this.size === 'large';\n }\n\n /**\n * The number of hours to add/subtract when clicking hour spinners.\n */\n @Input()\n set hourStep(step: number) {\n this._hourStep = this.isInteger(step) ? step : this.config.hourStep;\n }\n\n get hourStep(): number {\n return this._hourStep;\n }\n\n /**\n * The number of minutes to add/subtract when clicking minute spinners.\n */\n @Input()\n set minuteStep(step: number) {\n this._minuteStep = this.isInteger(step) ? step : this.config.minuteStep;\n }\n\n get minuteStep(): number {\n return this._minuteStep;\n }\n\n /**\n * The number of seconds to add/subtract when clicking second spinners.\n */\n @Input()\n set secondStep(step: number) {\n this._secondStep = this.isInteger(step) ? step : this.config.secondStep;\n }\n\n get secondStep(): number {\n return this._secondStep;\n }\n\n constructor(\n private config: NgbTimepickerConfig,\n private ngbTimeAdapter: NgbTimeAdapter,\n private cd: ChangeDetectorRef,\n public i18n: NgbTimepickerI18n\n ) {\n this.meridian = false;\n this.spinners = true;\n this.seconds = false;\n this.hourStep = 1;\n this.minuteStep = 1;\n this.secondStep = 1;\n this.disabled = false;\n this.readonlyInputs = false;\n this.size = 'medium';\n }\n\n // eslint-disable-next-line\n onChange = (_: any) => {};\n // eslint-disable-next-line\n onTouched = () => {};\n\n writeValue(value: any) {\n const structValue = this.ngbTimeAdapter.fromModel(value);\n this.model = structValue\n ? new JcTime(structValue.hour, structValue.minute, structValue.second)\n : new JcTime();\n if (!this.seconds && (!structValue || !this.isNumber(structValue.second))) {\n this.model.second = 0;\n }\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n changeHour(step: number) {\n this.model.changeHour(step);\n if (isNaN(this.model.minute)) {\n this.model.minute = 0;\n }\n this.propagateModelChange();\n }\n\n changeMinute(step: number) {\n this.model.changeMinute(step);\n this.propagateModelChange();\n }\n\n changeSecond(step: number) {\n this.model.changeSecond(step);\n this.propagateModelChange();\n }\n\n updateHour(newVal: string) {\n const isPM = this.model.hour >= 12;\n const enteredHour = this.toInteger(newVal);\n if (\n this.meridian &&\n ((isPM && enteredHour < 12) || (!isPM && enteredHour === 12))\n ) {\n this.model.updateHour(enteredHour + 12);\n } else {\n this.model.updateHour(enteredHour);\n }\n if (isNaN(this.model.minute)) {\n this.model.minute = 0;\n }\n\n this.propagateModelChange();\n }\n\n updateMinute(newVal: string) {\n this.model.updateMinute(this.toInteger(newVal));\n this.propagateModelChange();\n }\n\n updateSecond(newVal: string) {\n this.model.updateSecond(this.toInteger(newVal));\n this.propagateModelChange();\n }\n\n toggleMeridian() {\n if (this.meridian) {\n this.changeHour(12);\n }\n }\n\n formatInput(input: HTMLInputElement) {\n input.value = input.value.replace(FILTER_REGEX, '');\n }\n\n formatHour(value: number) {\n if (this.isNumber(value)) {\n return this.padNumber(value);\n } else {\n return this.padNumber(NaN);\n }\n }\n\n formatMinSec(value: number) {\n return this.padNumber(value);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes['seconds'] &&\n !this.seconds &&\n this.model &&\n !this.isNumber(this.model.second)\n ) {\n this.model.second = 0;\n this.propagateModelChange(false);\n }\n }\n\n private propagateModelChange(touched = true) {\n if (touched) {\n this.onTouched();\n }\n if (this.model.isValid(this.seconds)) {\n if (this.max && this.model.hour * 60 + this.model.minute > this.max) {\n this.model.hour = Math.floor(this.max / 60);\n this.model.minute = this.max % 60;\n }\n this.onChange(\n this.ngbTimeAdapter.toModel({\n hour: this.model.hour,\n minute: this.model.minute,\n second: this.model.second,\n })\n );\n } else {\n this.onChange(this.ngbTimeAdapter.toModel(null));\n }\n }\n\n private toInteger(value: any): number {\n return parseInt(`${value}`, 10);\n }\n\n private isNumber(value: any): value is number {\n return !isNaN(this.toInteger(value));\n }\n\n private isInteger(value: any): value is number {\n return (\n typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n );\n }\n\n private padNumber(value: number) {\n if (this.isNumber(value)) {\n return value < 10 ? `0${value}` : value;\n } else {\n return '';\n }\n }\n}\n","
    \n
    \n
    \n \n \n Increment hours\n \n \n \n \n Decrement hours\n \n
    \n
    :
    \n
    \n \n \n Increment minutes\n \n \n \n \n Decrement minutes\n \n
    \n
    :
    \n
    \n \n \n Increment seconds\n \n \n \n \n Decrement seconds\n \n
    \n
    \n
    \n \n = 12; else am\"\n i18n=\"@@ngb.timepicker.PM\"\n >{{ i18n.getAfternoonPeriod() }}\n {{\n i18n.getMorningPeriod()\n }}\n \n
    \n
    \n
    \n","import { NgbTime } from '@ng-bootstrap/ng-bootstrap/timepicker/ngb-time';\n\nexport class JcTime implements NgbTime {\n hour: number;\n minute: number;\n second: number;\n\n constructor(hour?: number, minute?: number, second?: number) {\n this.hour = toInteger(hour);\n this.minute = toInteger(minute);\n this.second = toInteger(second);\n }\n\n changeHour(step = 1) {\n this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step);\n }\n\n updateHour(hour: number) {\n if (isNumber(hour)) {\n this.hour = hour < 0 ? 0 : hour;\n } else {\n this.hour = NaN;\n }\n }\n\n changeMinute(step = 1) {\n this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step);\n }\n\n updateMinute(minute: number) {\n if (isNumber(minute)) {\n this.minute = minute % 60 < 0 ? 60 + (minute % 60) : minute % 60;\n this.changeHour(Math.floor(minute / 60));\n } else {\n this.minute = NaN;\n }\n }\n\n changeSecond(step = 1) {\n this.updateSecond((isNaN(this.second) ? 0 : this.second) + step);\n }\n\n updateSecond(second: number) {\n if (isNumber(second)) {\n this.second = second < 0 ? 60 + (second % 60) : second % 60;\n this.changeMinute(Math.floor(second / 60));\n } else {\n this.second = NaN;\n }\n }\n\n isValid(checkSecs = true) {\n return (\n isNumber(this.hour) &&\n isNumber(this.minute) &&\n (checkSecs ? isNumber(this.second) : true)\n );\n }\n\n toString() {\n return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`;\n }\n}\n\nconst toInteger = (value: any): number => parseInt(`${value}`, 10);\n\nconst isNumber = (value: any): value is number => !isNaN(toInteger(value));\n","import { Injectable } from '@angular/core';\nimport { NgbTimeAdapter, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\n\n@Injectable()\nexport class NgbTimeMinutesAdapter extends NgbTimeAdapter {\n fromModel(value: number | null): NgbTimeStruct | null {\n if (!value && value !== 0) {\n return null;\n }\n return {\n hour: Math.floor(value / 60),\n minute: value % 60,\n second: 0,\n };\n }\n\n toModel(time: NgbTimeStruct | null): number | null {\n return time !== null ? time.hour * 60 + time.minute : null;\n }\n}\n","import { Component, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';\nimport { WorkshopUser, JobcardTravel } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Util } from 'src/app/core/util/util';\nimport { locales } from 'src/locale/locales';\nimport { JobcardItemDto } from 'src/api/djc-booking-service';\n\n@Component({\n selector: 'jc-edit-field-modal',\n templateUrl: './edit-field-modal.component.html',\n styleUrls: ['./edit-field-modal.component.scss'],\n})\nexport class EditFieldModalComponent implements OnInit {\n @Input() value: string;\n @Input() field: string;\n @Input() title: string;\n @Input() technicianLabel: string;\n @Input() reasonLabel: string;\n @Input() distanceLabel: string;\n @Input() durationLabel: string;\n @Input() estimatedDistanceLabel: string;\n @Input() estimatedDurationLabel: string;\n @Input() techniciansList: WorkshopUser[];\n @Input() reasonsList: string[];\n @Input() travelArrayData: JobcardTravel;\n @Input() technician: number;\n @Input() reason: string;\n @Input() country: string;\n @Input() isTravel = false;\n @Input() maxLength = 1000;\n @Input() isActivityName: boolean;\n @Input() JobcardItems: JobcardItemDto[];\n\n distance: number;\n duration: number;\n travelDurationMinutes: number;\n estimatedDistance: number;\n estimatedDuration: number;\n otherReason: string;\n measurementUnit = 'KM';\n alertMessage: string;\n rows: number;\n jobcardItemActivityNameExist = false;\n\n constructor(\n public activeModal: NgbActiveModal,\n @Inject(LOCALE_ID) public localeId: string\n ) {}\n\n adjustRows(event: Event): void {\n const textarea = event.target as HTMLTextAreaElement;\n const lineCount = Math.min(10, Math.ceil(textarea?.textLength / 50));\n this.rows = lineCount;\n }\n\n ngOnInit(): void {\n this.travelDurationMinutes = this.travelArrayData?.duration / 60;\n this.measurementUnit = locales.find(\n (locale) => locale.id.toUpperCase() === this.localeId.toUpperCase()\n ).measurementUnits;\n this.alertMessage = Util.stringFormat(\n $localize`Field can be max [0] characters long.`,\n this.maxLength\n );\n const lineCount = Math.min(10, Math.ceil(this.value?.length / 50));\n this.rows = lineCount;\n //Code added for duplicate activity name check\n this.JobcardItems=this.JobcardItems?.filter(ji=>ji.name!==this.value);\n }\n\n onSubmit() {\n if (this.travelArrayData?.distance) {\n this.distance = this.travelArrayData.distance;\n }\n if (this.travelDurationMinutes) {\n this.duration = this.travelDurationMinutes * 60;\n }\n\n if (this.technician) {\n this.technician = this.technician;\n }\n if (this.reason) {\n this.reason = this.reason;\n }\n if (this.travelArrayData?.otherReason) {\n this.otherReason = this.travelArrayData.otherReason;\n }\n if (this.travelArrayData?.estimatedDistance) {\n this.estimatedDistance = this.travelArrayData.estimatedDistance;\n }\n if (this.travelArrayData?.estimatedDuration) {\n this.estimatedDuration = this.travelArrayData.estimatedDuration;\n }\n //Code added for duplicate activity name check - Start\n this.jobcardItemActivityNameExist = false;\n this.JobcardItems?.forEach((jb) => {\n if (jb.name === this.value) {\n this.jobcardItemActivityNameExist = true;\n }\n });\n //Code added for duplicate activity name check - End\n const responsedata = {\n value: this.value,\n distance: this.distance,\n duration: this.duration,\n technician: this.technician,\n reason: this.reason,\n otherReason: this.otherReason,\n estimatedDistance: this.estimatedDistance,\n estimatedDuration: this.estimatedDuration,\n };\n //Code added for duplicate activity name check\n if(!this.jobcardItemActivityNameExist){\n this.activeModal.close(responsedata);\n } \n }\n\n checkNegativeValue(value: any, field: string) {\n if (value && (isNaN(value) || value < 0)) {\n if (field === 'distance' && this.travelArrayData.distance) {\n this.travelArrayData.distance = 0;\n }\n if (\n field === 'estimatedDistance' &&\n this.travelArrayData.estimatedDistance\n ) {\n this.travelArrayData.estimatedDistance = 0;\n }\n }\n }\n}\n","
    \n

    \n {{ title }}\n

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n invalid entry\n
    \n
    \n
    \n {{ alertMessage }}\n
    \n maxLength }\"\n >\n {{ value?.length }}/{{ maxLength }}\n
    \n
    \n
    \n\n
    \n \n
    \n \n \n \n \n \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n\n
    \n \n \n
    \n \n\n
    \n \n Cancel\n \n \n Save\n \n
    \n
    \n","import { Component, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport {\n JobcardItem,\n OperationConsumable,\n OperationPart,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Util } from 'src/app/core/util/util';\nimport { JobcardItemCollapsable } from '../activities/activities.component';\nimport { KitPartDetailsModalComponent } from '../edit-maintenance-modal/kit-part-details-modal/kit-part-details-modal.component';\nimport { SortableDirective, SortEvent } from '../sortable/sortable.directive';\n\ninterface PartList {\n operationId: number;\n operationName: string;\n part: OperationPart;\n}\ninterface ConsumableList {\n operationId: number;\n operationName: string;\n consumable: OperationConsumable;\n}\n@Component({\n selector: 'jc-edit-maintenance-activity-modal',\n templateUrl: './edit-maintenance-activity-modal.component.html',\n styleUrls: ['./edit-maintenance-activity-modal.component.scss'],\n})\nexport class EditMaintenanceActivityModalComponent implements OnInit {\n @ViewChildren(SortableDirective) headers: QueryList;\n jobcardItem: JobcardItemCollapsable;\n part: PartList;\n partList: PartList[] = [];\n consumableList: ConsumableList[] = [];\n consumable: ConsumableList;\n updatedJobcardItem: JobcardItemCollapsable;\n editedJobcardItem: JobcardItemCollapsable;\n kitCode: string[]=[];\n areSeveralPartsNotKit: boolean;\n kitQuantity: number;\n areSeveralConsumables: boolean;\n constructor(\n public activeModal: NgbActiveModal,\n private modalService: NgbModal\n ) {}\n\n ngOnInit(): void {\n this.updatedJobcardItem = JSON.parse(JSON.stringify(this.jobcardItem));\n\n this.updatedJobcardItem?.operations?.forEach((operation) => {\n this.areSeveralPartsNotKit =\n operation.parts?.filter((part: OperationPart) => !part.part.isKit)\n .length > 1;\n\n const kitPart = operation.parts?.find(\n (part: OperationPart) => part.part.isKit\n );\n if (kitPart) {\n this.kitCode.push(kitPart?.part?.code);\n this.kitQuantity = kitPart.quantity;\n }\n operation.parts?.forEach((part) => {\n if (part.part?.isKit && !operation.isKitComplete) {\n operation.parts.splice(operation.parts.indexOf(part), 1);\n }\n });\n operation?.parts?.forEach((part) => {\n this.partList.push({\n operationId: operation.id,\n operationName: operation?.code + ' - ' + operation?.label,\n part,\n });\n });\n operation?.consumables?.forEach((consumable) => {\n this.consumableList.push({\n operationId: operation.id,\n operationName: operation?.code + ' - ' + operation?.label,\n consumable,\n });\n this.areSeveralConsumables = operation.consumables?.length > 1;\n // disable the autoselect first consumbale\n // if (this.areSeveralConsumables) {\n // operation.consumables[0].selected = true;\n // }\n });\n });\n }\n\n showKitPart(part: OperationPart) {\n const modalRef = this.modalService.open(KitPartDetailsModalComponent, {\n size: 'xl',\n });\n if (part?.part?.isKit) {\n modalRef.componentInstance.kitPart = part?.part?.kitPart;\n }\n }\n\n onPartChange(name: string, event: any) {\n this.updatedJobcardItem?.operations?.forEach((operation) => {\n if (operation?.code + ' - ' + operation?.label === name) {\n operation.useKitPart = false;\n operation?.parts?.forEach((part: OperationPart) => {\n if (part?.part?.code === event.target.value) {\n if (event.target.checked) {\n part.selected = true;\n } else {\n part.selected = false;\n }\n if (this.kitCode?.includes(part.part.code)) {\n operation.useKitPart = true;\n }\n }\n });\n }\n });\n }\n\n onConsumableChange(name: string, event: any) {\n this.updatedJobcardItem?.operations?.forEach((operation) => {\n if (operation?.code + ' - ' + operation?.label === name) {\n operation?.consumables?.forEach((cons: OperationConsumable) => {\n if (cons?.consumable?.code === event.target.value) {\n if (event.target.checked) {\n cons.selected = true;\n } else {\n cons.selected = false;\n }\n }\n });\n }\n });\n }\n\n onSort(sortEvent: SortEvent) {\n if (this.headers) {\n this.headers.forEach((header) => {\n if (header.jcSortable !== sortEvent.column) {\n header.direction = '';\n }\n });\n }\n Util.sortTable(this.partList, sortEvent);\n }\n\n onSortConsumables(sortEvent: SortEvent) {\n if (this.headers) {\n this.headers.forEach((header) => {\n if (header.jcSortable !== sortEvent.column) {\n header.direction = '';\n }\n });\n }\n Util.sortTable(this.consumableList, sortEvent);\n }\n\n onSubmit() {\n this.activeModal.close(this.updatedJobcardItem);\n }\n}\n","
    \n

    \n {{ updatedJobcardItem?.name }}\n

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n \n \n \n Operation\n \n Code\n \n Quantity\n \n \n \n \n \n \n \n {{ part?.operationName }}\n \n \n {{ part?.part?.part?.code }}\n \n - {{ part?.part?.part?.description }}\n \n\n \n \n \n \n \n \n \n {{ part?.part?.quantity }}\n \n \n \n
    \n No part specified.\n
    \n
    \n
    \n \n \n \n \n \n Operation\n \n \n Label\n \n \n Quantity\n \n \n \n \n \n \n {{ consumable?.operationName }}\n {{ consumable?.consumable?.consumable?.code }}\n {{ consumable?.consumable?.quantity }}\n \n \n
    \n No consumables specified.\n
    \n
    \n
    \n
    \n \n Cancel\n \n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { Operation, OperationConsumable, OperationPart } from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { environment } from 'src/environments/environment';\nimport { KitPartDetailsModalComponent } from './kit-part-details-modal/kit-part-details-modal.component';\n\ninterface CheckedPart {\n code: string;\n description: string;\n checked: boolean;\n}\n\n@Component({\n selector: 'jc-edit-maintenance-modal',\n templateUrl: './edit-maintenance-modal.component.html',\n styleUrls: ['./edit-maintenance-modal.component.scss'],\n})\nexport class EditMaintenanceModalComponent implements OnInit {\n operation: Operation;\n updatedOperation: Operation;\n kitCode: string;\n areSeveralPartsNotKit: boolean;\n kitQuantity: number;\n partsWithKit: CheckedPart[] = [];\n areSeveralConsumables: boolean;\n environment = environment;\n\n constructor(\n public activeModal: NgbActiveModal,\n private modalService: NgbModal\n ) {}\n\n ngOnInit(): void {\n this.updatedOperation = JSON.parse(JSON.stringify(this.operation));\n this.areSeveralPartsNotKit =\n this.updatedOperation.parts?.filter(\n (part: OperationPart) => !part.part.isKit\n ).length > 1;\n\n const kitPart = this.updatedOperation.parts?.find(\n (part: OperationPart) => part.part.isKit\n );\n if (kitPart) {\n this.kitCode = kitPart.part.code;\n this.kitQuantity = kitPart.quantity;\n }\n\n this.updatedOperation.parts?.forEach((part) => {\n if (part.part?.isKit && !this.operation.isKitComplete) {\n this.updatedOperation.parts.splice(\n this.updatedOperation.parts.indexOf(part),\n 1\n );\n }\n });\n\n this.areSeveralConsumables = this.updatedOperation.consumables?.length > 1;\n if (this.areSeveralConsumables && !this.environment.isIveco) {\n this.updatedOperation.consumables[0].selected = true;\n }\n }\n\n onPartChange(event: any) {\n this.updatedOperation.useKitPart = false;\n this.updatedOperation.parts.forEach((part: OperationPart) => {\n if (part.part.code === event.target.value) {\n part.selected = true;\n if (part.part.code === this.kitCode) {\n this.updatedOperation.useKitPart = true;\n }\n } else {\n part.selected = false;\n }\n });\n }\n onConsumableChange(event: any) {\n this.updatedOperation.consumables.forEach((cons: OperationConsumable) => {\n if (cons.consumable.code + cons.quantity === event.target.value) {\n cons.selected = true;\n } else {\n cons.selected = false;\n }\n });\n }\n\n showKitPart() {\n const modalRef = this.modalService.open(KitPartDetailsModalComponent, {\n size: 'xl',\n });\n modalRef.componentInstance.kitPart = this.operation.parts.find(\n (part) => part.part.isKit\n ).part.kitPart;\n }\n\n onSubmit() {\n this.activeModal.close(this.updatedOperation);\n }\n}\n","
    \n

    \n {{ operation?.code }} - {{ operation?.label }}\n

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n \n \n Code\n Quantity\n \n \n \n \n \n \n \n {{ part.part.code }}\n \n - {{ part.part.description }}\n \n\n \n \n \n \n \n \n \n {{ part.quantity }}\n \n \n \n \n No part specified.\n
    \n
    \n
    \n \n \n \n \n Label\n Quantity\n \n \n \n \n \n \n {{ consumable.consumable?.code }}\n {{ consumable.quantity }}\n \n \n \n No consumables specified.\n
    \n \n \n
    \n \n Cancel\n \n \n
    \n
    \n","import { Component } from '@angular/core';\nimport { KitPart } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-kit-part-details-modal',\n templateUrl: './kit-part-details-modal.component.html',\n styleUrls: ['./kit-part-details-modal.component.scss'],\n})\nexport class KitPartDetailsModalComponent {\n kitPart: KitPart[];\n\n constructor(public activeModal: NgbActiveModal) {}\n}\n","
    \n

    Kit details

    \n \n ×\n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Kit Code :Code :Label :Quantity :
    {{ part.compKitCode }}{{ part.compPnCode }}{{ part.compPnLabel }}{{ part.compPnQty }}
    \n
    \n
    \n \n Close\n \n
    \n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n// import { JobcardItem, OperationPart, Part } from '@models-jobcard';\nimport { Observable, of } from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n switchMap,\n tap,\n} from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { ToastrService } from 'ngx-toastr';\nimport { GetPartsRequestParams, PartsService } from 'src/api/djc-booking-service/api/parts.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { JobcardItemDto } from 'src/app/model/jobcardItemDtoFE';\nimport { JobcardItemOperation } from 'src/app/model/jobcardItemOperationFE';\nimport { PartDto } from 'src/app/model/partDtoFE';\nimport { JobcardItemOperationPartDto } from 'src/app/model/jobcardItemOperationPartDtoFE';\nimport { jobcardItemTypeEnum } from '../../constants/constants';\n\n@Component({\n selector: 'jc-add-part',\n templateUrl: './add-part.component.html',\n styleUrls: ['./add-part.component.scss'],\n})\nexport class AddPartComponent implements OnInit {\n /** Available parts in the workshop. */\n @Input() parts: PartDto[] = [];\n @Input() itemIndex = 0;\n @Input() operationPart: JobcardItemOperationPartDto = null;\n @Input() jobcardItem: JobcardItemDto;\n @Output()\n operationPartChange: EventEmitter = new EventEmitter();\n types = jobcardItemTypeEnum;\n partModel: PartDto;\n searchingPart = false;\n operationParts: JobcardItemOperationPartDto[];\n environment = environment;\n workshopId: number;\n constructor(\n private elRef: ElementRef,\n private partService: PartsService,\n private toasterService: ToastrService,\n private userService: UserAdminService\n ) {}\n\n ngOnInit(): void {\n if (this.operationPart?.part?.code) {\n this.partModel = this.operationPart.part;\n }\n this.userService.getUser().subscribe((user) => {\n this.workshopId = user.workshopId;\n });\n }\n\n searchPart = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n tap(() => (this.searchingPart = true)),\n switchMap((term) => {\n if (term.length < 3) {\n return of([]);\n }\n const params: GetPartsRequestParams = {\n noLoader: true,\n code: term.toUpperCase(),\n page: 0,\n size: 100,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken\n };\n return this.partService.getParts(params).pipe(catchError(() => of([])));\n }),\n tap(() => (this.searchingPart = false))\n );\n\n resultFormatPartValue(value: PartDto): string {\n return (\n value.code +\n (value.description ? (value.code ? ' - ' : '') + value.description : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '')\n );\n }\n\n inputFormatPartValue(value: PartDto): string {\n return (\n value.code +\n (value.description ? (value.code ? ' - ' : '') + value.description : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '')\n );\n }\n\n partChanged(data: any): void {\n if (data.id) {\n this.operationPart.part = data;\n } else {\n // Free text\n this.operationPart.part = {\n id: -1,\n description: data,\n code: '',\n };\n }\n this.operationPartChange.emit(this.operationPart);\n }\n\n inputCheck(event: any): boolean {\n const pattern = /^\\d*\\.?\\d*$/;\n const result = pattern.test(event.key);\n if (event == null) {\n return pattern.test(event.toString() + event.key);\n } else {\n if (result === false) {\n this.toasterService.warning(\n $localize`Please Enter Number and Decimal Only. Characters are not Allowed Here`\n );\n }\n return result;\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const input = event.target as HTMLInputElement;\n if (event.key === 'ArrowDown' && Number(input.value) === 0) {\n event.preventDefault();\n }\n }\n\n quantityChanged(): void {\n if (isNaN(this.operationPart.quantity) || !this.operationPart.quantity) {\n this.operationPart.quantity = 0;\n }\n if (!environment.isIveco && this.operationPart.quantity > 99) {\n this.operationPart.quantity = 99;\n }\n if (!environment.isIveco) {\n this.operationPartChange.emit(this.operationPart);\n }\n }\n\n increment(): void {\n if (this.jobcardItem.type === 'pip' && environment.isIveco) {\n if (this.operationPart.quantity <= this.operationPart.maxQuantity - 1) {\n this.operationPart.quantity++;\n this.operationPart.quantity =\n Math.round(this.operationPart.quantity * 100) / 100;\n }\n } else {\n this.operationPart.quantity++;\n this.operationPart.quantity =\n Math.round(this.operationPart.quantity * 100) / 100;\n }\n if (\n !environment.isIveco &&\n (this.operationPart.quantity > 99 || isNaN(this.operationPart.quantity))\n ) {\n this.operationPart.quantity = 99;\n }\n this.operationPart.isNotAvailable = false;\n this.operationPart.isAvailableAtOtherLocation = false;\n this.operationPart.isAvailableAtHomeLocation = false;\n if (!environment.isIveco) {\n this.operationPartChange.emit(this.operationPart);\n }\n }\n\n decrement(): void {\n if (\n this.operationPart.quantity < 0 ||\n isNaN(this.operationPart.quantity) ||\n !this.operationPart.quantity ||\n this.operationPart.quantity < 1\n ) {\n this.operationPart.quantity = 0;\n }\n if (this.operationPart?.quantity !== 0) {\n this.operationPart.quantity--;\n }\n this.operationPart.quantity =\n Math.round(this.operationPart.quantity * 100) / 100;\n this.operationPart.isNotAvailable = false;\n this.operationPart.isAvailableAtOtherLocation = false;\n this.operationPart.isAvailableAtHomeLocation = false;\n if (!environment.isIveco) {\n this.operationPartChange.emit(this.operationPart);\n }\n }\n\n scrollToItem(event: any) {\n const elements = this.elRef.nativeElement.querySelectorAll('.active');\n if (elements?.length > 0) {\n elements[0].scrollIntoView();\n }\n }\n}\n","
    \n
    \n
    \n \n \n \n \n \n \n
    \n -1 && operationPart?.part?.code,\n 'is-invalid': operationPart?.part?.id === -1\n }\"\n [ngModel]=\"operationPart.part\"\n (ngModelChange)=\"partChanged($event)\"\n [ngbTypeahead]=\"searchPart\"\n (keydown.ArrowDown)=\"scrollToItem($event)\"\n (keydown.ArrowUp)=\"scrollToItem($event)\"\n [resultFormatter]=\"resultFormatPartValue\"\n [inputFormatter]=\"inputFormatPartValue\"\n #instance=\"ngbTypeahead\"\n i18n-placeholder\n />\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n \n\n
    \n this.operationPart.maxQuantity - 1 &&\n environment.isIveco\n \"\n >\n \n \n \n \n
    \n
    \n
    \n\n","import { HttpErrorResponse } from '@angular/common/http';\nimport {\n Component,\n ElementRef,\n OnInit,\n Renderer2,\n ViewEncapsulation,\n AfterViewInit,\n} from '@angular/core';\nimport {\n SearchOperationsByLanguageRequestParams,\n SrtService,\n} from '@api-smartview';\nimport {\n ApiError,\n Appointment,\n ConsumableAssociation,\n JobcardPartsBacklog,\n Operation,\n OperationPart,\n Part,\n PartAvailability,\n PartReturn,\n PaymentType,\n Workshop,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NgbTime } from '@ng-bootstrap/ng-bootstrap/timepicker/ngb-time';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, of } from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n switchMap,\n tap,\n} from 'rxjs/operators';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { OperationsService } from 'src/app/core/operations/operations.service';\nimport { WorkshopService } from 'src/app/core/workshop/workshop.service';\nimport { environment } from 'src/environments/environment';\nimport { SrtOperation } from '@models-smartview';\nimport { Util } from 'src/app/core/util/util';\nimport { FictitiousMaterial } from 'src/api/document/model/fictitiousMaterial';\nimport { SuperseededPartModalComponent } from './superseeded-part-modal/superseeded-part-modal.component';\nimport { SrtPartAssosiatedModalComponent } from './srt-part-assosiated-modal/srt-part-assosiated-modal.component';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { WorkshopDto } from 'src/api/djc-admin-service';\nimport { GetPartsReturnRequestParams, PartsService } from 'src/api/djc-booking-service/api/parts.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { DmsControllerService, GetPartsAvailableRequestParams } from 'src/api/djc-dms-service/api/dmsController.service';\nimport { JobcardItemOperationPartDto } from 'src/app/model/jobcardItemOperationPartDtoFE';\nimport { JobcardItemOperationDto } from 'src/app/model/jobcardItemOperationDtoFE';\nimport { JobcardItemDto } from 'src/app/model/jobcardItemDtoFE';\nimport { PartDto } from 'src/app/model/partDtoFE';\nimport { PaymentTypeTypeEnum } from '../constants/constants';\nimport { CreateOrUpdateCspsTrackerRequestParams, CreateOrUpdateDmsTrackerRequestParams, PartsTrackerService } from 'src/api/djc-booking-service/api/partsTracker.service';\nimport { CSPSControllerService, GetPartsAvailabilityInCspsRequestParams } from 'src/api/djc-booking-service/api/cSPSController.service';\nimport { AppointmentsService, UpdateAppointmentRequestParams } from 'src/api/djc-booking-service/api/appointments.service';\nimport { NewAppointmentService } from 'src/app/appointment/new-appointment.service';\nimport { MappingService } from 'src/app/core/mapping/mapping.service';\nimport { NotificationService } from 'src/api/djc-booking-service/api/notification.service';\n\n\nexport interface OperationPartWithSRT extends JobcardItemOperationPartDto {\n srtOperations?: SrtOperation[];\n displayArray?: SrtOperation[];\n}\n\n@Component({\n selector: 'jc-edit-operation-modal',\n templateUrl: './edit-operation-modal.component.html',\n styleUrls: ['./edit-operation-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EditOperationModalComponent implements OnInit, AfterViewInit {\n environment = environment;\n appointment: Appointment;\n operation: JobcardItemOperationDto;\n action: 'add' | 'modify' = 'add';\n operationNameModel: any;\n srtOperations: JobcardItemOperationDto[] = [];\n availableParts: Part[] = [];\n checkAvailableParts: OperationPartWithSRT[] = [];\n /** Parts that can be returned in the workshop. */\n partsReturn: PartReturn[] = [];\n partsValid = false;\n workshop: WorkshopDto;\n jobcardItem: JobcardItemDto;\n etim: string;\n part: Part;\n operationPart: OperationPartWithSRT;\n searchingOperations = false;\n partCsps: PartAvailability[] = [];\n cspsParts: PartAvailability;\n checkAvailablePartsInCsps: PartAvailability[] = [];\n dmsOperations: JobcardItemOperationDto[] = [];\n jobcardPartsBacklog?: JobcardPartsBacklog[] = [];\n validPart = false;\n newOperations: SrtOperation[] = [];\n //151599 | AG - Filter operations belonging to group 01\n noOperationGroupAG = ['01'];\n standAloneMode: boolean;\n paymentTypesEnum = PaymentTypeTypeEnum;\n consumableAssociation: ConsumableAssociation[] = [];\n stockTooltip: any;\n\n fictitiousMaterialOptions: {\n id: string;\n name: string;\n }[] = [\n { id: FictitiousMaterial.OIL, name: $localize`OIL` },\n { id: FictitiousMaterial.ANTIFREEZE, name: $localize`ANTIFREEZE` },\n {\n id: FictitiousMaterial.MISCELLANEOUS,\n name: $localize`MISCELLANEOUS`,\n },\n { id: FictitiousMaterial.REFRIGERANT, name: $localize`REFRIGERANT` },\n { id: FictitiousMaterial.MATERIAL, name: $localize`MATERIAL` },\n { id: FictitiousMaterial.TIRE, name: $localize`TYRE` },\n ];\n\n workshopId: number;\n language: string;\n\n constructor(\n private apiAppointmentService: AppointmentsService,\n private elRef: ElementRef,\n private notificationService: NotificationService,\n public activeModal: NgbActiveModal,\n private partService: PartsService,\n private srtService: SrtService,\n private toastrService: ToastrService,\n private operationsService: OperationsService,\n private modalService: NgbModal,\n private workshopService: WorkshopAdminService,\n private appointmentService: AppointmentService,\n private dmsService: DmsControllerService,\n private cspsService: CSPSControllerService,\n private renderer: Renderer2,\n private partTrackerService: PartsTrackerService,\n private userAdminService: UserAdminService,\n private newAppointmentService: NewAppointmentService,\n private userService: UserAdminService,\n public mappingService: MappingService\n ) {}\n\n ngOnInit(): void {\n this.userAdminService.getUser().subscribe((user) => {\n this.workshopId = user.workshopId;\n this.language = this.userService.getLanguage(user.language);\n });\n this.etimlink();\n this.workshopService.getWorkshop().subscribe((workshop) => {\n this.workshop = workshop;\n this.standAloneMode = this.workshop.standAloneMode;\n\n this.stockTooltip =\n (this.standAloneMode && !environment.isIveco) ? $localize`Local stock availability is not available` : $localize`Check Parts in DMS`;\n\n this.operationsService\n .getOperationsMaster(this.workshop.id)\n .subscribe((operations) => {\n if (operations) {\n this.dmsOperations = operations;\n }\n });\n\n const salesOrganization = workshop.workshopSalesOrganizations.find(\n (s) => s.id === this.newAppointmentService.appointmentInCreation?.salesOrganizationId\n );\n if (salesOrganization) {\n this.getPartsReturned(workshop.id, salesOrganization.salesCode);\n }\n });\n if (this.operation) {\n this.action = 'modify';\n this.operationNameModel = this.operation.label;\n if (this.operation.code) {\n this.operationNameModel =\n this.operation.code + ' - ' + this.operationNameModel;\n }\n if (this.operation.manufacturer) {\n this.operationNameModel =\n this.operationNameModel + ' - ' + this.operation.manufacturer;\n }\n if (!this.operation.officialTime) {\n this.operation.officialTime = 0;\n }\n if (!this.operation.durationTime) {\n this.operation.durationTime = 0;\n }\n } else {\n this.operation = {\n label: '',\n officialTime: 0,\n durationTime: 0,\n };\n }\n\n this.checkPartsValid();\n this.newAppointmentService\n .getConsumableAssociation()\n .subscribe((conAsssocoation: ConsumableAssociation[]) => {\n this.consumableAssociation = conAsssocoation;\n });\n }\n\n ngAfterViewInit() {\n this.renderer.selectRootElement('#operationName').focus();\n // setting up default Consumable for existing operation\n if (!environment.isIveco) {\n this.defaultConsumable();\n }\n }\n\n defaultConsumable() {\n //check and add the material type value\n this.operation?.parts.forEach((oPart: OperationPart) => {\n if (oPart?.part?.id && !oPart?.ewarrantyCode) {\n const isExistConsumData: any = this.consumableAssociation.find(\n (conAss: ConsumableAssociation) =>\n conAss.ivecoPartNumber === oPart?.part?.code\n );\n if (isExistConsumData && isExistConsumData?.ewarrantyCode) {\n oPart.ewarrantyCode = isExistConsumData.ewarrantyCode as FictitiousMaterial;\n } else {\n oPart.ewarrantyCode = FictitiousMaterial.MATERIAL;\n }\n }\n });\n }\n\n resultFormatOperationListValue(value: any) {\n if (value && typeof value === 'string') {\n return value.length > 120 ? value.substring(0, 120).concat('...') : value;\n } else {\n const res =\n value.code +\n (value.label !== undefined ? ' - ' + value.label : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '');\n return res;\n }\n }\n\n inputFormatOperationListValue(value: any) {\n if (value && typeof value === 'string') {\n return value.length > 120 ? value.substring(0, 120).concat('...') : value;\n } else {\n const res =\n value.code +\n (value.label !== undefined ? ' - ' + value.label : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '');\n return res;\n }\n }\n\n etimlink() {\n this.etim = environment.etim;\n if (this.newAppointmentService.appointmentInCreation?.vehicle?.vin) {\n if (environment.isIveco) {\n this.etim += '?VIN=' + this.newAppointmentService.appointmentInCreation.vehicle.vin;\n } else {\n this.etim +=\n '&extraSsoName=PIN&extraSsoValue=' +\n this.newAppointmentService.appointmentInCreation.vehicle.vin;\n }\n }\n }\n\n scrollToItem(event: any) {\n const elements = this.elRef.nativeElement.querySelectorAll('.active');\n if (elements?.length > 0) {\n elements[0].scrollIntoView();\n }\n }\n\n searchOperationByQuery = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n tap(() => (this.searchingOperations = true)),\n switchMap((term) => {\n if (term.replace(/\\s/g, '').length < 2) {\n return of([]);\n }\n const params: SearchOperationsByLanguageRequestParams = {\n noLoader: true,\n text: term.replace(/\\s/g, '').toUpperCase(),\n start: 0,\n limit: 100,\n vin: this.appointment?.vehicle?.vin,\n };\n return this.getOperations(\n params,\n term.replace(/\\s/g, '').toUpperCase()\n ).pipe(catchError(() => of([])));\n }),\n tap(() => (this.searchingOperations = false))\n );\n\n getOperations(\n params: SearchOperationsByLanguageRequestParams,\n text: string\n ): Observable {\n return new Observable((observer) => {\n this.srtService\n .searchOperationsByLanguage(params)\n .pipe(\n map((opp: any) =>\n opp.filter(\n (opp: any) =>\n (!environment.isIveco &&\n opp?.code &&\n !this.noOperationGroupAG.includes(opp.code.slice(0, 2))) ||\n (environment.isIveco && opp)\n )\n ),\n catchError(() => of([]))\n )\n .subscribe(\n (srts: JobcardItemOperationDto []) => {\n const res = srts;\n const dmsOpes = this.dmsOperations.filter(\n (ope) =>\n (ope.code && ope.code.toUpperCase().indexOf(text) > -1) ||\n (ope.label && ope.label.toUpperCase().indexOf(text) > -1)\n );\n dmsOpes.forEach((ope) => {\n res.push(ope);\n });\n return observer.next(res);\n },\n () => observer.next([])\n );\n });\n }\n\n searchOperation = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n map((term) =>\n term && term.length > 1\n ? this.srtOperations\n .map(\n (o) =>\n o.code +\n (o.label !== undefined ? ' - ' + o.label : '') +\n (o.manufacturer ? ' - ' + o.manufacturer : '')\n )\n .filter(\n (v) =>\n (!environment.isIveco && this.agGroupNumberCheck(v, term)) ||\n (environment.isIveco && this.checkOperation(v, term))\n )\n .splice(0, 150)\n : []\n )\n );\n\n agGroupNumberCheck(operation: any, term: any): boolean {\n return (\n !this.noOperationGroupAG.includes(operation?.slice(0, 2)) &&\n (operation.toLowerCase().indexOf(term.toLocaleLowerCase()) > -1 ||\n operation.replace(/\\s/g, '').indexOf(term.toLocaleLowerCase()) > -1)\n );\n }\n\n checkOperation(operation: any, term: any): boolean {\n return (\n operation.toLowerCase().indexOf(term.toLocaleLowerCase()) > -1 ||\n operation.replace(/\\s/g, '').indexOf(term.toLocaleLowerCase()) > -1\n );\n }\n\n operationNameChanged() {\n if (this.operationNameModel) {\n let found: any;\n if (typeof this.operationNameModel === 'string') {\n found = this.srtOperations.filter((o) => {\n const operation =\n o.code +\n (o.label !== undefined ? ' - ' + o.label : '') +\n (o.manufacturer ? ' - ' + o.manufacturer : '');\n return this.operationNameModel === operation;\n })[0];\n } else {\n found = this.operationNameModel;\n }\n if (found) {\n if (!this.operation) {\n this.operation = {\n label:\n typeof this.operationNameModel === 'string'\n ? this.operationNameModel\n : this.operationNameModel.label,\n officialTime: 0,\n durationTime: 0,\n };\n }\n this.operation.code = found.code;\n this.operation.label = found.label;\n this.operation.manufacturer = found.manufacturer;\n this.operation.srt = found.srt;\n // Converting working units to minutes\n this.operation.officialTime = found.officialTime * 6;\n this.operation.durationTime = found.officialTime * 6;\n } else {\n this.operation = {\n label:\n typeof this.operationNameModel === 'string'\n ? this.operationNameModel\n : this.operationNameModel.label,\n officialTime: 0,\n durationTime: 0,\n parts: this.operation.parts,\n consumables: this.operation.consumables,\n srt: false,\n };\n }\n } else {\n this.operation = {\n label: '',\n officialTime: 0,\n durationTime: 0,\n parts: this.operation.parts,\n consumables: this.operation.consumables,\n srt: false,\n };\n }\n this.checkPartsValid();\n }\n\n addPart() {\n const newPart: OperationPart = {\n part: {\n id: -1,\n code: '',\n description: '',\n },\n quantity: 1,\n };\n if (!environment.isIveco) {\n // Adding default material value\n newPart.ewarrantyCode = FictitiousMaterial.MATERIAL;\n }\n this.operation.parts.push(newPart);\n this.checkPartsValid();\n }\n\n removePart(index: number) {\n const part: OperationPartWithSRT = this.operation.parts[index];\n if (this.jobcardItem.causalPartCode === part.part.code) {\n this.jobcardItem.causalPartCode = undefined;\n this.jobcardItem.causalPartId = undefined;\n }\n // If the part has SRT operations to be created, remove them\n this.newOperations = this.newOperations.filter(\n (srtOperation) => srtOperation.partNumber !== part.part.code\n );\n this.operation.parts.splice(index, 1);\n this.checkPartsValid();\n }\n\n operationPartChanged(data: OperationPartWithSRT, index: number) {\n if (\n data.part?.id !== -1 &&\n this.newAppointmentService?.appointmentInCreation?.vehicle?.vin\n ) {\n this.srtService\n .searchOperationsByPart({\n partNumber: '' + data.part?.code,\n vin: this.newAppointmentService?.appointmentInCreation?.vehicle?.vin.trim(),\n marketId: this.workshop.marketId,\n })\n .subscribe(\n (lstSrtOperation) => {\n if (lstSrtOperation.length === 0 && !this.operation.code) {\n this.toastrService.warning(\n Util.stringFormat(\n $localize`No SRT Operation found for the Part [0] and the Serial Number [1]`,\n data.part?.code,\n this.newAppointmentService?.appointmentInCreation?.vehicle?.vin\n )\n );\n }\n data.srtOperations = lstSrtOperation;\n },\n (error: HttpErrorResponse) => {\n this.toastrService.error(\n $localize`Error` + ` ${error.status} - ${error.message}`\n );\n }\n );\n }\n data.quantityInStock = undefined;\n data.quantityInTransit = undefined;\n data.quantityOnOrder = undefined;\n\n //check and add the material type value\n if (!environment.isIveco && data.part?.id !== -1) {\n const isExistConsumData: any = this.consumableAssociation.find(\n (conAss: ConsumableAssociation) =>\n conAss.ivecoPartNumber === data?.part?.code\n );\n if (isExistConsumData && isExistConsumData?.ewarrantyCode) {\n data.ewarrantyCode = isExistConsumData.ewarrantyCode as FictitiousMaterial;\n }\n }\n this.operation.parts.splice(index, 1, data);\n if (data.part.partSuperseedingId) {\n this.superseededPartModal(data.part, index);\n } else {\n this.checkPartsValid();\n this.checkPartToBeReturned(this.operation.parts[index]);\n }\n }\n\n superseededPartModal(part: PartDto, index: number) {\n const modalRef = this.modalService.open(SuperseededPartModalComponent);\n modalRef.componentInstance.superseededPart = part;\n modalRef.result.then(\n (newValue) => {\n const opePart = this.operation.parts[index];\n opePart.quantityInStock = undefined;\n opePart.quantityInTransit = undefined;\n opePart.quantityOnOrder = undefined;\n opePart.part = newValue;\n this.operation.parts.splice(index, 1, opePart);\n this.checkPartsValid();\n this.checkPartToBeReturned(this.operation.parts[index]);\n },\n () => {\n this.checkPartsValid();\n this.checkPartToBeReturned(this.operation.parts[index]);\n }\n );\n }\n\n checkAllPartsToBeReturned() {\n this.operation.parts.forEach((operationPart) => {\n this.checkPartToBeReturned(operationPart);\n });\n }\n\n checkPartToBeReturned(part: OperationPartWithSRT) {\n if (this.partsReturn) {\n part.toBeReturned =\n this.partsReturn.filter(\n (elt) =>\n elt.partNumber === part.part.code &&\n elt.quantity - elt.counterQuantity > part.quantity &&\n this.newAppointmentService.appointmentInCreation.jobcard.failureDate &&\n moment(\n this.newAppointmentService.appointmentInCreation.jobcard.failureDate\n ).isBetween(elt.startDate, elt.endDate)\n ).length > 0;\n } else {\n part.toBeReturned = false;\n }\n }\n\n getPartsReturned(workshopId: number, salesOrganization: string) {\n const failureDate = moment(\n this.newAppointmentService.appointmentInCreation.jobcard.failureDate\n ).format('YYYY-MM-DD');\n const partsReturnParams: GetPartsReturnRequestParams = {\n workshopId,\n failureDate,\n salesOrganization,\n authorization: this.userAdminService.accessToken,\n noLoader: true,\n };\n this.partService\n .getPartsReturn(partsReturnParams)\n .subscribe((partsReturn) => {\n this.partsReturn = partsReturn;\n this.checkAllPartsToBeReturned();\n });\n }\n\n displaySrtOperations() {\n // Display the green wrench button only if at least one part has SRT operations\n let display = false;\n const notEmptyList = this.operation.parts.find(\n (operationPart: OperationPartWithSRT) =>\n operationPart.srtOperations?.length > 0\n );\n if (notEmptyList) {\n display = true;\n }\n return display;\n }\n\n onSubmit() {\n // Create new Jobcard operations from SRT operations\n const operationsList: Operation[] = [];\n this.newOperations?.forEach((newSrtOperation: SrtOperation) => {\n const newOperation: Operation = {\n code: '',\n label: '',\n officialTime: 0,\n durationTime: 0,\n srt: true,\n };\n newOperation.code = newSrtOperation.code;\n newOperation.label = newSrtOperation.description;\n // Converting working units to minutes\n newOperation.officialTime = newSrtOperation.repairTime * 6;\n newOperation.durationTime = newSrtOperation.repairTime * 6;\n operationsList.push(newOperation);\n });\n const responsedata = {\n operation: this.operation,\n operationsList,\n };\n this.activeModal.close(responsedata);\n }\n\n checkPartsAvailabilityInDms(index: number) {\n const operationPart: OperationPartWithSRT = this.operation.parts[index];\n this.checkAvailableParts = [];\n this.checkAvailableParts.push(operationPart);\n const dmsParam: CreateOrUpdateDmsTrackerRequestParams = {\n noLoader: true,\n authorization: this.userAdminService.accessToken,\n partsTrackerDmsDto: {\n logDate: moment().toISOString(),\n nonAvailability: 1,\n partId: operationPart.part.id,\n workshopId: this.workshop.id,\n },\n };\n\n const params: GetPartsAvailableRequestParams = {\n workshopId: this.workshopId,\n authorization: this.userAdminService.accessToken,\n jobcardItemOperationPartDto: this.checkAvailableParts,\n };\n this.dmsService\n .getPartsAvailable(params)\n .subscribe((opePart: OperationPartWithSRT[]) => {\n if (opePart.length > 0) {\n const part = opePart[0];\n this.operation.parts[index].isAvailableAtHomeLocation = false;\n this.operation.parts[index].isAvailableAtOtherLocation = false;\n this.operation.parts[index].isNotAvailable = false;\n\n this.operation.parts[index].quantityInStock = part.quantityInStock\n ? part.quantityInStock\n : 0;\n this.operation.parts[index].quantityInTransit = part.quantityInTransit\n ? part.quantityInTransit\n : 0;\n this.operation.parts[index].quantityOnOrder = part.quantityOnOrder\n ? part.quantityOnOrder\n : 0;\n this.operation.parts[index].jobcardItemOperationPartLocationList =\n part.jobcardItemOperationPartLocationList;\n this.operation.parts[index].isHomeLocation = part.isHomeLocation;\n // Check if parts are available at home location\n let quantityOnOtherWorkshop = 0;\n part.jobcardItemOperationPartLocationList?.forEach((location) => {\n if (\n location.locationId === this.workshop.sapCode &&\n location.quantityInStock >= operationPart.quantity\n ) {\n this.operation.parts[index].isAvailableAtHomeLocation = true;\n }\n if (location.locationId !== this.workshop.sapCode) {\n quantityOnOtherWorkshop += location.quantityInStock;\n }\n });\n if (\n !this.operation.parts[index].isAvailableAtHomeLocation &&\n quantityOnOtherWorkshop > 0\n ) {\n this.operation.parts[index].isAvailableAtOtherLocation = true;\n }\n if (\n !part?.jobcardItemOperationPartLocationList ||\n (!this.operation.parts[index].isAvailableAtHomeLocation &&\n !this.operation.parts[index].isAvailableAtOtherLocation)\n ) {\n this.operation.parts[index].isNotAvailable = true;\n }\n // Save non-availability of parts from dms\n let availaibilty = 0;\n part.jobcardItemOperationPartLocationList.forEach((loc) => {\n availaibilty += loc.quantityInStock;\n });\n if (\n (availaibilty === 0 || operationPart.quantity > availaibilty) &&\n dmsParam?.partsTrackerDmsDto?.partId\n ) {\n this.saveDmsNonAvailStocks(dmsParam);\n }\n this.toastrService.success('Part quantities updated.');\n } else {\n this.operation.parts[index].isNotAvailable = true;\n this.operation.parts[index].jobcardItemOperationPartLocationList = [\n {\n siteName: this.workshop.name,\n locationName: this.workshop.city,\n quantityInStock: 0,\n quantityOnOrder: 0,\n quantityInTransit: 0,\n },\n ];\n this.toastrService.warning($localize`No data found on DMS.`);\n // Save non-availability of parts from dms\n if (dmsParam?.partsTrackerDmsDto?.partId) {\n this.saveDmsNonAvailStocks(dmsParam);\n }\n }\n });\n }\n\n saveDmsNonAvailStocks(param: CreateOrUpdateDmsTrackerRequestParams) {\n this.partTrackerService.createOrUpdateDmsTracker(param).subscribe();\n }\n\n checkPartsAvailabilityInCsps(index: number) {\n const operationPart: OperationPartWithSRT = this.operation.parts[index];\n\n const cspsParam: CreateOrUpdateCspsTrackerRequestParams = {\n noLoader: true,\n authorization: this.userAdminService.accessToken,\n partsTrackerCspsDto: {\n nonAvailability: 1,\n workshopId: this.workshop.id,\n partId: operationPart.part.id,\n logDate: moment().toISOString(),\n },\n };\n this.checkAvailableParts = [];\n this.checkAvailableParts.push(operationPart);\n const codes: string[] = [];\n codes.push(operationPart.part.code);\n const params: GetPartsAvailabilityInCspsRequestParams = {\n partsCode: codes,\n userId: this.workshop.cspsUserId,\n applicationToken: this.userAdminService.newToken,\n authorization: this.userAdminService.accessToken,\n };\n this.cspsService.getPartsAvailabilityInCsps(params).subscribe(\n (partCsps: PartAvailability[]) => {\n if (partCsps?.length > 0) {\n partCsps.forEach((csps) => {\n this.operation?.parts.forEach((p) => {\n if (!p.part.cspsPartDetails) {\n p.part.cspsPartDetails = [];\n }\n\n if (\n p.part.code === csps.partCode &&\n csps.localAvailable_qty !== 0 &&\n !this.isLocalExist(csps?.localCode, p.part.cspsPartDetails)\n ) {\n p.part.cspsPartDetails.push({\n localName: csps.localName,\n localCode: csps.localCode,\n localAvailable_qty: csps.localAvailable_qty,\n });\n }\n\n if (\n p.part.code === csps.partCode &&\n p.part.cspsPartDetails.length === 0\n ) {\n p.part.totalAvailableCspsQty = 0;\n }\n });\n });\n this.totalCspsCalculation(codes);\n // Save non-availability of parts from dms\n let availability = 0;\n partCsps?.forEach((part) => {\n availability += part.localAvailable_qty;\n });\n if (\n operationPart?.part?.id &&\n (availability === 0 || operationPart.quantity > availability)\n ) {\n this.saveCspsNonAvailStocks(cspsParam);\n }\n } else {\n this.operation.parts.forEach((p) => {\n if (codes.includes(p.part.code)) {\n p.part.totalAvailableCspsQty = -1;\n this.toastrService.warning(\n 'The part is not in stock in the depot.'\n );\n // Save non-availability of parts from csps\n if (operationPart?.part?.id) {\n this.saveCspsNonAvailStocks(cspsParam);\n }\n }\n });\n }\n },\n (error: HttpErrorResponse) => {\n if (!environment.isIveco) {\n this.operation.parts.forEach((p) => {\n if (codes.includes(p.part.code)) {\n p.part.totalAvailableCspsQty = -1;\n if (error.status === 417) {\n this.toastrService.warning(\n $localize`The Part is not available in the region.`\n );\n } else {\n this.toastrService.error(error.statusText);\n }\n // Save non-availability of parts from csps\n if (operationPart?.part?.id) {\n this.saveCspsNonAvailStocks(cspsParam);\n }\n }\n });\n }\n }\n );\n }\n\n saveCspsNonAvailStocks(cspsParam: CreateOrUpdateCspsTrackerRequestParams) {\n this.partTrackerService.createOrUpdateCspsTracker(cspsParam).subscribe();\n }\n\n addPartsToBacklog(itemId: number, pId: number, quant: number) {\n this.appointment?.jobcard?.jobcardItems.forEach((item) => {\n if (\n item.jobcardItemStatus[0].status === 'todo' ||\n item.jobcardItemStatus[0].status === 'inProgress' ||\n item.jobcardItemStatus[0].status === 'new'\n ) {\n if (item.id === itemId) {\n if (!item.jobcardPartsBacklog) {\n this.jobcardPartsBacklog.push({\n jobcardItemId: itemId,\n partId: Number(pId),\n appointmentId: this.appointment.id,\n quantity: quant,\n partStatus: 'To be ordered',\n workshopId: this.workshop.id,\n });\n item.jobcardPartsBacklog = this.jobcardPartsBacklog;\n this.jobcardPartsBacklog = [];\n } else {\n item.jobcardPartsBacklog.push({\n jobcardItemId: itemId,\n partId: Number(pId),\n appointmentId: this.appointment.id,\n quantity: quant,\n partStatus: 'To be ordered',\n workshopId: this.workshop.id,\n });\n }\n this.toastrService.success(\n $localize`The part(s) is/are added to the backlog`\n );\n }\n } else {\n this.toastrService.warning(\n $localize`Error when trying to add part(s) to the backlog`\n );\n }\n });\n if (this.appointment.id) {\n this.editAppointmentForPartsBacklog();\n }\n }\n\n showAssosiatedSRTs() {\n const modalRef = this.modalService.open(SrtPartAssosiatedModalComponent, {\n size: 'xl',\n });\n modalRef.componentInstance.srtList = this.operation.parts;\n\n modalRef.result.then(\n (response: {\n addOperation: SrtOperation;\n newOperations: SrtOperation[];\n }) => {\n // Set the current operation\n if (response.addOperation) {\n this.operationNameModel = response.addOperation.description;\n if (response.addOperation.code) {\n this.operationNameModel =\n response.addOperation.code + ' - ' + this.operationNameModel;\n }\n this.operationNameChanged();\n }\n\n // Store the new operations to create\n if (response.newOperations?.length > 0) {\n this.newOperations = response.newOperations;\n }\n },\n () => {\n /* */\n }\n );\n }\n\n private totalCspsCalculation(codes: string[]) {\n this.operation?.parts.forEach((p) => {\n p?.part?.cspsPartDetails.forEach((csps) => {\n p.part.totalAvailableCspsQty = 0;\n p.part.totalAvailableCspsQty =\n p.part.totalAvailableCspsQty + csps.localAvailable_qty;\n });\n if (p.quantity > p.quantityInStock && !p.part.totalAvailableCspsQty) {\n p.part.totalAvailableCspsQty = -1;\n }\n if (codes.includes(p.part.code) && p.part.totalAvailableCspsQty === -1) {\n this.toastrService.warning(\n $localize`The part is not in stock in the depot.`\n );\n }\n });\n }\n private isLocalExist(localCode: string, partDetails: PartAvailability[]) {\n partDetails = partDetails.filter((part) => part?.localCode === localCode);\n return partDetails?.length > 0 ? true : false;\n }\n\n private numberToTime(nbMinutes?: number): NgbTime {\n if (!nbMinutes) {\n nbMinutes = 0;\n }\n const hour = Math.floor(nbMinutes / 60);\n const minute = nbMinutes - hour * 60;\n const ngbTime = { hour, minute } as NgbTime;\n return ngbTime;\n }\n\n private editAppointmentForPartsBacklog() {\n this.newAppointmentService.retainLatestStatus();\n const appDto = this.mappingService.mapAppointmentInCreationDtoToBookingAppointmentDto(this.newAppointmentService.appointmentInCreation);\n const params: UpdateAppointmentRequestParams = {\n id:this.newAppointmentService.appointmentInCreation.id,\n authorization: this.userService.accessToken,\n applicationToken: this.userService.newToken,\n bookingAppointmentDtoCustomerAppointmentDto: appDto,\n isComplete: true,\n };\n\n this.apiAppointmentService.updateAppointment(params).subscribe(\n () => {\n this.toastrService.success($localize`Appointment edited`);\n // Send the notification in case of activities approved by the Service Advisor\n if (\n this.appointment?.id &&\n this.newAppointmentService.approvedActivities.length > 0\n ) {\n this.notificationService\n .postNotification({\n applicationToken: this.userAdminService.newToken,\n acceptLanguage: this.language,\n workshopId: this.workshopId,\n authorization: this.userAdminService.accessToken,\n notificationCreationDto: {\n type: 'ACTIVITY_APPROVED',\n appointmentId: this.newAppointmentService.appointmentInCreation.id,\n },\n noLoader: true,\n })\n .subscribe(() => {\n this.newAppointmentService.approvedActivities = [];\n });\n }\n },\n (error: HttpErrorResponse) => {\n const apiError: ApiError = error.error;\n this.toastrService.error(apiError.message);\n }\n );\n }\n\n private checkPartsValid() {\n if (!this.operation.parts) {\n this.operation.parts = [];\n }\n this.partsValid = !this.operation.parts.find((p) => p.part?.id === -1);\n if (this.partsValid) {\n this.validPart = this.partsValid;\n }\n }\n}\n","
    \n

    \n Add an operation\n Modify an operation\n

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n Loading...\n
    \n
    \n
    \n 0\n ? searchOperation\n : searchOperationByQuery\n \"\n i18n-placeholder\n [disabled]=\"operation?.isDefault\"\n />\n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n\n
    \n \n Please see the Bulletins on\n eTIM\n to check the quantity\n \n
    \n \n\n
    \n \n Cancel\n \n \n Save\n \n
    \n\n\n This is the material code used when sending the part/consumable to\n eWarranty upon claim\n\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n OnInit,\n ViewChild,\n} from '@angular/core';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { SrtOperation } from '@models-smartview';\nimport { OperationPartWithSRT } from '../edit-operation-modal.component';\nimport { SrtPartConfirmModalComponent } from './srt-part-confirm-modal/srt-part-confirm-modal.component';\n\nexport interface SrtOperationChecked extends SrtOperation {\n checkedAdd?: boolean;\n checkedNew?: boolean;\n}\n\n@Component({\n selector: 'jc-srt-part-assosiated-modal',\n templateUrl: './srt-part-assosiated-modal.component.html',\n styleUrls: ['./srt-part-assosiated-modal.component.scss'],\n})\nexport class SrtPartAssosiatedModalComponent implements OnInit, AfterViewInit {\n @ViewChild('tabContainer') tabContainer: ElementRef;\n addOperation: SrtOperationChecked;\n newOperations: SrtOperationChecked[] = [];\n srtList: OperationPartWithSRT[] = [];\n active: number;\n\n // Tabs arrow\n transStyle: string;\n leftTabIdx = 0;\n tabStart = true;\n tabEnd = false;\n enableArrow = false;\n\n constructor(\n private modalService: NgbModal,\n public activeModal: NgbActiveModal\n ) {}\n\n ngOnInit(): void {\n // Filter the parts to get only the ones with SRT operations\n this.srtList = this.srtList.filter(\n (operationPart) => operationPart.srtOperations?.length > 0\n );\n // Recreate the add and new operations based on checked\n this.srtList.forEach((part: OperationPartWithSRT) => {\n part.srtOperations.forEach((srt: SrtOperationChecked) => {\n if (srt.checkedAdd) {\n this.addOperation = srt;\n }\n if (srt.checkedNew) {\n this.newOperations.push(srt);\n }\n });\n });\n // Set the initial display to 10 operations max\n this.srtList.forEach((operationPart) => {\n operationPart.displayArray = [];\n const max =\n operationPart.srtOperations?.length < 10\n ? operationPart.srtOperations?.length\n : 10;\n for (let i = 0; i < max; i++) {\n operationPart.displayArray.push(operationPart.srtOperations[i]);\n }\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.checkTabScrollArrow();\n }, 100);\n }\n\n checkTabScrollArrow() {\n const offsetWidth = this.tabContainer?.nativeElement.offsetWidth;\n if (offsetWidth < this.srtList.length * 125) {\n this.enableArrow = true;\n } else {\n this.enableArrow = false;\n this.transStyle = `translateX(0px)`;\n }\n }\n\n addMoreSRTOPerations() {\n // Display the full 30 operations\n this.srtList[this.active].displayArray = [];\n this.srtList[this.active].srtOperations.forEach((srtOperation) => {\n this.srtList[this.active].displayArray.push(srtOperation);\n });\n }\n\n addToOperation(operation: SrtOperationChecked) {\n if (this.addOperation) {\n // Display the confirm modal if an operation is already selected\n const modalRef = this.modalService.open(SrtPartConfirmModalComponent);\n modalRef.componentInstance.oldOperation = this.addOperation;\n modalRef.componentInstance.newOperation = operation;\n modalRef.result.then(\n () => {\n // Set the new operation as selected\n this.addOperation.checkedAdd = false;\n operation.checkedAdd = true;\n this.addOperation = operation;\n },\n () => {\n // Reset the selection as before\n this.addOperation.checkedAdd = true;\n operation.checkedAdd = false;\n const radio = document.getElementById(\n 'addOperation-' + operation.code\n ) as HTMLInputElement;\n radio.checked = false;\n }\n );\n } else {\n // First selection, no modal displayed\n this.addOperation = operation;\n this.addOperation.checkedAdd = true;\n }\n }\n\n setNewOperation(operation: SrtOperationChecked) {\n // Add or remove the operation from the list\n if (operation.checkedNew) {\n this.newOperations.push(operation);\n } else {\n this.removeElementFromObjectArray(operation.code);\n }\n }\n\n removeElementFromObjectArray(key: string) {\n this.newOperations.forEach((operation: SrtOperationChecked) => {\n if (operation.code === key) {\n this.newOperations.splice(this.newOperations.indexOf(operation), 1);\n }\n });\n }\n\n onSubmit() {\n const responsedata = {\n addOperation: this.addOperation,\n newOperations: this.newOperations,\n };\n this.activeModal.close(responsedata);\n }\n\n scrollTab(x: number) {\n if ((this.tabStart && x < 0) || (this.tabEnd && x > 0)) {\n return;\n }\n this.leftTabIdx = this.leftTabIdx + x;\n this.transStyle = `translateX(${this.leftTabIdx * -100}px)`;\n this.tabStart = this.leftTabIdx === 0;\n this.tabEnd = this.leftTabIdx === this.srtList.length - 3;\n }\n}\n","
    \n

    \n Select an Operation \n

    \n \n ×\n \n
    \n
    \n \n
  • \n \n \n \n \n \n
  • \n \n {{ srtL.part.code }} -\n \n
    \n {{\n (srtL?.part?.description && srtL?.part?.description) || ''\n | slice: 0:10\n }}\n {{\n ((srtL?.part?.description && srtL?.part?.description) || '')\n .length > 10\n ? '...'\n : ''\n }}
    \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n
    \n\n
    \n
    \n
    \n\n
    \n \n Cancel\n \n \n Save\n \n
    \n\n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    Operation codeOperation nameAdd to this operationCreate new operation
    \n {{ srtOperation.code }}\n \n {{ srtOperation.description }}\n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n See more\n \n
    \n\n","import { Component, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { SrtOperationChecked } from '../srt-part-assosiated-modal.component';\n\n@Component({\n selector: 'jc-srt-part-confirm-modal',\n templateUrl: './srt-part-confirm-modal.component.html',\n styleUrls: ['./srt-part-confirm-modal.component.scss'],\n})\nexport class SrtPartConfirmModalComponent implements OnInit {\n oldOperation: SrtOperationChecked;\n newOperation: SrtOperationChecked;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit(): void {\n //\n }\n}\n","
    \n

    Add to this operation

    \n \n ×\n \n
    \n
    \n
    \n You have already selected \n '{{ oldOperation.code }} - {{ oldOperation.description }}'\n to add to this Operation.\n
    \n
    \n Do you want to replace it with \n '{{ newOperation.code }} - {{ newOperation.description }}' ?\n
    \n
    \n
    \n \n Yes, replace\n \n \n Cancel\n \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { Part } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PartsService } from 'src/api/djc-booking-service/api/parts.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\n\n@Component({\n selector: 'jc-superseeded-part-modal',\n templateUrl: './superseeded-part-modal.component.html',\n styleUrls: ['./superseeded-part-modal.component.scss'],\n})\nexport class SuperseededPartModalComponent implements OnInit {\n @Input() superseededPart: Part;\n part: Part;\n loading = false;\n constructor(\n private partService: PartsService,\n public activeModal: NgbActiveModal,\n private userService: UserAdminService\n ) {}\n\n ngOnInit(): void {\n this.loading = true;\n this.userService.getUser().subscribe(user => {\n this.partService\n .getPartsById({\n workshopId: user.workshopId,\n id: this.superseededPart.partSuperseedingId,\n authorization: this.userService.accessToken,\n })\n .subscribe((part: Part) => {\n this.part = part;\n this.loading = false;\n });\n });\n }\n}\n","
    \n

    \n Part Supersession\n

    \n \n ×\n \n
    \n
    \n \n The selected part \n
    \n {{ superseededPart.code }} - {{ superseededPart.description }}\n
    \n can be superseded by the part \n
    \n {{ part.code }} - {{ part.description }}\n

    \n Do you want to proceed?\n
    \n
    \n
    \n \n Cancel\n \n \n Replace\n \n
    \n","import {\n CdkDragDrop,\n moveItemInArray,\n transferArrayItem,\n} from '@angular/cdk/drag-drop';\nimport { Component, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Util } from 'src/app/core/util/util';\nimport { SortByFieldPipe } from '../pipes/sort-by-field.pipe';\nimport { environment } from '../../../environments/environment';\n\n@Component({\n selector: 'jc-edit-questions-modal',\n templateUrl: './edit-questions-modal.component.html',\n styleUrls: ['./edit-questions-modal.component.scss'],\n})\nexport class EditQuestionsModalComponent implements OnInit {\n environment = environment;\n modalTitle: string;\n groupName: string;\n itemId = 0;\n questions: any[] = [];\n initialQuestions: any[] = [];\n disabled: boolean;\n sliderMin = 0;\n resultTypes: any[] = [\n {\n label: $localize`Status`,\n value: 'status',\n },\n {\n label: $localize`Slider`,\n value: 'slider',\n },\n {\n label: $localize`Switch`,\n value: 'switch',\n },\n {\n label: $localize`Checkbox`,\n value: 'checks',\n },\n ];\n\n constructor(\n public activeModal: NgbActiveModal,\n private sortByFieldPipe: SortByFieldPipe\n ) {}\n\n ngOnInit(): void {\n this.questions = this.sortByFieldPipe.transform(this.questions, 'order');\n this.initialQuestions = JSON.parse(JSON.stringify(this.questions));\n this.modalTitle = Util.stringFormat(\n $localize`Questions of \"[0]\" group`,\n this.groupName\n );\n }\n\n saveQuestions() {\n this.questions.forEach((question, index) => {\n question.order = index + 1;\n // Remove empty checkbox values\n if (question.resultType === 'checks') {\n for (let i = question.checks?.length - 1; i > -1; i--) {\n if (!question.checks[i]?.label) {\n question.checks.splice(i, 1);\n }\n }\n for (let i = 0; i < question.checks?.length; i++) {\n question.checks[i].id = i;\n question.checks[i].order = i + 1;\n }\n }\n });\n this.activeModal.close(this.questions);\n }\n\n deleteQuestion(question: any) {\n this.questions.splice(this.questions.indexOf(question), 1);\n }\n\n addQuestion() {\n this.itemId += 1;\n this.questions.push({\n id: this.itemId,\n label: '',\n required: false,\n order: this.questions.length + 1,\n resultType: 'status',\n });\n }\n\n resultTypeChange(question: any) {\n if (question.resultType === 'checks') {\n question.checks = [\n {\n id: 1,\n order: 1,\n label: $localize`Yes`,\n },\n {\n id: 2,\n order: 2,\n label: $localize`No`,\n },\n ];\n } else if (question.checks) {\n question.checks = undefined;\n }\n }\n\n cancel() {\n this.activeModal.close(this.initialQuestions);\n }\n\n onQuestionDrop(event: CdkDragDrop) {\n if (event.previousContainer === event.container) {\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n }\n\n checkSlider(question: any) {\n if (question.sliderMax && question.sliderMin > question.sliderMax) {\n this.disabled = true;\n question.alert = $localize`Minimum value must be less than the Maximum value.`;\n } else if (question.sliderMin < this.sliderMin) {\n this.disabled = true;\n question.alert = $localize`Minimum value must be less than the Maximum value.`;\n } else if (question.sliderMin && question.sliderMax < question.sliderMin) {\n this.disabled = true;\n question.alert = $localize`Maximum value must be higher than the Minimum value.`;\n } else if (question.sliderMax && question.sliderStep > question.sliderMax) {\n this.disabled = true;\n question.alert = $localize`Step value must be less than the Maximum value.`;\n } else {\n this.disabled = false;\n question.alert = null;\n }\n }\n}\n","
    \n

    {{ modalTitle }}

    \n \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n
    \n \n \n \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n {{ resultType.label }}\n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n 0\">\n \n \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n
    \n\n
    \n {{ question.alert }}\n
    \n
    \n
    \n \n \n \n \n \n Add question\n \n \n\n
    \n \n Cancel\n \n \n Save\n \n
    \n","import {\n Component,\n ElementRef,\n Inject,\n LOCALE_ID,\n OnInit,\n} from '@angular/core';\nimport { ExtraOperation, JobcardItem, Workshop } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable, of } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n switchMap,\n tap,\n} from 'rxjs/operators';\nimport { JobcardItemExtraOperationDto } from 'src/api/djc-admin-service';\nimport { OtherItemService, WorkshopDto } from 'src/api/djc-booking-service';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { WorkshopService } from 'src/app/core/workshop/workshop.service';\nimport { environment } from 'src/environments/environment';\nimport { locales } from 'src/locale/locales';\n\n@Component({\n selector: 'jc-edit-workshop-modal',\n templateUrl: './edit-workshop-modal.component.html',\n styleUrls: ['./edit-workshop-modal.component.scss'],\n})\nexport class EditWorkshopModalComponent implements OnInit {\n action: 'add' | 'modify' = 'add';\n extraOpeId: number;\n extraOperation: JobcardItemExtraOperationDto;\n jobcardItem: JobcardItem;\n workshop: WorkshopDto;\n etim: string;\n measurementUnit = 'KM';\n extraOperations: JobcardItemExtraOperationDto[] = [];\n extraOperationsFiltered: JobcardItemExtraOperationDto[] = [];\n extraOperationNameModel: string;\n disabled = false;\n searchingExtraOpe = false;\n alert: string;\n selectedId: number;\n selectedExtraOpe: JobcardItemExtraOperationDto;\n type: string = 'all';\n otherWorkshopType = ExtraOperation.TypeEnum;\n isIveco: boolean = environment.isIveco;\n\n constructor(\n public activeModal: NgbActiveModal,\n private elRef: ElementRef,\n private workshopService: WorkshopAdminService,\n private appointmentService: AppointmentService,\n private otherItemService: OtherItemService,\n private userAdminService: UserAdminService,\n @Inject(LOCALE_ID) public localeId: string\n ) {}\n\n ngOnInit(): void {\n this.userAdminService.getUser().subscribe(user => {\n this.etimlink();\n this.type = this.otherWorkshopType.All;\n this.otherItemService.getOtherItemByWorkshopId({ workshopId: user.workshopId, authorization: this.userAdminService.accessToken, page:0, size: 300}).subscribe((items) => {\n items.sort((a, b) => (a.code < b.code ? -1 : a.code > b.code ? 1 : 0));\n items.forEach((item) => {\n this.extraOperations.push(item);\n this.extraOperationsFiltered.push(item);\n if (this.extraOperation) {\n this.selectedId = this.extraOperations.find(\n (ope) =>\n ope.code === this.extraOperation.code &&\n ope.manufacturer === this.extraOperation.manufacturer\n )?.id;\n }\n });\n });\n if (this.extraOperation) {\n this.type = this.extraOperation.type;\n this.extraOpeId = this.extraOperation.id;\n this.action = 'modify';\n this.extraOperationNameModel = this.extraOperation.description;\n if (this.extraOperation.code) {\n this.extraOperationNameModel =\n this.extraOperation.code + ' - ' + this.extraOperationNameModel;\n }\n if (\n this.extraOperation.dmsId &&\n this.extraOperation.dmsId !== undefined\n ) {\n this.extraOperationNameModel =\n this.extraOperation.dmsId + ' - ' + this.extraOperationNameModel;\n }\n } else {\n this.extraOperation = {\n type: null,\n description: '',\n distance: null,\n amount: null,\n code: null,\n invoiceNumber: null,\n };\n }\n\n this.workshopService.getWorkshop().subscribe((workshop) => {\n this.workshop = workshop;\n });\n this.measurementUnit = locales.find(\n (locale) => locale.id.toUpperCase() === this.localeId.toUpperCase()\n ).measurementUnits;\n });\n }\n\n filterExtraOperation(type: string, setDefaultOp: boolean) {\n if (type !== ExtraOperation.TypeEnum.All) {\n this.extraOperationsFiltered = [\n ...this.extraOperations.filter((ope) => ope.type === type),\n ];\n\n if (this.extraOperationsFiltered?.length >= 1 && setDefaultOp) {\n if (!this.isIveco) {\n this.selectedId = this.extraOperationsFiltered[0].id;\n }\n this.extraOperation = this.extraOperationsFiltered[0];\n } else if (!this.extraOperationsFiltered?.length) {\n this.selectedId = null;\n this.extraOperation.code = null;\n }\n } else {\n this.extraOperationsFiltered = [...this.extraOperations];\n }\n }\n\n setExtraOperationType(selectedId: number) {\n this.selectedId = selectedId;\n this.extraOperation = {\n ...this.extraOperationsFiltered.find((ope) => ope.id === selectedId),\n };\n this.extraOperation.id = this.extraOpeId;\n this.type = this.extraOperation.type ? this.extraOperation.type : 'all';\n this.filterExtraOperation(this.type, false);\n }\n\n searchExtraOperation = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n tap(() => (this.searchingExtraOpe = true)),\n switchMap((term) => {\n if (term.length < 3) {\n return of([]);\n }\n return of([\n ...this.extraOperationsFiltered.filter(\n (ope) =>\n ope.code.toUpperCase().indexOf(term.toUpperCase()) !== -1 ||\n ope.description.toUpperCase().indexOf(term.toUpperCase()) !== -1\n ),\n ]);\n }),\n tap(() => (this.searchingExtraOpe = false))\n );\n\n resultFormatPartValue(value: JobcardItemExtraOperationDto): string {\n return (\n value.code +\n (value.description ? (value.code ? ' - ' : '') + value.description : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '')\n );\n }\n\n inputFormatPartValue(value: JobcardItemExtraOperationDto): string {\n return (\n value.code +\n (value.description ? (value.code ? ' - ' : '') + value.description : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '')\n );\n }\n\n etimlink() {\n this.etim = environment.etim;\n if (this.appointmentService.appointment?.vehicle?.vin) {\n if (environment.isIveco) {\n this.etim += '?VIN=' + this.appointmentService.appointment.vehicle.vin;\n } else {\n this.etim +=\n '&extraSsoName=PIN&extraSsoValue=' +\n this.appointmentService.appointment.vehicle.vin;\n }\n }\n }\n\n onSubmit() {\n this.extraOperation.type = this.type;\n if (\n this.type !== this.otherWorkshopType.Material &&\n this.type !== this.otherWorkshopType.FictitiousMaterial &&\n this.type !== this.otherWorkshopType.FmAntifreeze &&\n this.type !== this.otherWorkshopType.FmMiscellaneous &&\n this.type !== this.otherWorkshopType.FmOil &&\n this.type !== this.otherWorkshopType.FmRefrigerant &&\n this.type !== this.otherWorkshopType.FmTyre\n ) {\n this.extraOperation.quantity = 1;\n }\n this.activeModal.close(this.extraOperation);\n }\n\n checkAmountAndDistance() {\n if (\n this.extraOperation.amount &&\n this.extraOperation.amount < 0 &&\n this.extraOperation.distance &&\n this.extraOperation.distance < 0\n ) {\n this.disabled = true;\n this.alert = $localize`The Distance and Amount must be positive.`;\n } else if (\n this.extraOperation.distance &&\n this.extraOperation.distance < 0\n ) {\n this.disabled = true;\n this.alert = $localize`The Distance must be positive.`;\n } else if (this.extraOperation.amount && this.extraOperation.amount < 0) {\n this.disabled = true;\n this.alert = $localize`The Amount must be positive.`;\n } else {\n this.disabled = false;\n this.alert = null;\n }\n }\n\n scrollToItem() {\n const elements = this.elRef.nativeElement.querySelectorAll('.active');\n if (elements?.length > 0) {\n elements[0].scrollIntoView();\n }\n }\n}\n","
    \n

    \n Add another item\n \n Edit another item\n \n

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n Fictitious Material\n \n \n Fictitious Material - ANTIFREEZE\n \n \n Fictitious Material - MISCELLANEOUS\n \n \n \n Fictitious Material - REFRIGERANT\n \n \n \n
    \n\n
    \n \n \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n {{ measurementUnit }}\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n {{ workshop.currencyCode }}\n
    \n
    \n
    \n\n \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n {{ alert }}\n
    \n
    \n \n Check the maximum value from the\n eTIM bulletins\n \n
    \n \n
    \n \n Cancel\n \n \n \n Save\n \n \n Save\n \n \n \n \n Save\n \n \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { OperationPart } from 'src/app/models/model/models';\nimport { Operation } from 'src/app/models/model/models';\nimport {\n CustomerCompany,\n EpartsPart,\n Jobcard,\n JobcardItem,\n Vehicle,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PartsAssignmentModalComponent } from '../parts-assignment-modal/parts-assignment-modal.component';\n\nexport interface DJCEpartsPart extends EpartsPart {\n checked: boolean;\n}\nexport interface EpartJobcardOperation extends Operation {\n checked: boolean;\n}\n\n@Component({\n selector: 'jc-epart-modal',\n templateUrl: './epart-modal.component.html',\n styleUrls: ['./epart-modal.component.scss'],\n})\nexport class EpartModalComponent implements OnInit {\n @Input() epartsParts: DJCEpartsPart[] = [];\n @Input() jobcard: Jobcard;\n @Input() customer: CustomerCompany;\n @Input() vehicle: Vehicle;\n enableOperationCheck = false;\n isOperationSelected = false;\n constructor(\n public activeModal: NgbActiveModal,\n public modalService: NgbModal\n ) {}\n\n ngOnInit(): void {\n //initial reset the selection\n this.resetSelection();\n }\n\n onSelectPart() {\n this.enableOperationCheck =\n this.epartsParts.filter((eP: DJCEpartsPart) => eP.checked)?.length > 0\n ? true\n : false;\n }\n\n onOperationSelected() {\n this.isOperationSelected = false;\n this.jobcard?.jobcardItems?.forEach((jItem: JobcardItem) => {\n if (\n jItem.operations?.find((eP: EpartJobcardOperation) => eP.checked) &&\n !this.isOperationSelected\n ) {\n this.isOperationSelected = true;\n }\n });\n }\n\n // Handle add operation\n addOperation() {\n this.selectedOperationCountCheck().then((oppCount: number) => {\n if (oppCount > 1) {\n // Handle part model\n this.addMultiplePartsToOperation();\n } else {\n // Mapping ePart to operation\n this.mappingEpartToOperation();\n }\n });\n }\n\n resetSelection() {\n this.enableOperationCheck = false;\n this.isOperationSelected = false;\n this.epartsParts?.map((eP: DJCEpartsPart) => (eP.checked = false));\n this.jobcard?.jobcardItems?.forEach((jItem: JobcardItem) =>\n jItem.operations?.map((eP: EpartJobcardOperation) => (eP.checked = false))\n );\n }\n\n selectedOperationCountCheck() {\n return new Promise((resolve) => {\n let selectedOperationCount = 0;\n let loopCount = this.jobcard?.jobcardItems?.length;\n if (loopCount === 0) {\n resolve(selectedOperationCount);\n }\n this.jobcard?.jobcardItems?.forEach((jItem: JobcardItem) => {\n const oppCount = jItem.operations?.filter(\n (eP: EpartJobcardOperation) => eP.checked\n )?.length;\n if (oppCount > 0) {\n selectedOperationCount += oppCount;\n }\n --loopCount;\n if (loopCount === 0) {\n resolve(selectedOperationCount);\n }\n });\n });\n }\n\n onRemoveAssignedPart(\n part: OperationPart,\n operation: Operation,\n index: number\n ) {\n // Find ePart index\n const ePartIndex = this.epartsParts.findIndex(\n (eP: DJCEpartsPart) => eP.part.id === part?.part?.id\n );\n if (ePartIndex >= 0) {\n this.epartsParts[ePartIndex].quantity =\n this.epartsParts[ePartIndex].quantity + part.quantity;\n // remove operation part\n operation.parts.splice(index, 1);\n }\n }\n\n addMultiplePartsToOperation() {\n const modalRef = this.modalService.open(PartsAssignmentModalComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.epartsParts = this.epartsParts;\n modalRef.componentInstance.jobcard = this.jobcard;\n modalRef.componentInstance.eParts = JSON.parse(\n JSON.stringify(this.epartsParts)\n );\n modalRef.result\n .then((res: any) => {\n // Handle eparts save and change the quantity\n this.mappingEpartsWithPartModel(res);\n })\n .catch(() => {\n /* Nothing on dismiss. */\n });\n }\n\n mappingEpartsWithPartModel(partsModelData: any = []) {\n let ePartLength = partsModelData?.length;\n this.epartsParts.forEach((eP: DJCEpartsPart) => {\n this.jobcard?.jobcardItems?.forEach((jItem: JobcardItem) => {\n jItem.operations?.map((opp: EpartJobcardOperation) => {\n if (opp.checked) {\n partsModelData\n ?.filter(\n (aPart: any) =>\n aPart.ePartId === eP?.part?.id &&\n aPart.oppName === opp?.label &&\n jItem?.name === aPart.name &&\n aPart.quantity > 0 &&\n aPart.quantity != null\n )\n ?.forEach((filterPart: any) => {\n // part model added quantity\n const existPartIndex = opp?.parts?.findIndex(\n (oP: OperationPart) => oP?.part?.id === filterPart?.ePartId\n );\n if (existPartIndex === -1) {\n const assignPart: OperationPart = {\n id: null,\n quantity: filterPart.quantity,\n part: eP.part,\n };\n if (opp?.parts?.length) {\n opp.parts.push(assignPart);\n } else {\n opp.parts = [];\n opp.parts.push(assignPart);\n }\n } else {\n opp.parts[existPartIndex].quantity =\n opp.parts[existPartIndex].quantity + filterPart.quantity;\n }\n if (eP.quantity !== 0) {\n eP.quantity = eP.quantity - filterPart.quantity;\n }\n });\n }\n });\n });\n if (ePartLength === 0) {\n //TODO: Need to sync the logic\n setTimeout(() => {\n this.resetSelection();\n }, 300);\n }\n ePartLength -= ePartLength;\n });\n }\n\n mappingEpartToOperation() {\n let ePartLength = this.epartsParts?.length;\n this.epartsParts.map((eP: DJCEpartsPart) => {\n if (eP.checked) {\n const qty = eP.quantity;\n this.jobcard?.jobcardItems?.forEach((jItem: JobcardItem) => {\n jItem.operations?.map((opp: EpartJobcardOperation) => {\n if (opp.checked) {\n // part model added quantity\n const existPartIndex = opp?.parts?.findIndex(\n (oP: OperationPart) => oP?.part?.id === eP?.part?.id\n );\n\n if (existPartIndex === -1) {\n const assignPart: OperationPart = {\n id: null,\n quantity: qty,\n part: eP.part,\n };\n if (opp?.parts?.length) {\n opp.parts.push(assignPart);\n } else {\n opp.parts = [];\n opp.parts.push(assignPart);\n }\n } else {\n opp.parts[existPartIndex].quantity =\n opp.parts[existPartIndex].quantity + qty;\n }\n }\n });\n });\n eP.quantity = 0;\n }\n if (ePartLength === 0) {\n //TODO: Need to sync the logic\n setTimeout(() => {\n this.resetSelection();\n }, 300);\n }\n ePartLength -= ePartLength;\n });\n }\n}\n","\n
    \n
    \n \n
    \n \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n Saved parts\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n 0\">\n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n
    Part IDPart NameQuantity
    \n \n \n \n \n \n \n {{ ePart?.part?.code ?? '' }}\n \n \n {{ ePart?.code ?? '' }}\n \n \n \n {{ ePart?.part?.description ?? ''}}\n \n \n {{ ePart?.description ?? '' }}\n \n {{ ePart.quantity }}
    \n

    No ePart found

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n Digital Jobcard\n \n \n ×\n \n
    \n\n
    \n
    \n
    \n

    \n Jobcard Number\n :{{jobcard?.id ?? ''}}\n

    \n

    \n Customer\n :{{customer?.displayedName ?? ''}}\n

    \n

    \n Model\n : {{vehicle?.model?.name ?? ''}}\n \n

    \n

    \n Serial number\n : {{vehicle?.vin ?? ''}}\n

    \n
    \n
    \n \n Add\n \n
    \n
    \n
    \n \n \n \n Activity\n : {{jcItem?.name ?? ''}}\n
    \n
    \n \n

    Operations

    \n \n
      \n
    • \n
      \n \n \n \n
      \n {{ opp.label }}\n
    \n \n \n \n
  • \n \n \n \n \n \n \n \n {{ oppPart?.part?.description }}\n ({{oppPart?.quantity ?? 0}})\n \n
  • \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n\n\n\n

    No operation

    \n
    \n\n Part not found in Jobcard\n\n\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n DeleteIuFromBasketRequestParams,\n DocumentService,\n} from '@api-document';\nimport {\n Appointment,\n AppointmentIuDocument,\n JobcardItem,\n JobcardItemIuDocument,\n Workshop,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { environment } from 'src/environments/environment';\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\nimport { WorkshopDto } from 'src/api/djc-admin-service';\n\nexport interface AppointmentIuDocumentSelect extends AppointmentIuDocument {\n link?: string;\n selected?: boolean;\n}\n\nexport interface JobcardItemIuDocumentSelect extends JobcardItemIuDocument {\n link?: string;\n}\n\n@Component({\n selector: 'jc-etim-modal',\n templateUrl: './etim-modal.component.html',\n styleUrls: ['./etim-modal.component.scss'],\n})\nexport class EtimModalComponent implements OnInit {\n @Input() appointment: Appointment;\n appointmentDisplayed?: Appointment;\n // Docs from etim basket (not linked to an activity)\n etimDocs: AppointmentIuDocumentSelect[] = [];\n srtDocs: AppointmentIuDocumentSelect[] = [];\n workshop: WorkshopDto;\n // Selection mode boolean to handle the modal\n etimSelectMode = false;\n srtSelectMode = false;\n etimDocRemovalMode = false;\n // Display of buttons, labels\n activitySelectMode = false;\n showAddButton = false;\n showJobcardItemLabel = false;\n showCheckbox = false;\n showRemoveButton = false;\n showSelectDocsToRemoveButton = true;\n activateTrashButton = false;\n brandColor: Record = {\n 'background-color': '#9b9b9b',\n color: '#000000',\n };\n environment = environment;\n\n constructor(\n public activeModal: NgbActiveModal,\n public modalService: NgbModal,\n private documentService: DocumentService\n ) {}\n\n ngOnInit(): void {\n this.appointmentDisplayed = this.appointment;\n this.srtDocs = this.appointment?.iuDocuments.filter(\n (srtDoc: AppointmentIuDocument) => srtDoc?.docType === 'SRT'\n );\n this.etimDocs = this.appointment?.iuDocuments.filter(\n (etimDoc: AppointmentIuDocument) => etimDoc?.docType !== 'SRT'\n );\n // this.setEtimBrandColor();\n this.setInitialValue();\n this.showButtonToRemoveFromActivities();\n }\n\n /*TODO : Setting Etim Brand Color --> To be checked when etim api is up and running on DJC side*/\n // setEtimBrandColor() {\n // this.vinNo = this.appointment?.vehicle?.vin;\n // if (this.vinNo === 'ZHF311773') {\n // this.iceCode = 'A';\n // } else if (this.vinNo === 'JJAM0180ALRL04094') {\n // this.iceCode = 'E';\n // } else if (this.vinNo === 'HHKHEJ27KE0003116') {\n // this.iceCode = 'F';\n // } else if (this.vinNo === 'JJAT8410CKRJ04361') {\n // this.iceCode = 'B';\n // }\n // switch (this.iceCode) {\n // case '1':\n // this.brandColor = { 'background-color': '#9b9b9b', color: '#000000' };\n // break;\n // case 'A':\n // this.brandColor = { 'background-color': '#a71930', color: '#ffffff' };\n // break;\n // case 'B':\n // this.brandColor = { 'background-color': '#004b93', color: '#ffffff' };\n // break;\n // case 'C':\n // this.brandColor = { 'background-color': '#d00019', color: '#ffffff' };\n // break;\n // case 'D':\n // this.brandColor = { 'background-color': '#9b9b9b', color: '#000000' };\n // break;\n // case 'E':\n // this.brandColor = { 'background-color': '#e58e1a', color: '#ffffff' };\n // break;\n // case 'F':\n // this.brandColor = { 'background-color': '#f7d417', color: '#000000' };\n // break;\n // case 'H':\n // this.brandColor = { 'background-color': '#47bcc6', color: '#000000' };\n // break;\n // case 'L':\n // this.brandColor = { 'background-color': '#ed1a2d', color: '#ffffff' };\n // break;\n // case 'N':\n // this.brandColor = { 'background-color': '#b30000', color: '#ffffff' };\n // break;\n // case 'O':\n // this.brandColor = { 'background-color': '#4fff00', color: '#000000' };\n // break;\n // case 'S':\n // this.brandColor = { 'background-color': '#c90039', color: '#ffffff' };\n // break;\n // case 'Z':\n // this.brandColor = { 'background-color': '#9b9b9b', color: '#000000' };\n // break;\n // default:\n // this.brandColor;\n // }\n // }\n\n /*TODO: Opening ETIM IU Link Document Page*/\n selectPage(etimDoc: any) {\n let model = null;\n let docType = 'IU';\n let docLanguage = 'EN';\n if (etimDoc.productIceCode !== null) {\n model = etimDoc.productIceCode.charAt(0);\n }\n if (etimDoc.docType === 'KA') {\n docType = etimDoc.docType;\n }\n if (etimDoc.lang !== null) {\n docLanguage = etimDoc.lang;\n }\n const url =\n this.environment.etimDocLink +\n 'type=' +\n docType +\n '&market=' +\n this.workshop.marketId +\n '&model=' +\n model +\n '&config=&id=' +\n etimDoc.iuSrtId +\n '&lang=' +\n docLanguage;\n window.open(url);\n }\n\n handleSelectionMode(mode: string) {\n if (mode === 'etim') {\n // 1st case : Select IU (left menu) from basket to be associated to an activity\n this.etimSelectMode = !this.etimSelectMode;\n this.handleDocSelectionFromBasket(this.etimSelectMode, this.etimDocs);\n } else if (mode === 'srt') {\n // 2nd case : Select SRT (left menu) from basket to be associated to an activity\n this.srtSelectMode = !this.srtSelectMode;\n this.handleDocSelectionFromBasket(this.srtSelectMode, this.srtDocs);\n } else if (mode === 'removal') {\n // 3rd case : Select SRT/IU (right menu) from an activity to be removed\n this.etimDocRemovalMode = !this.etimDocRemovalMode;\n if (!this.etimSelectMode) {\n this.appointmentDisplayed?.jobcard?.jobcardItems?.forEach((jitem) => {\n jitem?.jobcardItemIuDocuments?.forEach((etimDoc) => {\n etimDoc.selected = false;\n });\n });\n }\n } else if (mode === 'none') {\n //4th case : When tagging/untagging is done - to put the modal back to normal\n this.showJobcardItemLabel = false;\n this.etimSelectMode = false;\n this.showAddButton = false;\n this.srtSelectMode = false;\n this.etimDocRemovalMode = false;\n this.showButtonToRemoveFromActivities();\n }\n }\n\n handleDocSelectionFromBasket(\n selectionDeactivated: boolean,\n documents: AppointmentIuDocumentSelect[]\n ) {\n if (!selectionDeactivated) {\n documents.forEach((document: AppointmentIuDocumentSelect) => {\n document.selected = false;\n });\n this.handleCheckboxesAndTrashIcon();\n this.showAddButton = false;\n }\n }\n\n selectEtimDoc(etimDoc: AppointmentIuDocumentSelect) {\n if (this.etimSelectMode) {\n etimDoc.selected = !etimDoc.selected;\n this.handleCheckboxesAndTrashIcon();\n this.checkActivityAddStatus();\n }\n }\n\n selectSRTDoc(srtDoc: AppointmentIuDocumentSelect) {\n if (this.srtSelectMode) {\n srtDoc.selected = !srtDoc.selected;\n this.handleCheckboxesAndTrashIcon();\n this.checkActivityAddStatus();\n }\n }\n\n transferSelectedEtimDocToActivity(appointment: Appointment) {\n this.etimDocs.forEach((etimDoc) => {\n if (etimDoc.selected) {\n appointment.jobcard?.jobcardItems?.map((item: JobcardItem) => {\n if (item?.selected) {\n if (!item?.jobcardItemIuDocuments?.length) {\n item.jobcardItemIuDocuments = [];\n }\n const etimDocPresent = item?.jobcardItemIuDocuments?.find(\n (ele: JobcardItemIuDocumentSelect) =>\n ele.iuSrtId === etimDoc.iuSrtId\n );\n if (!etimDocPresent?.iuSrtId) {\n const jobcardItemIuDoc = this.convertBasketToIuLink(etimDoc);\n jobcardItemIuDoc.jobcardItemId = item.id;\n item.jobcardItemIuDocuments.push(jobcardItemIuDoc);\n }\n }\n });\n }\n });\n this.srtDocs.forEach((srtDoc) => {\n if (srtDoc.selected) {\n appointment.jobcard?.jobcardItems?.map((item: JobcardItem) => {\n if (item?.selected) {\n if (!item?.jobcardItemIuDocuments?.length) {\n item.jobcardItemIuDocuments = [];\n }\n const etimDocPresent = item?.jobcardItemIuDocuments?.find(\n (ele: JobcardItemIuDocumentSelect) =>\n ele.iuSrtId === srtDoc.iuSrtId\n );\n if (!etimDocPresent?.iuSrtId) {\n const jobcardItemIuDoc = this.convertBasketToIuLink(srtDoc);\n jobcardItemIuDoc.jobcardItemId = item.id;\n item.jobcardItemIuDocuments.push(jobcardItemIuDoc);\n }\n }\n });\n }\n });\n this.updateSelectedAppointment(appointment);\n this.handleSelectionMode('none');\n this.handleCheckboxesAndTrashIcon();\n }\n\n removeSelectedFromBasket() {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n modalRef.componentInstance.title = $localize`Remove item(s)`;\n modalRef.componentInstance.message = $localize`Are you sure you want to remove the selected item(s)?`;\n modalRef.componentInstance.action = $localize`Remove`;\n modalRef.result.then(() => {\n this.etimDocs = this.etimDocs.filter((doc) => !doc.selected);\n this.srtDocs = this.srtDocs.filter((doc) => !doc.selected);\n this.handleSelectionMode('none');\n this.handleCheckboxesAndTrashIcon();\n });\n }\n\n async clearSelectedEtimDocs() {\n return new Promise((resolve) => {\n this.etimDocs = this.etimDocs?.filter(\n (item: AppointmentIuDocumentSelect) => !item?.selected\n );\n this.srtDocs = this.srtDocs?.filter(\n (srtItem: AppointmentIuDocumentSelect) => !srtItem?.selected\n );\n setTimeout(() => {\n resolve(true);\n }, 300);\n });\n }\n\n updateSelectedAppointment(appointment: Appointment): Promise {\n return new Promise((resolve) => {\n this.clearSelectedEtimDocs().then((res) => {\n if (res && appointment.id) {\n this.appointment?.jobcard?.jobcardItems?.map(\n (jobcardItem: JobcardItem) => (jobcardItem.selected = false)\n );\n if (this.appointmentDisplayed) {\n appointment?.jobcard?.jobcardItems?.forEach(\n (appointmentItem: JobcardItem) => {\n this.appointmentDisplayed?.jobcard?.jobcardItems?.forEach(\n (jItem: JobcardItem) => {\n // Check on ids to associate documents\n // Check on names if actvities have no id (not yet saved in DB)\n if (\n ((appointmentItem.id || jItem.id) &&\n appointmentItem.id === jItem.id) ||\n (!appointmentItem.id &&\n !jItem.id &&\n appointmentItem.name === jItem.name)\n ) {\n jItem.jobcardItemIuDocuments =\n appointmentItem.jobcardItemIuDocuments;\n }\n }\n );\n }\n );\n resolve(true);\n } else {\n resolve(false);\n }\n }\n });\n });\n }\n\n /* Show or Hide the \"Add\" button when linking docs to activities */\n enableAddEtimDocsButton(appointment: Appointment, index: number) {\n this.showAddButton = false;\n if (this.showJobcardItemLabel) {\n if (appointment.jobcard?.jobcardItems?.length) {\n appointment.jobcard.jobcardItems[index].selected = !appointment.jobcard\n .jobcardItems[index].selected;\n this.showAddButton =\n appointment.jobcard?.jobcardItems?.filter(\n (item: JobcardItem) => item?.selected\n )?.length > 0\n ? true\n : false;\n }\n }\n this.checkActivityAddStatus();\n }\n\n removeSelectedEtimDocFromActivity() {\n this.appointmentDisplayed?.jobcard?.jobcardItems?.forEach((jitem) => {\n if (jitem.jobcardItemIuDocuments) {\n for (\n let index = jitem.jobcardItemIuDocuments.length - 1;\n index > -1;\n index--\n ) {\n const etimDoc: JobcardItemIuDocument =\n jitem.jobcardItemIuDocuments[index];\n if (etimDoc.selected) {\n if (etimDoc.docType === 'SRT') {\n const alreadyInBasket = this.srtDocs.find(\n (ele: JobcardItemIuDocumentSelect) =>\n ele.iuSrtId === etimDoc.iuSrtId\n );\n if (!alreadyInBasket) {\n // A document untagged from an activity should be added in the basket on saving\n const srtBasketDoc = this.convertIuLinkToBasket(etimDoc);\n srtBasketDoc.appointmentId = this.appointmentDisplayed?.id;\n srtBasketDoc.selected = false;\n this.srtDocs.push(srtBasketDoc);\n }\n jitem.jobcardItemIuDocuments?.splice(index, 1);\n } else {\n const alreadyInBasket = this.etimDocs.find(\n (ele: JobcardItemIuDocumentSelect) =>\n ele.iuSrtId === etimDoc.iuSrtId\n );\n if (!alreadyInBasket) {\n // A document untagged from an activity should be added in the basket on saving\n const etimBasketDoc = this.convertIuLinkToBasket(etimDoc);\n etimBasketDoc.appointmentId = this.appointmentDisplayed?.id;\n etimBasketDoc.selected = false;\n this.etimDocs.push(etimBasketDoc);\n }\n jitem.jobcardItemIuDocuments?.splice(index, 1);\n }\n }\n }\n }\n });\n this.updateSelectedAppointment(this.appointmentDisplayed);\n this.handleSelectionMode('none');\n }\n\n /** If the user clicked on the link then open it instead of selecting the document */\n savedLinkSelection(etimDoc: any, isClickOnLInk = false) {\n if (isClickOnLInk) {\n this.selectPage(etimDoc);\n } else {\n this.setDJCCheckedValue(etimDoc);\n }\n }\n\n setDJCCheckedValue(etimDoc: JobcardItemIuDocumentSelect) {\n if (!etimDoc?.selected) {\n etimDoc.selected = true;\n } else {\n etimDoc.selected = false;\n }\n }\n\n dismissModal() {\n this.activeModal.dismiss({\n iuDocs: this.etimDocs,\n srtDocs: this.srtDocs,\n });\n }\n\n getFullDocumentType(docType: string): string {\n let docTypeFull: string;\n switch (docType) {\n case 'SM':\n docTypeFull = $localize`Service Manual`;\n break;\n case 'OM':\n docTypeFull = $localize`Operator's Manual`;\n break;\n case 'KA':\n docTypeFull = $localize`Knowledge Articles`;\n break;\n case 'SB':\n docTypeFull = $localize`Service Bulletin`;\n break;\n case 'II':\n docTypeFull = $localize`Installation Instructions`;\n break;\n case 'SG':\n docTypeFull = $localize`Software Guide`;\n break;\n case 'AI':\n docTypeFull = $localize`Assembly Instructions`;\n break;\n default:\n docTypeFull = '';\n }\n return docTypeFull;\n }\n\n selectEtimDocsToRemoveFromActivities() {\n this.etimDocRemovalMode = !this.etimDocRemovalMode;\n if (!this.etimSelectMode) {\n this.appointmentDisplayed?.jobcard?.jobcardItems?.forEach((jitem) => {\n jitem?.jobcardItemIuDocuments?.forEach((etimDoc) => {\n etimDoc.selected = false;\n });\n });\n }\n }\n\n /** Method that display or hide the \"Add\" button when linking IU to activities */\n private checkActivityAddStatus() {\n this.showAddButton =\n this.appointmentDisplayed?.jobcard?.jobcardItems?.filter(\n (item: JobcardItem) => item?.selected\n )?.length > 0 && this.showJobcardItemLabel\n ? true\n : false;\n }\n\n /** Ensure that all docs, from basket or activities are not selected when initializing the modal */\n private setInitialValue() {\n this.appointmentDisplayed?.jobcard?.jobcardItems?.forEach(\n (jobcardItem: JobcardItem) => {\n jobcardItem?.jobcardItemIuDocuments?.map(\n (iuDoc: JobcardItemIuDocumentSelect) => (iuDoc.selected = false)\n );\n }\n );\n this.etimDocs.forEach((etimDoc: AppointmentIuDocumentSelect) => {\n etimDoc.selected = false;\n });\n this.srtDocs.forEach((srtDoc: AppointmentIuDocumentSelect) => {\n srtDoc.selected = false;\n });\n }\n\n private convertBasketToIuLink(etimDoc: AppointmentIuDocumentSelect) {\n const jobcardItemIuDoc: JobcardItemIuDocumentSelect = {\n iuSrtId: etimDoc.iuSrtId,\n iceCode: etimDoc.iceCode,\n name: etimDoc.name,\n docType: etimDoc.docType,\n docId: etimDoc.docId,\n chapterId: etimDoc.chapterId,\n lang: etimDoc.lang,\n userId: etimDoc.userId,\n workshopSapCode: etimDoc.workshopSapCode,\n vin: etimDoc.vin,\n selected: etimDoc.selected,\n link: etimDoc.link,\n productIceCode: etimDoc.productIceCode,\n repairTime: etimDoc.repairTime,\n };\n return jobcardItemIuDoc;\n }\n\n private convertIuLinkToBasket(iuItemDoc: JobcardItemIuDocument) {\n const iuLinkBasketSelect: AppointmentIuDocumentSelect = {\n iuSrtId: iuItemDoc.iuSrtId,\n iceCode: iuItemDoc.iceCode,\n name: iuItemDoc.name,\n docType: iuItemDoc.docType,\n docId: iuItemDoc.docId,\n chapterId: iuItemDoc.chapterId,\n lang: iuItemDoc.lang,\n userId: iuItemDoc.userId,\n workshopSapCode: iuItemDoc.workshopSapCode,\n vin: iuItemDoc.vin,\n selected: iuItemDoc.selected,\n productIceCode: iuItemDoc.productIceCode,\n repairTime: iuItemDoc.repairTime,\n };\n return iuLinkBasketSelect;\n }\n\n private showButtonToRemoveFromActivities() {\n const iuDocumentPresent = (ji: JobcardItem) =>\n ji?.jobcardItemIuDocuments?.length;\n this.showSelectDocsToRemoveButton =\n this.appointmentDisplayed?.jobcard?.jobcardItems?.some(\n iuDocumentPresent\n ) || false;\n }\n\n private handleCheckboxesAndTrashIcon() {\n const iusSelected =\n this.etimDocs.filter(\n (etimdoc: AppointmentIuDocumentSelect) => etimdoc?.selected\n )?.length > 0\n ? true\n : false;\n const srtsSelected =\n this.srtDocs.filter(\n (etimdoc: AppointmentIuDocumentSelect) => etimdoc?.selected\n )?.length > 0\n ? true\n : false;\n this.showJobcardItemLabel = iusSelected || srtsSelected;\n this.activateTrashButton = iusSelected || srtsSelected;\n }\n}\n","
    \n

    ETIM

    \n
    \n
    \n

    Digital Jobcard

    \n \n ×Close\n \n
    \n
    \n
    \n
    \n
    \n
    \n Saved eTim Documents\n \n {{ etimDocs.length }}\n \n
    \n
    \n \n Select\n Cancel\n \n
    \n
    \n
    0\" class=\"card-body p-2 overflow-auto\">\n
    \n \n \n \n
    \n
    \n
    \n {{ getFullDocumentType(etimDoc.docType) }}\n
    \n
    {{ etimDoc.iceCode }} - {{ etimDoc.name }}
    \n \n
    \n
    \n
    \n
    \n
    \n \n No Saved Document\n \n
    \n
    \n \n \n
    \n No Selected SRT\n
    \n \n
    \n \n \n \n \n \n
    \n \n
    \n
    \n \n
    \n \n Customer\n :{{ appointmentDisplayed.customerCompany?.displayedName }}\n

    \n

    \n \n Booking Id\n :{{ appointmentDisplayed.id }};\n \n \n DMS ID\n :{{ appointmentDisplayed.jobcard?.dmsJobOrder }}\n \n

    \n

    \n \n Model\n :\n {{ appointmentDisplayed.vehicle?.model?.name }};\n \n \n \n VIN\n :\n {{ appointmentDisplayed.vehicle?.vin }};\n \n \n \n Stock no\n :\n {{ appointmentDisplayed.vehicle?.stockNumber }}\n \n \n \n \n

    \n \n Add\n \n
    \n
    \n
    \n
    \n \n Remove\n \n
    \n
    \n
    \n
    \n \n Select\n Cancel\n \n
    \n
    \n
    \n \n

    \n
    \n \n \n \n \n \n
    \n \n
    \n
    \n \n Activity\n : {{ jobcardItem?.name }}\n \n
    \n \n
    \n \n
    \n \n \n \n \n \n\n\n

    No Operation

    \n
    \n\n\n

    No Activity

    \n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { Injectable } from '@angular/core';\nimport * as FileSaver from 'file-saver';\nimport { Split } from '../../../api/document/model/split';\n\nconst EXCEL_TYPE =\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\nconst EXCEL_EXTENSION = '.xlsx';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ExcelService {\n exportAsExcelFile(\n json: any[],\n excelFileName: string,\n options: any = { skipHeader: true }\n ): void {\n import('xlsx').then((XLSX) => {\n let worksheet: any = XLSX.utils.json_to_sheet(json, options);\n worksheet = this.cellWrapText(XLSX, worksheet);\n const workbook: any = {\n Sheets: { data: worksheet },\n SheetNames: ['data'],\n };\n const excelBuffer: any = XLSX.write(workbook, {\n bookType: 'xlsx',\n type: 'array',\n });\n this.saveAsExcelFile(excelBuffer, excelFileName);\n });\n }\n \n cellWrapText(XLSX: any, worksheet: any): any{\n const range = XLSX.utils.decode_range(worksheet['!ref']); // Ottiene l'intervallo di celle\n for (let row = range.s.r; row <= range.e.r; row++) {\n for (let col = range.s.c; col <= range.e.c; col++) {\n const cellAddress = XLSX.utils.encode_cell({ r: row, c: col });\n if (!worksheet[cellAddress]) continue; // Salta celle vuote\n \n worksheet[cellAddress].s = {\n alignment: { wrapText: true }, // Abilita wrap text\n horizontal: 'rigth'\n }; \n }\n }\n return worksheet;\n }\n\n exportMultipleSheetAsExcelFile(\n json: any[],\n excelFileName: string,\n options: any = { skipHeader: true }\n ): void {\n import('xlsx').then((XLSX) => {\n const worksheet: any = XLSX.utils.json_to_sheet(json[1], options);\n const worksheet1: any = XLSX.utils.json_to_sheet(json[0], options);\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, 'ClockingSummary');\n XLSX.utils.book_append_sheet(workbook, worksheet1, 'ProductivitySummary');\n\n const excelBuffer: any = XLSX.write(workbook, {\n bookType: 'xlsx',\n type: 'array',\n });\n this.saveAsExcelFile(excelBuffer, excelFileName);\n });\n }\n exportMultipleSheetAsExcelFileforOrderStatus(\n json: any[],\n excelFileName: string,\n options: any = { skipHeader: true }\n ): void {\n import('xlsx').then((XLSX) => {\n const worksheet: any = XLSX.utils.json_to_sheet(json[1], options);\n const worksheet1: any = XLSX.utils.json_to_sheet(json[0], options);\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, 'Work Orders');\n XLSX.utils.book_append_sheet(workbook, worksheet1, 'Lines');\n\n const excelBuffer: any = XLSX.write(workbook, {\n bookType: 'xlsx',\n type: 'array',\n });\n this.saveAsExcelFile(excelBuffer, excelFileName);\n });\n }\n\n private saveAsExcelFile(buffer: any, fileName: string): void {\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\n FileSaver.saveAs(\n data,\n fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION\n );\n }\n\n private saveAsCsvFile(csvContent: string, fileName: string): void {\n const blob: Blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n FileSaver.saveAs(\n blob,\n fileName + '_export_' + new Date().getTime() + '.csv'\n );\n }\n\n exportAsCsvFile(\n json: any[],\n csvFileName: string,\n options: any = { skipHeader: true }\n ): void {\n import('xlsx').then((XLSX) => {\n // Converte il JSON in un foglio di lavoro\n const worksheet: any = XLSX.utils.json_to_sheet(json, options);\n \n // Converte il foglio di lavoro in una stringa CSV\n const csvContent: string = XLSX.utils.sheet_to_csv(worksheet);\n \n // Salva il contenuto CSV come file\n this.saveAsCsvFile(csvContent, csvFileName);\n });\n }\n \n splitTextCellExcel(text: string, limitCell: number): string[] {\n const chunks: string[] = [];\n if(text.length < limitCell)\n return chunks;\n for (let i = 0; i < text.length; i += limitCell) {\n chunks.push(text.slice(i, i + limitCell));\n }\n return chunks;\n }\n\n getValueLine(text: any, textArray: string[] = null, index: number, alwaysSet: boolean): string{\n let value = '' \n if(alwaysSet || index === 0)\n return textArray ? textArray[0] : text;\n\n if(textArray && index <= textArray.length)\n value = textArray[index];\n\n return value\n }\n\n}\n","import {\n Component,\n Input,\n OnInit,\n ElementRef,\n EventEmitter,\n Output,\n} from '@angular/core';\n// import {\n// FeedbackService,\n// DealerBrandService,\n// BrandStyleService,\n// GetBrandCodeOnBrandStyleRequestParams,\n// ApiAppointmentService,\n// SendFeedBackMailToHelpDeskRequestParams,\n// } from '@api-jobcard';\nimport {\n FeedbackCreationDto,\n DealerBrandStyle,\n} from 'src/app/models/model/models';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport {\n AzureStorageService,\n UploadStatus,\n} from 'src/app/shared/azure-storage/azure-storage.service';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n Observable,\n of,\n Subject,\n switchMap,\n tap,\n} from 'rxjs';\nimport { CustomerFormService } from 'src/app/appointment/customer/customer-form.service';\nimport { SearchVehicleModalComponent } from 'src/app/appointment/customer/search-vehicle-modal/search-vehicle-modal.component';\nimport { environment } from 'src/environments/environment';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { mergeMap } from 'rxjs';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { CustomerCompanyDto } from 'src/api/djc-admin-service/model/customerCompanyDto';\nimport { AppointmentDto, JobcardAttachmentDto, WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { NewAppointmentService } from 'src/app/appointment/new-appointment.service';\nimport { JobcardVehicleDto } from 'src/api/djc-booking-service/model/jobcardVehicleDto';\nimport { CustomerCompanyService, GetCustomerCompaniesRequestParams, GetVehiclesRequestParams, ModelDto, VehicleService } from 'src/api/djc-booking-service';\nimport { AsistFeedbackService, SendAssistRequestParams } from 'src/api/djc-asist-service/api/asistFeedback.service';\nimport { FeedbackResultDto } from 'src/api/djc-asist-service/model/feedbackResultDto';\nimport { AsistResponseDto } from 'src/api/djc-asist-service/model/asistResponseDto';\nimport { AppointmentsService as AsistAppointmentsService} from 'src/api/djc-asist-service';\n\ninterface FeedbackResultDtoFE extends FeedbackResultDto {\n name?: string;\n date?: string;\n}\n@Component({\n selector: 'jc-feedback-modal',\n templateUrl: './feedback-modal.component.html',\n styleUrls: ['./feedback-modal.component.scss'],\n})\n\nexport class FeedbackModalComponent implements OnInit {\n @Input() feedbackModalData: any;\n @Input() elementRef: ElementRef;\n @Output() customerEmit = new EventEmitter();\n feedbackPayload: FeedbackResultDtoFE = {};\n feedbackPayloadForAG: FeedbackCreationDto = {};\n notes: string;\n maxFileSize = false;\n attachmentFile: File;\n filesName = '';\n files: any[] = [];\n myDate = new Date();\n user: WorkshopUserDto;\n url: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n RequestNumber: string;\n questionPlaceholder = $localize`Description of issue/feedback`;\n attachmentPlaceholder = $localize`Attached file could be useful`;\n uploadPlaceHolder = $localize`Upload`;\n azureFolder: string;\n description: string;\n workshopUserId: string;\n jobcardAttachments: JobcardAttachmentDto[];\n container = 'dev';\n fileExtension: string;\n blobName: string;\n workshop: any;\n searchingCustomer = false;\n bookingId: number;\n searchingVin = false;\n searchingPlate = false;\n searchingStockNumber = false;\n tmpVehicle: JobcardVehicleDto;\n model: ModelDto;\n applicationType: string;\n software: string;\n version: string;\n shortDescription: string;\n isMobileApp = false;\n noOfBrands: number;\n brandName: string;\n brandCode: string;\n appointmentDto: AppointmentDto;\n isPrePopulated: boolean;\n private vinPinSnFocus$ = new Subject();\n private customerFocus$ = new Subject();\n userInteractedWithCategoryField = false;\n workshopId: number;\n userLang: string;\n\n\n constructor(\n public activeModal: NgbActiveModal,\n public userService: UserAdminService,\n public workshopService: WorkshopAdminService,\n private toastrService: ToastrService,\n //TODO(Matteo) ignorare RemoveYaml isIveco false\n // public feedbackService: FeedbackService,\n private azureStorageService: AzureStorageService,\n private customerCompanyService: CustomerCompanyService,\n public appointmentService: NewAppointmentService,\n private customerFormService: CustomerFormService,\n private modalService: NgbModal,\n private vehicleService: VehicleService,\n //TODO(Matteo) ignorare RemoveYaml AG\n // private dealerBrandService: DealerBrandService,\n //TODO(Matteo) ignorare RemoveYaml AG\n // private brandStyleService: BrandStyleService,\n private router: Router,\n private apiAppointmentService: AsistAppointmentsService,\n private activatedRoute: ActivatedRoute,\n private asistFeedbackService: AsistFeedbackService\n ) {}\n\n ngOnInit() {\n this.userService.getUser().subscribe(user => {\n this.userLang = this.userService.getLanguage(user.language);\n this.workshopId = user.workshopId;\n this.workshopService.getWorkshop().subscribe((workshop: any) => {\n this.workshop = JSON.parse(JSON.stringify(workshop));\n });\n if (environment.isIveco) {\n // Check dto existance from appointment creation/workfile details\n if (!this.appointmentDto) {\n // Fetch appt for header button on workfile and workspace when its open\n if (\n (this.router.url.includes('/workfile') &&\n this.router.url.match(/[0-9]+/)) ||\n this.router.url.includes('/workspace/planning') ||\n this.router.url.includes('/workspace/planning/clocking')\n ) {\n let appId = 0;\n if (this.router.url.includes('/workfile')) {\n appId = Number(this.router.url.split('/')[2]);\n }\n if (this.router.url.includes('workspace/planning')) {\n this.activatedRoute.queryParamMap.pipe().subscribe((params) => {\n if (params.get('appointmentId')) {\n appId = Number(params.get('appointmentId'));\n }\n });\n }\n if (this.router.url.includes('workspace/planning/clocking')) {\n this.activatedRoute.queryParamMap.pipe().subscribe((params) => {\n if (params.get('appointmentId')) {\n appId = Number(params.get('appointmentId'));\n }\n });\n }\n if (appId !== 0 && !isNaN(appId)) {\n this.apiAppointmentService\n .getAppointmentByIdForFeedback({\n applicationToken: this.userService.newToken,\n id: appId,\n authorization: this.userService.accessToken,\n })\n .subscribe((appointment: AppointmentDto) => {\n this.appointmentDto = appointment;\n this.initServicesData();\n });\n } else {\n this.initServicesData();\n }\n } else {\n this.initServicesData();\n }\n } else {\n this.initServicesData();\n }\n this.initPayloadDataForCV();\n } else {\n this.initServicesData();\n this.initPayloadDataForAG();\n }\n })\n }\n\n filesChange(event: any) {\n this.maxFileSize = false;\n if (event.target.files.length > 0) {\n const filesObj = event.target.files;\n this.files = Array.from(filesObj);\n const filesNameArray: any[] = [];\n let size = 0;\n this.files.forEach((file: File) => {\n filesNameArray.push(file.name);\n size += file.size;\n });\n\n this.filesName = filesNameArray.join(', ');\n const fileSize = Math.round(size / (1024 * 1024));\n if (fileSize > 50) {\n this.maxFileSize = true;\n }\n }\n }\n\n\n /* CUSTOMER COMPANY */\n searchCustomer = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n tap(() => (this.searchingCustomer = true)),\n switchMap((term) => {\n if (term.length < 3) {\n return of([]);\n }\n const params: GetCustomerCompaniesRequestParams = {\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n isActive: true,\n noLoader: true,\n name: term,\n dmsId: term,\n page: 0,\n size: 100,\n };\n return this.customerCompanyService\n .getCustomerCompanies(params)\n .pipe(catchError(() => of([])));\n }),\n tap(() => (this.searchingCustomer = false))\n );\n\n scrollToItem() {\n const elements = this.elementRef.nativeElement.querySelectorAll('.active');\n if (elements?.length > 0) {\n elements[0].scrollIntoView();\n }\n }\n\n customerFocus(event: any) {\n this.customerFocus$.next(event.target.value);\n }\n\n resultFormatCustomerListValue(value: any) {\n let name: string;\n name = value.dmsId ? value.dmsId + ' - ' : '';\n name += value.name;\n name += value.zipcode ? ' (' + value.zipcode + ')' : '';\n return name;\n }\n\n inputFormatCustomerListValue(value: any) {\n return value.name;\n }\n\n /** Update data after main customer */\n itemCustomerSelected(data: string) {\n if (\n this.appointmentService?.appointment?.customerCompany?.id &&\n this.appointmentService?.appointment?.customerCompany.id !== -1\n ) {\n this.customerFormService.getUsersListByCustomerId();\n this.customerCompanyService\n .getCustomerCompanyById({\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n id: this.appointmentService.appointment.customerCompany.id,\n })\n .subscribe((cc) => {\n this.appointmentService.appointment.customerCompany = cc;\n });\n } else {\n if (data) {\n this.appointmentService.appointment.customerCompany = {\n id: -1,\n name: data,\n displayedName: data,\n };\n } else {\n this.appointmentService.appointment.customerCompany = {\n id: -1,\n name: undefined,\n };\n }\n this.customerFormService.customerUserList = [];\n this.appointmentService.appointment.vehicle = {\n id: -1,\n vin: undefined,\n model: undefined,\n };\n this.appointmentService.appointment.vehicle.model = { id: -1 };\n }\n this.customerEmit.emit(data);\n }\n\n openSearchVehicleModal(): void {\n const modalRef = this.modalService.open(SearchVehicleModalComponent, {\n size: 'xl',\n backdrop: 'static',\n });\n modalRef.componentInstance.customerId = this.appointmentService?.appointment?.customerCompany?.id;\n modalRef.componentInstance.workshop = this.workshop;\n modalRef.result.then(\n (vehicle: JobcardVehicleDto) => {\n this.appointmentService.appointment.vehicle = vehicle;\n },\n () => {\n /* Nothing to do. */\n }\n );\n }\n\n searchVehicleByVin = (text$: Observable) =>\n text$.pipe(\n debounceTime(500),\n distinctUntilChanged(),\n tap(() => (this.searchingVin = true)),\n switchMap((term) => {\n if (\n term.length < 3 &&\n (!this.appointmentService.appointment.customerCompany?.id ||\n this.appointmentService.appointment.customerCompany?.id === -1)\n ) {\n return of([]);\n }\n term = term.toUpperCase();\n const params: GetVehiclesRequestParams = {\n workshopId: this.workshopId,\n isAdmin: false,\n authorization: this.userService.accessToken,\n brandId:\n this.appointmentService.appointment.vehicle.brand?.id === -1\n ? null\n : this.appointmentService.appointment.vehicle.brand?.id,\n customerId:\n this.appointmentService.appointment.customerCompany?.id === -1\n ? null\n : this.appointmentService.appointment.customerCompany?.id,\n modelId:\n this.appointmentService.appointment.vehicle.model?.id === -1\n ? null\n : this.appointmentService.appointment.vehicle.model?.id,\n vin: term,\n noLoader: true,\n page: 0,\n size: 50,\n view: 'booking',\n };\n return this.vehicleService\n .getVehicles(params)\n .pipe(catchError(() => of([])));\n }),\n tap(() => (this.searchingVin = false))\n );\n\n resultFormatVehicleVinListValue(value: JobcardVehicleDto) {\n return value.vin;\n }\n\n itemVehicleVinSelected(data: any) {\n if (!this.appointmentService.appointment.vehicle?.id) {\n if (!data) {\n this.appointmentService.appointment.vehicle = { id: -1 };\n }\n this.appointmentService.appointment.vehicle = this.tmpVehicle;\n this.appointmentService.appointment.vehicle.model = this.tmpVehicle.model;\n } else {\n this.tmpVehicle = { id: -1 };\n this.tmpVehicle.model = { id: -1 };\n this.findVehicle();\n }\n }\n\n vinFocus(event: any) {\n this.vinPinSnFocus$.next(event.target.value);\n if (\n !this.appointmentService.appointment.vehicle?.id ||\n this.appointmentService.appointment.vehicle?.id === -1\n ) {\n event.stopPropagation();\n setTimeout(() => {\n const inputEvent: Event = new Event('input');\n event.target.dispatchEvent(inputEvent);\n }, 0);\n }\n }\n inputFormatVehicleVinListValue(value: JobcardVehicleDto) {\n return value.vin;\n }\n\n changeApplicationType(event: any) {\n if (event.target.value === 'WebApp') {\n this.isMobileApp = false;\n } else {\n this.isMobileApp = true;\n }\n }\n\n private findVehicle() {\n const params: GetVehiclesRequestParams = {\n workshopId: this.workshopId,\n isAdmin: false,\n authorization: this.userService.accessToken,\n vin: this.appointmentService.appointment.vehicle.vin,\n };\n this.vehicleService\n .getVehicles(params)\n .subscribe(\n (vehicleList: Array) => {\n this.searchingPlate = false;\n this.searchingVin = false;\n this.searchingStockNumber = false;\n this.appointmentService.appointment.vehicle = vehicleList[0];\n if (\n this.appointmentService.appointment.vehicle?.customerCompanyId !==\n this.appointmentService.appointment.customerCompany?.id\n ) {\n this.customerCompanyService\n .getCustomerCompanyById({\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n id: this.appointmentService.appointment.vehicle\n ?.customerCompanyId,\n })\n .subscribe((cc: CustomerCompanyDto) => {\n this.appointmentService.appointment.customerCompany = cc;\n });\n }\n },\n () => {\n this.searchingPlate = false;\n this.searchingVin = false;\n }\n );\n }\n\n private addFile(\n file: File,\n requestId: string,\n contactId: string\n ): Promise {\n const reader = new FileReader();\n const fileName = file.name.substring(0, file.name.lastIndexOf('.'));\n this.blobName = fileName;\n this.azureFolder = 'dev';\n const fileExtension = file.name.substring(file.name.lastIndexOf('.') + 1);\n this.fileExtension = fileExtension;\n const lengthOfCode = 3;\n const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567';\n const blobName = this.makeRandom(lengthOfCode, possible) + '-' + file.name;\n const fileAzureUrl = this.azureStorageService.buildUrlFeedback(\n `${blobName}`,\n this.azureFolder\n );\n return new Promise((resolve) => {\n reader.onload = (e) => {\n resolve(\n this.uploadFileOnAzure(\n this.getFileSrc(e),\n file,\n fileAzureUrl,\n requestId,\n contactId,\n blobName\n )\n );\n };\n reader.readAsDataURL(file);\n });\n }\n\n private makeRandom(lengthOfCode: number, possible: string) {\n let text = '';\n for (let i = 0; i < lengthOfCode; i++) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return text;\n }\n\n private getFileSrc(e: any): string {\n let fileSrc;\n const result = e.target.result;\n if (result instanceof ArrayBuffer) {\n fileSrc = window.btoa(String.fromCharCode(...new Uint8Array(result)));\n } else {\n fileSrc = result;\n }\n return fileSrc;\n }\n\n private uploadFileOnAzure(\n fileSrc: string,\n file: File,\n fileUrl: string,\n requestId: string,\n contactId: string,\n blobName: string\n ): Promise {\n const blob: Blob = this.azureStorageService.b64ToBlob(fileSrc, file.type);\n return new Promise((resolve) => {\n this.azureStorageService.getTokenFeedback().subscribe((t) => {\n this.azureStorageService\n .uploadAndGetStatus(fileUrl + '?' + t.key, blob)\n .then((statusUpload) => {\n if (statusUpload === UploadStatus.UPLOAD_SUCCESS) {\n const attachment: JobcardAttachmentDto = {};\n attachment.filesize = file.size;\n attachment.filename = file.name;\n attachment.url = fileUrl;\n attachment.type = file.type;\n attachment.creationDate = moment(new Date()).toISOString();\n attachment.year = moment(new Date()).year();\n attachment.description = this.description;\n attachment.workshopUserId = this.workshopUserId;\n resolve(attachment);\n this.asistFeedbackService\n .sendAssistAttachement({\n authorization: this.userService.accessToken,\n feedbackAttachmentDto: {\n requestId,\n contactId,\n blobName,\n userId: this.feedbackPayload.userId,\n containerName: this.container,\n fileName: file.name,\n fileExtension: this.fileExtension,\n fileSize: file.size.toString(),\n },\n })\n .subscribe(\n (response: any) => {\n if (undefined !== response && response !== null) {\n if (response.IsSuccessful) {\n this.toastrService.success(\n $localize`Attachment uploaded succesfully.`\n );\n } else if (response.IsSuccessful === false) {\n this.toastrService.error(\n $localize`Failed to submit the order`\n );\n } else {\n this.toastrService.error(\n $localize`Failed to submit the order`\n );\n }\n } else {\n this.toastrService.error(\n $localize`Failed to submit the order`\n );\n }\n },\n () => {\n // Error during send attachment data to the Web Service\n this.toastrService.error(\n $localize`Failed to submit the order`\n );\n }\n );\n }\n });\n });\n });\n }\n\n /*\n * Init workshopService and AppointmentService data in order to prepare the modal for it's initial state.\n * WorkshopService : fetch the workshop\n * AppointmentService : init Appointment, Vehicle, Vehicle model and Customer\n */\n private initServicesData() {\n this.tmpVehicle = this.appointmentService.appointment?.vehicle || {\n id: -1,\n };\n\n if (this.appointmentDto) {\n this.appointmentService.appointment = this.appointmentDto;\n this.bookingId = this.appointmentDto.id;\n this.applicationType = 'web';\n this.isPrePopulated = true;\n // Manage undefined data with prepopulation\n if (!this.appointmentService?.appointment?.customerCompany) {\n this.appointmentService.appointment.customerCompany = {\n id: -1,\n name: undefined,\n };\n }\n if (!this.appointmentService?.appointment?.vehicle) {\n this.appointmentService.appointment.vehicle = {\n id: -1,\n vin: null,\n model: null,\n };\n }\n if (!this.appointmentService?.appointment?.vehicle?.model) {\n this.appointmentService.appointment.vehicle.model = {\n id: -1,\n name: '',\n };\n }\n } else {\n this.appointmentService.appointment = { id: -1 };\n this.appointmentService.appointment.customerCompany = {\n id: -1,\n name: undefined,\n };\n\n this.appointmentService.appointment.vehicle = {\n id: -1,\n vin: null,\n model: null,\n };\n this.appointmentService.appointment.vehicle.model = { id: -1, name: ' ' };\n }\n }\n\n private initPayloadDataForCV() {\n this.feedbackPayload.fbCategory = 'Digital Jobcard';\n this.feedbackPayload.brand = 'IVECO';\n //this.feedbackPayload.region = 'Europe';\n this.feedbackPayload.region = this.workshop?.marketId;\n this.feedbackPayload.date = moment(this.myDate).toString();\n this.feedbackPayload.userId = this.feedbackModalData.id;\n this.feedbackPayload.name = this.feedbackModalData.displayedName;\n if (\n undefined !== this.feedbackModalData.notificationEmail &&\n null !== this.feedbackModalData.notificationEmail\n ) {\n this.feedbackPayload.notificationEmail = this.feedbackModalData.notificationEmail;\n } else {\n this.feedbackPayload.notificationEmail = '';\n }\n this.feedbackPayload.sapCode = this.feedbackModalData.sapCode;\n }\n\n private initPayloadDataForAG() {\n //TODO(Matteo) ignorare RemoveYaml AG\n // this.dealerBrandService\n // .getDealerBrandStyle()\n // .pipe(\n // mergeMap((brand: DealerBrandStyle): any => {\n // this.brandName = brand.brandStyleId;\n // const params2: GetBrandCodeOnBrandStyleRequestParams = {\n // brandStyle: this.brandName,\n // };\n // return this.brandStyleService.getBrandCodeOnBrandStyle(params2);\n // })\n // )\n // .subscribe((res: any) => {\n // this.brandCode = res.iceCode;\n // this.feedbackPayloadForAG.brand = this.brandCode;\n // });\n this.noOfBrands = 1;\n this.feedbackPayloadForAG.sapCode = this.feedbackModalData.sapCode;\n this.feedbackPayloadForAG.region = this.workshop?.marketId;\n this.feedbackPayloadForAG.userId = this.feedbackModalData.id;\n this.feedbackPayloadForAG.notificationEmail = this.feedbackModalData\n .notificationEmail\n ? this.feedbackModalData.notificationEmail\n : '';\n this.feedbackPayloadForAG.date = moment(this.myDate).toString();\n this.feedbackPayloadForAG.name = this.feedbackModalData.displayedName;\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering, @typescript-eslint/no-empty-function\n sendAttachement(requestId: string, contactId: string) {\n this.files.forEach((file: File) => {\n this.addFile(file, requestId, contactId);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n alreadyAdded(attachmentFile: File): boolean {\n if (!this.jobcardAttachments) {\n this.jobcardAttachments = [];\n }\n return !!this.jobcardAttachments?.find(\n (attachment) =>\n attachment.filename === attachmentFile.name && !attachment.isDeleted\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n onSubmit() {\n const additionalFieldsInformation = {\n workshopName: this.workshop.name,\n bookingId: this.bookingId,\n customerName: this.appointmentService.appointment.customerCompany\n .displayedName,\n serialNumber: this.appointmentService.appointment.vehicle.vin,\n model: this.appointmentService.appointment.vehicle.model.name,\n applicationType: this.applicationType,\n software: this.software,\n version: this.version,\n shortDescription: this.shortDescription,\n };\n\n this.feedbackPayload.notes =\n this.notes + JSON.stringify(additionalFieldsInformation);\n\n const params: SendAssistRequestParams = {\n acceptLanguage: this.userLang,\n authorization: this.userService.accessToken,\n feedbackResultDto: this.feedbackPayload,\n };\n this.asistFeedbackService\n .sendAssist(params)\n .subscribe((fd: AsistResponseDto) => {\n this.url = fd.RequestURL;\n this.RequestNumber = fd.RequestNumber;\n this.activeModal.close(fd);\n if (this.RequestNumber) {\n this.toastrService.success(\n $localize`Thanks for sending this feedback, it will be managed soon! Your feedback\n identifier is :` +\n `${this.RequestNumber}`,\n '',\n {\n enableHtml: true,\n closeButton: true,\n timeOut: 100000,\n disableTimeOut: true,\n }\n );\n if (this.files.length > 0) {\n this.sendAttachement(fd.RequestId, fd.ContactId);\n }\n } else {\n this.toastrService.error($localize`Failed to submit the order`);\n }\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n onAsistSubmit() {\n this.feedbackPayloadForAG.notes = this.notes;\n const noteArr: any[] = [];\n const array = this.notes.split('\\n');\n array.forEach((element) => {\n noteArr.push(element);\n });\n this.feedbackPayloadForAG.noteArr = noteArr;\n //TODO(Matteo) ignorare RemoveYaml isiveco false\n // const params: SendFeedBackMailToHelpDeskRequestParams = {\n // files: this.files,\n // feedbackResultDto: this.feedbackPayloadForAG,\n // };\n // this.feedbackService\n // .sendFeedBackMailToHelpDesk(params)\n // .subscribe((res: any) => {\n // this.activeModal.close();\n // if (res) {\n // this.toastrService.success(\n // $localize`Thanks for sending this feedback, it will be managed soon!`\n // );\n // } else {\n // this.toastrService.error($localize`Failed to submit the feedback`);\n // }\n // });\n }\n}\n","
    \n

    Feedback Creation

    \n \n ×\n \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n Please enter valid e-mail\n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n \n Loading...\n
    \n
    \n \n
    \n {{ appointmentService?.appointment?.customerCompany?.dmsId }}\n
    \n
    \n -1\n }\"\n [(ngModel)]=\"appointmentService.appointment.customerCompany\"\n [ngbTypeahead]=\"searchCustomer\"\n (keydown.ArrowDown)=\"scrollToItem()\"\n (keydown.ArrowUp)=\"scrollToItem()\"\n (focus)=\"customerFocus($event)\"\n [resultFormatter]=\"resultFormatCustomerListValue\"\n [inputFormatter]=\"inputFormatCustomerListValue\"\n (ngModelChange)=\"itemCustomerSelected($event)\"\n #instance=\"ngbTypeahead\"\n i18n-placeholder\n [disabled]=\"\n appointmentService.appointment.jobcard?.dmsJobOrder ||\n isPrePopulated\n \"\n [ngbTooltip]=\"\n customerNameRef?.value?.name?.trim()?.length &&\n appointmentService.appointment.customerCompany?.displayedName\n \"\n autocomplete=\"nope\"\n #customerNameRef=\"ngModel\"\n />\n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n Please enter only numeric values\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n Loading...\n
    \n
    \n
    \n -1 &&\n appointmentService.appointment.vehicle?.vin\n }\"\n [(ngModel)]=\"appointmentService.appointment.vehicle\"\n [ngbTypeahead]=\"searchVehicleByVin\"\n (keydown.ArrowDown)=\"scrollToItem()\"\n (keydown.ArrowUp)=\"scrollToItem()\"\n [resultFormatter]=\"resultFormatVehicleVinListValue\"\n [inputFormatter]=\"inputFormatVehicleVinListValue\"\n (ngModelChange)=\"itemVehicleVinSelected($event)\"\n i18n-placeholder\n (focus)=\"vinFocus($event)\"\n [disabled]=\"\n appointmentService.appointment.jobcard?.dmsJobOrder ||\n isPrePopulated\n \"\n #vehicleSlnoRef\n />\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n -1 &&\n appointmentService?.appointment?.vehicle?.model?.name\n }\"\n [(ngModel)]=\"appointmentService.appointment.vehicle.model.name\"\n [disabled]=\"\n appointmentService?.appointment?.vehicle?.model?.name ||\n isPrePopulated\n \"\n #vehicleSlnoRef1\n />\n
    \n
    \n\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n \n \n \n \n \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n
    \n
    \n \n \n
    \n This or these files won't be attached in the feedback as their combined\n size is too large (exceeding 50MB limit)\n
    \n \n
    \n
    \n \n
    \n \n Cancel\n \n \n Send\n \n
    \n\n\n\n
    \n
    \n
    \n \n
    \n

    \n User ID: \n {{ feedbackPayloadForAG?.userId }}\n

    \n
    \n
    \n
    \n
    \n \n
    \n

    \n Name: \n {{ feedbackPayloadForAG?.name }}\n

    \n
    \n
    \n
    \n
    \n \n
    \n

    \n Dealer Name: \n {{ workshop?.name }}\n

    \n
    \n
    \n
    \n
    \n \n
    \n

    \n Date: \n {{ feedbackPayloadForAG?.date | date: 'mediumDate' }}\n

    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n This or these files won't be attached in the feedback as their combined\n size is too large (exceeding 50MB limit)\n
    \n
    \n
    \n
    \n \n
    \n \n Cancel\n \n \n Send\n \n
    \n\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of, zip } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { MapGeocoder } from '@angular/google-maps';\nimport { ToastrService } from 'ngx-toastr';\nimport { WorkshopUserTravelPosition } from '@models-smartview';\nimport { catchError } from 'rxjs/operators';\nimport { JobcardTravel } from 'src/app/models/model/models';\nimport { EstimateTravel } from '../travel-modal/travel-map-display/travel-map-display.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GoogleWebService {\n travelFromShowCoordinatesEnum = JobcardTravel.TravelFromShowCoordinatesEnum;\n travelToShowCoordinatesEnum = JobcardTravel.TravelToShowCoordinatesEnum;\n private isApiLoaded: BehaviorSubject = new BehaviorSubject(false);\n // eslint-disable-next-line @typescript-eslint/member-ordering\n isApiLoaded$ = this.isApiLoaded.asObservable();\n\n constructor(\n httpClient: HttpClient,\n private geocoder: MapGeocoder,\n private toastrService: ToastrService\n ) {\n window.console.log('GoogleMapsService ~ loading google maps api...');\n const key = environment.googleCloudApiKey;\n httpClient\n .jsonp(\n `https://maps.googleapis.com/maps/api/js?key=${key}&libraries=geometry,places,`,\n 'callback'\n )\n .subscribe(\n () => {\n window.console.log('GoogleMapsService ~ google maps api loaded');\n this.isApiLoaded.next(true);\n },\n (error) => {\n window.console.log(\n 'GoogleMapsService ~ google maps api cannot be loaded',\n error\n );\n }\n );\n }\n\n /**\n * This function used to get the location details based on Address (Google API)\n *\n * @param data is address.\n * @returns\n */\n getLatLngBasedOnAddress(data: string): Observable {\n return this.geocoder.geocode({\n address: data,\n });\n }\n\n /**\n * This function used to get the lat & lng based on travel from and travel to Address\n *\n * @param travel Travel details\n * @returns Promise value\n */\n getEstimatePositionBasedOnAddress(travel: EstimateTravel) {\n return new Promise((resolve) => {\n const travelFrom = [\n travel?.travelFromAddressLine1,\n travel?.travelFromAddressLine2,\n travel?.travelFromAddressLine3,\n travel?.travelFromAddressLine4,\n travel?.travelFromPostalCode,\n ]\n .filter(Boolean)\n .join(',');\n\n const travelTo = [\n travel?.travelToAddressLine1,\n travel?.travelToAddressLine2,\n travel?.travelToAddressLine3,\n travel?.travelToAddressLine4,\n travel?.travelToPostalCode,\n ]\n .filter(Boolean)\n .join(',');\n\n let fromAddress$;\n if (\n travel?.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromAddress &&\n travelFrom\n ) {\n fromAddress$ = this.getLatLngBasedOnAddress(travelFrom).pipe(\n catchError(() => of({ results: [], status: null }))\n );\n } else if (\n travel?.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromCoordinates\n ) {\n fromAddress$ = of({\n status: 'latlng',\n results: {\n lat: travel.travelFromLatitude,\n lng: travel?.travelFromLongitude,\n },\n });\n }\n let toAddress$;\n if (\n travel?.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToAddress &&\n travelTo\n ) {\n toAddress$ = this.getLatLngBasedOnAddress(travelTo).pipe(\n catchError(() => of({ results: [], status: null }))\n );\n } else if (\n travel?.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToCoordinates\n ) {\n toAddress$ = of({\n status: 'latlng',\n results: {\n lat: travel.travelToLatitude,\n lng: travel?.travelToLongitude,\n },\n });\n }\n if (!toAddress$ || !fromAddress$) {\n this.showErrorMessage(\n $localize`Unable to calculate travel information. Please check address details`\n );\n resolve(null);\n }\n const positions: WorkshopUserTravelPosition[] = [];\n zip(fromAddress$, toAddress$).subscribe(([faddress, tAddress]) => {\n if (\n travel?.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromCoordinates &&\n (faddress.results.lat === undefined ||\n faddress.results.lng === undefined)\n ) {\n this.showErrorMessage(\n $localize`Unable to calculate travel information. Please check address details`\n );\n resolve(null);\n } else if (\n travel?.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToCoordinates &&\n (tAddress.results.lat === undefined ||\n tAddress.results.lng === undefined)\n ) {\n this.showErrorMessage(\n $localize`Unable to calculate travel information. Please check address details`\n );\n resolve(null);\n }\n let addressFromPosition: WorkshopUserTravelPosition;\n let addressToPosition: WorkshopUserTravelPosition;\n if (faddress?.status === google.maps.GeocoderStatus.OK) {\n addressFromPosition = {\n latitude: faddress?.results[0].geometry.location.lat(),\n longitude: faddress?.results[0].geometry.location.lng(),\n };\n positions.splice(0, 0, addressFromPosition);\n } else if (faddress?.status === 'latlng') {\n addressFromPosition = {\n latitude: faddress?.results.lat,\n longitude: faddress?.results.lng,\n };\n positions.splice(0, 0, addressFromPosition);\n }\n if (tAddress?.status === google.maps.GeocoderStatus.OK) {\n addressToPosition = {\n latitude: tAddress?.results[0].geometry.location.lat(),\n longitude: tAddress?.results[0].geometry.location.lng(),\n };\n positions.splice(1, 0, addressToPosition);\n } else if (tAddress?.status === 'latlng') {\n addressToPosition = {\n latitude: tAddress?.results.lat,\n longitude: tAddress?.results.lng,\n };\n positions.splice(1, 0, addressToPosition);\n }\n Promise.all(positions).then(() => {\n if (positions?.length > 1) {\n travel.estimateTravelPosition = positions;\n resolve(travel);\n } else {\n this.showErrorMessage(\n $localize`Unable to calculate travel information. Please check address details`\n );\n resolve(null);\n }\n });\n });\n });\n }\n\n /**\n * https://developers.google.com/maps/documentation/javascript/reference/distance-matrix\n *\n * @param request DistanceMatrixRequest\n * @returns DistanceMatrixResponse\n */\n calculateDistanceMatrix(\n request: google.maps.DistanceMatrixRequest\n ): Observable {\n const self = this;\n return new Observable((observer) => {\n new google.maps.DistanceMatrixService().getDistanceMatrix(\n request,\n (\n response: google.maps.DistanceMatrixResponse,\n status: google.maps.DistanceMatrixStatus\n ) => {\n if (status === google.maps.DistanceMatrixStatus.OK) {\n observer.next(response);\n observer.complete();\n } else {\n self.showErrorMessage(\n $localize`Unable to calculate estimate travel distance. Please check address details`\n );\n observer.next(null);\n observer.complete();\n }\n }\n );\n });\n }\n\n showErrorMessage(message: string) {\n this.toastrService.error(message);\n }\n}\n","import {\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { Permission } from 'src/app/models/model/models';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { PermissionsService } from 'src/app/core/permissions/permissions.service';\n\n@Directive({\n selector: '[jcHasPermissions]',\n})\nexport class HasPermissionsDirective implements OnChanges, OnDestroy {\n @Input() jcHasPermissions: Permission[];\n @Input() jcHasPermissionsIf: boolean;\n @Input() jcHasPermissionsNot: boolean;\n @Input() jcHasPermissionsOr: boolean;\n private subscription: Subscription;\n\n constructor(\n private viewContainer: ViewContainerRef,\n private templateRef: TemplateRef,\n private permissionsService: PermissionsService\n ) {}\n\n ngOnChanges(): void {\n this.applyPermission();\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n private applyPermission(): void {\n this.subscription = this.permissionsService\n .hasPermissions(this.jcHasPermissions)\n .pipe(first())\n .subscribe((authorized) => {\n if (\n (((authorized && this.jcHasPermissionsNot !== true) ||\n (!authorized && this.jcHasPermissionsNot === true)) &&\n this.jcHasPermissionsIf !== false) ||\n this.jcHasPermissionsOr\n ) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, Inject, LOCALE_ID, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\n// import {\n// CustomerCompanyService,\n// DMSService as ApiDmsService,\n// SyncOperationsFromDmsRequestParams,\n// SyncPartsFromDmsRequestParams,\n// VehicleService,\n// WorkshopUserService,\n// ApiAppointmentService,\n// } from '@api-jobcard';\nimport { WorkshopUsersService } from 'src/app/core/workshop-user/workshop-user.service';\nimport {\n ApiResponseDto,\n Appointment,\n CustomerCompany,\n DmsStatus,\n Language,\n JobcardItem,\n Notification,\n NotificationType,\n ReleaseVersion,\n Vehicle,\n WorkshopSale,\n WorkshopUser,\n Permission,\n} from 'src/app/models/model/models';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as saveAs from 'file-saver';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n filter,\n of,\n Subject,\n take,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { ConfigService } from 'src/app/core/config/config.service';\nimport { LanguagesService } from 'src/app/core/languages/languages.service';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { Util } from 'src/app/core/util/util';\nimport { WebsocketService } from 'src/app/core/websocket/websocket.service';\nimport { SortEvent } from 'src/app/shared/sortable/sortable.directive';\nimport { environment } from 'src/environments/environment';\nimport { DmsService } from '../../core/dms/dms.service';\nimport { AzureStorageService } from '../azure-storage/azure-storage.service';\nimport { ClockingLogsModalComponent } from '../clocking-logs-modal/clocking-logs-modal.component';\nimport { DmsConnectionService } from '../dms-indicator/dms-connection.service';\nimport { FeedbackModalComponent } from '../feedback-modal/feedback-modal.component';\nimport { PermissionsService } from 'src/app/core/permissions/permissions.service';\nimport { RefreshTokenDto } from 'src/api/djc-auth-service/model/refreshTokenDto';\nimport { LoginControllerService, RefreshUserRequestParams } from 'src/api/djc-auth-service/api/loginController.service';\nimport { GetReleaseDetailsAllRequestParams, JobcardItemStatusDto, NonProductiveActivityService, NonProductiveActivityStatusDto, WorkshopService as WService } from 'src/api/djc-booking-service';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { NotificationDto, WorkshopDto, WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { DmsControllerService, GetPartsMasterRequestParams, GetSyncCustomersRequestParams, GetSyncVehiclesRequestParams, OperationMasterRequestParams } from 'src/api/djc-dms-service/api/dmsController.service';\nimport { WorkshopUsersAdminService } from 'src/app/core/workshop-user-admin/workshop-user-admin.service';\nimport { ClockingService } from 'src/api/djc-booking-service/api/clocking.service';\n// import { JobcardItemStatusDto } from 'src/api/djc-booking-service/model/JobcardItemStatusDto';\nimport { MatomoCustomService } from 'src/app/core/matomo/matomo-custom.service';\nimport { MatomoTracker } from '@ngx-matomo/tracker';\nimport { CUSTOM_DIMENSIONS_ID } from 'src/app/core/matomo/custom-dimensions';\nimport { AppointmentsService } from 'src/api/djc-booking-service/api/appointments.service';\nimport { AppointmentViewDto } from 'src/api/djc-booking-service/model/appointmentViewDto';\nimport { JobcardViewDto } from 'src/api/djc-booking-service/model/jobcardViewDto';\nimport { GetUserGuideByLanguageRequestParams, JobcardItemDto, NotificationService, ReleaseService, UserGuideService } from 'src/api/djc-booking-service';\ninterface CustomerCompanyWithUsers extends CustomerCompany {\n loading?: boolean;\n loaded?: boolean;\n}\n\n@Component({\n selector: 'jc-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit, OnDestroy {\n collapsed = true;\n dropdowned = false;\n guidedropdowned = false;\n releaseNotesdropdowned = false;\n guideUrl = '';\n // 223152: Property containing the URL of the default language release notes to download if the fetching for\n // the regular release notes URL fails\n defaultGuideUrl = '';\n languages: Language[] = [];\n selectedLanguageId: string;\n user: WorkshopUser;\n users: WorkshopUserDto[];\n workshop: WorkshopDto;\n workshops: WorkshopDto[] = [];\n salesOrganization: WorkshopSale;\n counter = 0;\n notifications: NotificationDto[] = [];\n notificationDisplayed = false;\n interval: any;\n selectedWorkshop: WorkshopDto;\n selectedSalesOrganization: WorkshopSale;\n environment = environment;\n vehicles: Vehicle[];\n role = 'ADVISOR';\n count = 0;\n customerCompanies: CustomerCompanyWithUsers[];\n filterBy = 'customerCompanyDisplayedName';\n filterValue: string;\n filter = false;\n defaultSort: SortEvent = {\n column: 'customerCompanyDisplayedName',\n direction: 'asc',\n };\n uncheck = false;\n dmsStatus: string;\n error: any;\n isBannerOpened: boolean;\n sortedArray: any[] = [];\n versionDate: string;\n currentDate: Date;\n isDateValid: boolean;\n version: ReleaseVersion;\n versionLast: ReleaseVersion;\n versionSecondLast: ReleaseVersion;\n versionThirdLast: ReleaseVersion;\n standAloneMode: boolean;\n clockingErrorCount: number = 0;\n\n private destroyed$ = new Subject();\n private previousUrl: string = '';\n private currentUrl: string = '';\n\n constructor(\n private dmsService: DmsService,\n private userService: UserService,\n private workshopService: WorkshopAdminService,\n private toastrService: ToastrService,\n private ngbModal: NgbModal,\n private languagesService: LanguagesService,\n private notificationService: NotificationService,\n private workshopUsersService: WorkshopUsersAdminService,\n private websocketService: WebsocketService,\n private configService: ConfigService,\n private dmsConnectionService: DmsConnectionService,\n private userGuidesService: UserGuideService,\n private azureStorageService: AzureStorageService,\n private router: Router,\n private route: ActivatedRoute,\n private workService: WService,\n private releaseService: ReleaseService,\n private clockingLogsService: ClockingService,\n private permissionsService: PermissionsService,\n private loginControllerService: LoginControllerService,\n private dmsControllerService: DmsControllerService,\n @Inject(LOCALE_ID) private locale: string,\n private matomoTracker: MatomoTracker,\n private matomoCustomService: MatomoCustomService,\n private apiAppointmentService: AppointmentsService,\n private nonProductiveCronActivitiesService: NonProductiveActivityService\n ) {\n this.customerCompanies = [];\n\n this.initMatomoUrls();\n }\n\n ngOnInit(): void {\n if (environment.isIveco) {\n if (!sessionStorage.getItem('messageClosed')) {\n this.isBannerOpened = true;\n }\n const params: GetReleaseDetailsAllRequestParams = {\n authorization: this.userService.accessToken,\n };\n this.releaseService.getReleaseDetailsAll(params).subscribe(\n (version: any) => {\n this.sortedArray = version.sort((objA: any, objB: any) =>\n new Date(objA?.releaseDate).getTime() <\n new Date(objB?.releaseDate).getTime()\n ? -1\n : 1\n );\n this.versionLast = this.sortedArray[this.sortedArray.length - 3];\n this.versionSecondLast = this.sortedArray[\n this.sortedArray.length - 2\n ];\n this.versionThirdLast = this.sortedArray[this.sortedArray.length - 1];\n },\n (error) => {\n console.log('Release Version not fetch properly', error);\n }\n );\n\n this.currentDate = new Date();\n this.releaseService.getReleaseDetails({authorization: this.userService.accessToken}).subscribe(\n (version) => {\n this.version = version;\n this.checkDate();\n },\n (error) => {\n console.log('Release Version not fetch properly', error);\n }\n );\n }\n if (this.locale === 'en-US') {\n this.locale = 'EN';\n }\n this.selectedLanguageId = this.locale.toUpperCase();\n const loadingStatuses = new BehaviorSubject({\n user: false,\n workshops: false,\n workshop: false,\n languages: false,\n });\n this.userService.getUser().subscribe((user) => {\n this.user = user;\n\n this.permissionsService\n .getPermissions([Permission.ClockingErrors])\n .subscribe((permissions: Permission[]) => {\n if (permissions.indexOf(Permission.ClockingErrors) > -1) {\n this.clockingLogsService\n .getJobcardItemStatusClockingErrors({\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n })\n .subscribe((response: JobcardItemStatusDto[]) => {\n this.clockingErrorCount = response?.length;\n this.nonProductiveCronActivitiesService.getNonProductiveStatusByCron({\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n }).subscribe((resp: NonProductiveActivityStatusDto[]) => {\n this.clockingErrorCount += resp.length;\n if (this.clockingErrorCount > 0) {\n this.workshopUsersService\n .getWorkshopUsers()\n .subscribe((workshopUsers: WorkshopUserDto[]) => {\n this.users = workshopUsers;\n // const userClockingDate = this.users.filter(\n // (user) => user.id === this.user.id\n // )[0]?.clockingLogDate;\n let user = this.users.filter(\n (user) => user.id === this.user.id\n )[0];\n let userClockingDate = user?.clockingLogDate;\n if (\n userClockingDate &&\n moment(userClockingDate).format('D-M-YYYY') !==\n moment().format('D-M-YYYY')\n ) {\n this.openClockingErrors();\n }\n });\n }\n });\n });\n }\n });\n\n // Commented below line because moved websocket code to appcomponent\n // this.connect(this.user.id);\n this.workshopService.getWorkshops().subscribe((workshops) => {\n this.workshops = workshops;\n loadingStatuses.next({\n ...loadingStatuses.getValue(),\n workshops: true,\n });\n\n this.workshopService.getWorkshop().subscribe((workshop) => {\n this.workshop = workshop;\n this.standAloneMode = this.workshop.standAloneMode;\n this.uncheck = this.workshop?.isImportStaffFromDms;\n loadingStatuses.next({\n ...loadingStatuses.getValue(),\n workshop: true,\n });\n });\n this.workshopService\n .getSalesOrganization()\n .subscribe(\n (salesOrganization) => (this.salesOrganization = salesOrganization)\n );\n });\n\n // TODO(Marco) enable when the section is workeds\n // this.getNotifications();\n loadingStatuses.next({ ...loadingStatuses.getValue(), user: true });\n });\n this.languagesService.getLanguages().subscribe((languages) => {\n this.languages = languages;\n this.languages.forEach((language) => {\n language.languageId = language.languageId.toUpperCase();\n });\n loadingStatuses.next({ ...loadingStatuses.getValue(), languages: true });\n });\n\n loadingStatuses.pipe(take(4)).subscribe((status) => {\n console.log('loading statuses updated', status);\n if (\n status.user &&\n status.workshops &&\n status.workshop &&\n status.languages\n ) {\n console.log(\n 'matomo custom dimensions initialized, starting api call',\n status\n );\n this.initMatomoCustomDimensions();\n }\n });\n\n this.userService.getUser().subscribe((user: WorkshopUser) => {\n this.user = user;\n\n this.dmsConnectionService.getDmsStatus(user.workshopId).subscribe(\n (status: DmsStatus) => {\n if (status.connected) {\n this.dmsStatus = 'ok';\n } else {\n this.dmsStatus = 'ko';\n this.error = status.details;\n }\n },\n () => (this.dmsStatus = 'ko')\n );\n });\n this.websocketService\n .getNotification()\n .pipe(\n debounceTime(300),\n takeUntil(this.destroyed$),\n filter((notification: any) => !!notification)\n )\n .subscribe((notification: any) => {\n this.displayNotification(notification);\n });\n\n this.workService?.getDmsErrorCount({workshopId: this.user.workshopId, authorization: this.userService.accessToken}).subscribe((workshop) => {\n this.count = workshop?.dmsErrorCount;\n });\n }\n\n isRoleAdminAndServiceAdvisor(): boolean{\n let result = true;\n result = !(this.user.role.id === 62 && this.user.isAdmin);\n return result;\n //return this.user.role.name !== $localize`Service Advisor` || !this.user.isAdmin;\n }\n\n onClose() {\n this.isBannerOpened = false;\n sessionStorage.setItem('messageClosed', 'yes');\n }\n checkDate() {\n const releaseDate = new Date(this.version?.releaseDate);\n const diff = moment([\n this.currentDate.getFullYear(),\n this.currentDate.getMonth(),\n this.currentDate.getDate(),\n ]).diff(\n moment([\n releaseDate.getFullYear(),\n releaseDate.getMonth(),\n releaseDate.getDate(),\n ]),\n 'days'\n );\n\n if (!isNaN(diff) && diff >= 0 && diff <= 7) {\n this.isDateValid = true;\n } else {\n this.isDateValid = false;\n }\n }\n ngOnDestroy(): void {\n this.destroyed$.next(null);\n this.destroyed$.complete();\n }\n\n changeLanguage() {\n let url = window.location.href;\n let currentLanguage: string;\n this.languages.forEach((lang) => {\n if (url.indexOf(`/${lang.languageId}/`) > -1) {\n currentLanguage = lang.languageId;\n }\n });\n if (currentLanguage) {\n url = url.replace(\n `/${currentLanguage}/`,\n `/${this.selectedLanguageId}/`\n );\n sessionStorage.setItem('changeLanguage', 'true');\n window.location.href = url;\n }\n }\n\n openChange(opened: boolean) {\n this.dropdowned = opened;\n if (opened) {\n this.selectedLanguageId = this.locale.toUpperCase();\n this.workshops.forEach((workshop) => {\n if (workshop.id === this.user.workshopId) {\n this.selectedWorkshop = workshop;\n if (workshop.workshopSalesOrganizations) {\n workshop.workshopSalesOrganizations.forEach((salesOrganization) => {\n if (\n salesOrganization.id === this.user.workshopSalesOrganizationId\n ) {\n this.selectedSalesOrganization = salesOrganization;\n }\n });\n }\n }\n });\n }\n }\n\n openGuideChange(opened: boolean) {\n this.guidedropdowned = opened;\n }\n\n openReleaseNotesChange(opened: boolean) {\n this.releaseNotesdropdowned = opened;\n }\n\n openPdf(langParam: string) {\n const param: GetUserGuideByLanguageRequestParams = {\n language: langParam,\n authorization: this.userService.accessToken,\n };\n this.userGuidesService\n .getUserGuideByLanguage(param)\n .subscribe((res: any) => {\n this.guideUrl = res.imageUrl;\n this.azureStorageService.getToken().subscribe((token) => {\n window.open(`${this.guideUrl}?${token.key}`);\n });\n });\n }\n\n openReleasePdf(version: string) {\n this.guideUrl = `${this.environment.azureUrl}/jobcard/release-note/Sprint ${version} Release${\n version >= 'J' ? ` ${this.selectedLanguageId.toUpperCase()}` : ''\n }.pdf`;\n\n // Set the default release notes URL to the URL where the english version of the guide is\n this.defaultGuideUrl = `${this.environment.azureUrl}/jobcard/release-note/Sprint ${version} Release${\n version >= 'J' ? ' EN' : ''\n }.pdf`;\n\n // Attempt to download release notes file for current user language\n this.azureStorageService.getToken().subscribe((token) => {\n const downloadUrl = `${this.guideUrl}?${token.key}`;\n this.downloadFile(downloadUrl);\n });\n }\n\n downloadFile(url: string) {\n this.azureStorageService.getToken().subscribe((tok) => {\n const defaultUrl = `${this.defaultGuideUrl}?${tok.key}`;\n fetch(defaultUrl)\n .then((response) => {\n // If the downloading of the release notes file failed, raise an error to be displayed to the user.\n if (!response.ok) {\n throw new Error($localize`Release notes file does not exist`);\n } else {\n fetch(url)\n .then((resp) => {\n // If the downloading of the release notes file failed, raise an error to be displayed to the user.\n if (!resp.ok) {\n throw new Error(\n $localize`The release notes files does not exist for your language, attempting to download the English version`\n );\n }\n return resp.blob();\n })\n // If release notes file was retrieved successfully, save it.\n .then((blob) => {\n const fileName = this.extractFileName(url);\n saveAs(blob, fileName);\n })\n .catch((error) => {\n this.toastrService.warning(error);\n // Let the error last for 2 seconds so the user can see it. Then attempt to download the default language release\n // notes file\n setTimeout(() => {\n this.downloadDefaultFile();\n }, 2000);\n });\n }\n })\n .catch((err) => {\n // Remove previous toast message regarding regular user language release notes file failing to be downloaded\n this.toastrService.clear();\n\n // After a second (to let the previous toast message disappear), display the encountered error to the user.\n setTimeout(\n () => this.toastrService.error($localize`An error occured.`, err),\n 1000\n );\n });\n });\n }\n\n /**\n * Function allowing to download the default language release notes file if the current user language one failed to be\n * retrieved.\n */\n downloadDefaultFile() {\n this.azureStorageService.getToken().subscribe((tok) => {\n // Get the URL of the default release notes file\n const defaultUrl = `${this.defaultGuideUrl}?${tok.key}`;\n fetch(defaultUrl)\n .then((response) => {\n // If the downloading of the release notes file failed, raise an error to be displayed to the user.\n if (!response.ok) {\n throw new Error(\n $localize`Default release notes file does not exist`\n );\n }\n return response.blob();\n })\n // If the default release notes files was retrieved successfully, save it\n .then((blob) => {\n const fileName = this.extractFileName(defaultUrl);\n saveAs(blob, fileName);\n })\n .catch((err) => {\n // Remove previous toast message regarding regular user language release notes file failing to be downloaded\n this.toastrService.clear();\n\n // After a second (to let the previous toast message disappear), display the encountered error to the user.\n setTimeout(\n () => this.toastrService.error($localize`An error occured.`, err),\n 1000\n );\n });\n });\n }\n\n extractFileName(url: string): string {\n const startIndex = url.lastIndexOf('/') + 1;\n const endIndex = url.lastIndexOf('.pdf');\n return url.substring(startIndex, endIndex) + '.pdf';\n }\n\n showAbout() {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n import('../../about/about.module').then(({ AboutModule }) => {\n const aboutComponent = AboutModule.getAboutComponent();\n this.ngbModal.open(aboutComponent, { size: 'xl' });\n });\n }\n\n syncVehiclesFromDms() {\n const params: GetSyncVehiclesRequestParams = {\n fromDate: moment(new Date()).subtract(1, 'day').format('YYYYMMDD'),\n toDate: moment(new Date()).format('YYYYMMDD'),\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.dmsControllerService.getSyncVehicles(params).subscribe(\n (res: ApiResponseDto) => {\n // in case of en empty/null message with an OK status we on't display the tooltip.\n if (res.description) {\n this.toastrService.success(res.description);\n }\n },\n (error: HttpErrorResponse) => {\n const apiError: ApiResponseDto = error.error;\n let errorMessage: string;\n switch (apiError.code) {\n case '1':\n case '2':\n this.toastrService.warning(apiError.description);\n break;\n case '3':\n this.toastrService.error(apiError.description);\n break;\n default:\n errorMessage = $localize`Error synchronizing the vehicles information from the DMS.`;\n this.toastrService.error(errorMessage);\n break;\n }\n }\n );\n }\n\n syncOperationsFromDms() {\n const params: OperationMasterRequestParams = {\n fromDate: moment(new Date()).subtract(1, 'day').format('YYYYMMDD'),\n toDate: moment(new Date()).format('YYYYMMDD'),\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.dmsControllerService.operationMaster(params).subscribe(\n (res: ApiResponseDto) => {\n this.toastrService.success(res.description);\n },\n (error: HttpErrorResponse) => {\n const apiError: ApiResponseDto = error.error;\n let errorMessage: string;\n switch (apiError.code) {\n case '1':\n case '2':\n this.toastrService.warning(apiError.description);\n break;\n case '3':\n this.toastrService.error(apiError.description);\n break;\n default:\n errorMessage = $localize`Error synchronizing the Operations information from the DMS.`;\n this.toastrService.error(errorMessage);\n break;\n }\n }\n );\n }\n\n syncDataFromDms() {\n const params: GetSyncCustomersRequestParams = {\n fromDate: moment(new Date()).subtract(1, 'day').format('YYYYMMDD'),\n toDate: moment(new Date()).format('YYYYMMDD'),\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.dmsControllerService.getSyncCustomers(params).subscribe(\n () => {\n this.toastrService.success(\n $localize`Data has been successfully resynchronized`\n );\n\n this.syncVehiclesFromDms();\n },\n (error: HttpErrorResponse) => {\n const apiError: ApiResponseDto = error.error;\n this.syncVehiclesFromDms();\n let errorMessage: string;\n switch (apiError.code) {\n case '1':\n case '2':\n this.toastrService.warning(apiError.description);\n break;\n case '3':\n this.toastrService.error(apiError.description);\n break;\n default:\n errorMessage = $localize`DMS connection currently inactive. Data cannot be synchronized\".`;\n this.toastrService.error(errorMessage);\n break;\n }\n }\n );\n }\n\n syncPartsAndOperationsFromDms() {\n const params: GetPartsMasterRequestParams = {\n fromDate: moment(new Date()).subtract(1, 'day').format('YYYYMMDD'),\n toDate: moment(new Date()).format('YYYYMMDD'),\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.dmsControllerService.getPartsMaster(params).subscribe(\n () => {\n this.toastrService.success(\n $localize`Data has been successfully resynchronized`\n );\n\n this.syncOperationsFromDms();\n },\n (error: HttpErrorResponse) => {\n const apiError: ApiResponseDto = error.error;\n this.syncOperationsFromDms();\n let errorMessage: string;\n switch (apiError.code) {\n case '1':\n case '2':\n this.toastrService.warning(apiError.description);\n break;\n case '3':\n this.toastrService.error(apiError.description);\n break;\n default:\n errorMessage = $localize`DMS connection currently inactive. Data cannot be synchronized\".`;\n this.toastrService.error(errorMessage);\n break;\n }\n }\n );\n }\n\n syncShiftFromDms() {\n if (this.dmsStatus === 'ok') {\n this.dmsService.syncShiftFromDms(this.workshop.id);\n } else {\n this.toastrService.error($localize`DMS not available`);\n }\n }\n\n getNotifications() {\n const params = {\n noLoader: true,\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n applicationToken: this.userService.newToken,\n };\n this.notificationService\n .getNotifications(params)\n .pipe(\n tap((notifications: NotificationDto[]) => {\n notifications.map((notification: NotificationDto) => {\n if (\n [\n NotificationType.EPARTSBASKET,\n NotificationType.ETIMBASKET,\n ].includes(notification?.type as NotificationType)\n ) {\n notification.body = '';\n }\n });\n }),\n catchError((error: any) => of([]))\n )\n .subscribe((notifications: NotificationDto[]) => {\n this.notifications = notifications;\n this.onSort({ column: 'sentDate', direction: 'desc' });\n // calcul le nombre de notifications non lues\n const unreadNotifications: NotificationDto[] = this.notifications.filter(\n (notif) => !notif.viewDate || notif.viewDate === null\n );\n this.counter = unreadNotifications.length;\n });\n\n /* Translate notifications again as they were refreshed */\n this.notifications.forEach((notif) => {\n this.translateNotification(notif);\n });\n }\n\n /**\n * Function which will perform the translation of a notification for the user's current language.\n * @param notification: The notification to be translated\n */\n translateNotification(notification: NotificationDto) {\n switch (notification.type) {\n case NotificationType.JOBCARDCREATED:\n notification.body = $localize`A new jobcard has been created`;\n break;\n case NotificationType.JOBCARDDRAFT:\n notification.body = Util.stringFormat(\n $localize`A jobcard has been raised by [0] [1], please review`,\n notification.sender.firstName,\n notification.sender.lastName\n );\n break;\n case NotificationType.JOBCARDVALIDATED:\n notification.body = $localize`Jobcard validated, contact customer`;\n break;\n case NotificationType.ASSIGNACTIVITY:\n notification.body = $localize`A new jobcard has been assigned to you`;\n break;\n case NotificationType.CONFIRMACTIVITY:\n notification.body = $localize`Additional activity has been added to the jobcard`;\n break;\n case NotificationType.WARRANTYVALIDITY:\n notification.body = $localize`Jobcard completed, validation required`;\n break;\n case NotificationType.CHECKEDIN:\n if (environment.isIveco === true) {\n notification.body = $localize`Vehicle has been checked-in`;\n } else {\n notification.body = $localize`Machine has been checked-in`;\n }\n break;\n case NotificationType.CUSTOMERAPPROVED:\n /* Retrieve the number of approved and declined activities for the jobcard and translate based upon their values */\n let nbApproved = 0;\n let nbDeclined = 0;\n this.apiAppointmentService\n .getAppointmentById({\n id: notification.appointment,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n })\n .subscribe({\n next: (app: AppointmentViewDto) => {\n app.jobcard?.jobcardItems?.forEach((item) => {\n if (item.isCustomerAgreed) {\n nbApproved++;\n } else {\n nbDeclined++;\n }\n\n if (nbApproved > 0 && nbDeclined > 0) {\n notification.body = Util.stringFormat(\n $localize`[0] Approved and [1] Declined additional activities have been updated by the customer`,\n nbApproved,\n nbDeclined\n );\n } else if (nbApproved > 0) {\n notification.body = Util.stringFormat(\n $localize`[0] Approved additional activities have been updated by the customer`,\n nbApproved\n );\n } else if (nbDeclined > 0) {\n notification.body = Util.stringFormat(\n $localize`[0] Declined additional activities have been updated by the customer`,\n nbDeclined\n );\n } else {\n notification.body = $localize`Additional activities have been updated by the customer`;\n }\n });\n },\n error: () => {\n nbApproved = 0;\n nbDeclined = 0;\n notification.body = $localize`Additional activities have been updated by the customer`;\n },\n });\n\n break;\n case NotificationType.ACTIVITYAPPROVED:\n notification.body = $localize`Additional activities have been approved`;\n break;\n case NotificationType.WARRANTYJOBVALIDATED:\n notification.body = $localize`Warranty jobcard validated`;\n break;\n case NotificationType.WARRANTYACTIVITIESDONE:\n /* Get list of warranty activities which are done (list of activity IDs provided by notification object) */\n const notificationDoneActs = notification.doneActivities;\n const doneActsArray = notificationDoneActs.split(',').map(parseInt);\n let doneActivitiesString = '';\n let ji: JobcardItemDto;\n this.apiAppointmentService\n .getAppointmentById({\n id: notification.appointment,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n })\n .subscribe({\n next: (app: AppointmentViewDto) => {\n doneActivitiesString = '';\n doneActsArray.forEach((doneAct: number) => {\n ji = app.jobcard?.jobcardItems?.find(\n (it: JobcardItemDto) => it.id === doneAct\n );\n doneActivitiesString = doneActivitiesString.concat(\n '
    - ',\n ji.name\n );\n notification.body = Util.stringFormat(\n $localize`Following warranty activities have been completed: [0]`,\n doneActivitiesString\n );\n });\n },\n error: () => {\n doneActivitiesString = '';\n notification.body = Util.stringFormat(\n $localize`Following warranty activities have been completed: [0]`,\n doneActivitiesString\n );\n },\n });\n\n break;\n case NotificationType.WARRANTYNEARDEADLINE:\n notification.body = $localize`Warranty deadline approaching`;\n break;\n case NotificationType.MACHINEUSAGEUPDATED:\n if (environment.isIveco === true) {\n notification.body = $localize`Mileage updated, check the SmartView for any updated information`;\n } else {\n notification.body = $localize`Machine usage updated, check the SmartView for any updated information`;\n }\n break;\n case NotificationType.ETIMBASKET:\n notification.title = Util.stringFormat(\n $localize`eTim basket received on appointment [0]`,\n notification.appointment\n );\n break;\n case NotificationType.BREAKDOWN:\n notification.title = Util.stringFormat(\n $localize`Appointment [0] Vehicle under Breakdown`,\n notification.appointment\n );\n\n /* Retrieve repair address for translating the body of the notification */\n let repairAddress = '';\n this.apiAppointmentService\n .getAppointmentById({\n id: notification.appointment,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n })\n .subscribe({\n next: (app: AppointmentViewDto) => {\n repairAddress = app?.repairAddress;\n notification.body = Util.stringFormat(\n $localize`A vehicle is under breakdown at this address: [0]`,\n repairAddress\n );\n },\n error: () => {\n repairAddress = '';\n notification.body = Util.stringFormat(\n $localize`A vehicle is under breakdown at this address: [0]`,\n repairAddress\n );\n },\n });\n break;\n case NotificationType.SENTBACK:\n case NotificationType.EPARTSBASKET:\n case NotificationType.CLOCKINGSUMMARY:\n case NotificationType.PARTS:\n default:\n break;\n }\n }\n\n onSort(sortEvent: SortEvent) {\n Util?.sortTable(this.notifications, sortEvent);\n }\n\n refreshNotifications() {\n this.getNotifications();\n }\n\n displayNotification(event: any) {\n const newNotification: NotificationDto = event.body;\n\n if (\n [NotificationType.EPARTSBASKET, NotificationType.ETIMBASKET].includes(\n newNotification?.type as NotificationType\n )\n ) {\n const basketNotification = JSON.parse(JSON.stringify(newNotification));\n basketNotification.body = '';\n this.notifications.push(basketNotification);\n } else {\n this.notifications.push(newNotification);\n }\n\n this.onSort({ column: 'sentDate', direction: 'desc' });\n // calcul le nombre de notifications non lues\n const unreadNotifications: NotificationDto[] = this.notifications.filter(\n (notif) => !notif.viewDate || notif.viewDate === null\n );\n this.counter = unreadNotifications.length;\n this.toastrService.info(\n ![NotificationType.EPARTSBASKET, NotificationType.ETIMBASKET].includes(\n newNotification?.type as NotificationType\n )\n ? newNotification.body\n : '',\n newNotification.title,\n {\n positionClass: 'toast-bottom-right',\n enableHtml:\n newNotification?.type === NotificationType.WARRANTYACTIVITIESDONE ||\n newNotification?.type === NotificationType.WARRANTYNEARDEADLINE\n ? true\n : false,\n }\n );\n // clear observable won't show again\n this.websocketService.setNotification(null);\n }\n\n connect(userId: string): void {\n this.websocketService.initWebSocket().then(() => {\n this.websocketService.subscribe(\n 'socket/' + userId + '/notifications',\n (event) => {\n const newNotification: NotificationDto = event.body;\n this.notifications.push(newNotification);\n this.onSort({ column: 'sentDate', direction: 'desc' });\n // calcul le nombre de notifications non lues\n const unreadNotifications: NotificationDto[] = this.notifications.filter(\n (notif) => !notif.viewDate || notif.viewDate === null\n );\n this.counter = unreadNotifications.length;\n this.toastrService.info(\n ![\n NotificationType.EPARTSBASKET,\n NotificationType.ETIMBASKET,\n ].includes(newNotification?.type as NotificationType)\n ? newNotification.body\n : '',\n newNotification.title,\n {\n positionClass: 'toast-bottom-right',\n enableHtml:\n newNotification?.type ===\n NotificationType.WARRANTYACTIVITIESDONE ||\n newNotification?.type === NotificationType.WARRANTYNEARDEADLINE\n ? true\n : false,\n }\n );\n }\n );\n });\n }\n\n openFeedbackMenu() {\n const feedbackModalData = {\n id: this.user.id,\n displayedName: this.user.displayedName,\n notificationEmail: this.user.email,\n sapCode: this.workshop?.sapCode,\n };\n if (environment.isIveco) {\n const modalRef = this.ngbModal.open(FeedbackModalComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.feedbackModalData = feedbackModalData;\n } else if (!environment.isIveco) {\n const modalRef = this.ngbModal.open(FeedbackModalComponent, {\n size: 'lg',\n backdrop: 'static',\n });\n modalRef.componentInstance.feedbackModalData = feedbackModalData;\n }\n }\n\n changeWorkshop() {\n // To test with the mock db, change the service path to login_refresh\n let id: string;\n this.userService.currentUserId.subscribe(userId => id = userId.User_id);\n const tokenDto: RefreshTokenDto = {\n workshopId: this.selectedWorkshop.id,\n workshopSalesOrganizationId: this.selectedSalesOrganization.id,\n };\n const refreshUserRequestParams: RefreshUserRequestParams = {\n authorization: this.userService.accessToken,\n applicationToken: this.userService.newToken,\n refreshTokenDto: tokenDto,\n };\n this.loginControllerService.refreshUser(refreshUserRequestParams).subscribe(() => {\n location.reload();\n });\n }\n\n selectSalesOrganization() {\n if (this.selectedWorkshop.workshopSalesOrganizations) {\n this.selectedSalesOrganization = this.selectedWorkshop.workshopSalesOrganizations[0];\n }\n }\n closeNotification(event: any) {\n if (event) {\n this.notificationDisplayed = false;\n }\n }\n\n openClockingErrors() {\n const modalRef = this.ngbModal.open(ClockingLogsModalComponent, {\n size: 'xl',\n });\n modalRef.componentInstance.workshopUser = this.user;\n modalRef.componentInstance.workshopUsers = this.users;\n modalRef.result.then((count: number) => {\n this.clockingErrorCount = count;\n });\n }\n\n private initMatomoUrls() {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.previousUrl = this.currentUrl;\n this.currentUrl = window.location.href;\n\n this.matomoTracker.setReferrerUrl(this.previousUrl);\n this.matomoTracker.setCustomUrl(this.currentUrl);\n\n // console.log({previousUrl: this.previousUrl, currentUrl: this.currentUrl})\n }\n });\n }\n\n private initMatomoCustomDimensions() {\n // console.log('user', this.user)\n // console.log('workshop', this.workshop)\n // console.log('environment', environment)\n\n const selectedLang = this.languages.find(\n (lang) => lang.languageId === this.selectedLanguageId\n );\n this.languagesService.setLanguage(selectedLang);\n\n // this.matomoTracker.setConsentGiven();\n // this.matomoTracker.rememberConsentGiven();\n\n const appName = 'WEB APP';\n const brand = environment?.isIveco ? 'IVECO' : 'CNH';\n const country = this.workshop?.country;\n const dealerCode = this.workshop?.sapCode;\n const dealerName = this.workshop?.name;\n const language = this.languagesService?.getSelectedLanguage()?.languageName;\n const userId = this.user?.id;\n const userProfile = this.user?.role?.name;\n\n this.matomoTracker.setUserId(userId);\n\n this.matomoTracker.setCustomDimension(\n CUSTOM_DIMENSIONS_ID.APP_NAME,\n appName\n );\n this.matomoTracker.setCustomDimension(CUSTOM_DIMENSIONS_ID.BRAND, brand);\n this.matomoTracker.setCustomDimension(\n CUSTOM_DIMENSIONS_ID.COUNTRY,\n country\n );\n this.matomoTracker.setCustomDimension(\n CUSTOM_DIMENSIONS_ID.DEALER_CODE,\n dealerCode\n );\n this.matomoTracker.setCustomDimension(\n CUSTOM_DIMENSIONS_ID.DEALER_NAME,\n dealerName\n );\n this.matomoTracker.setCustomDimension(\n CUSTOM_DIMENSIONS_ID.LANGUAGE,\n language\n );\n this.matomoTracker.setCustomDimension(CUSTOM_DIMENSIONS_ID.USER_ID, userId);\n this.matomoTracker.setCustomDimension(\n CUSTOM_DIMENSIONS_ID.USER_PROFILE,\n userProfile\n );\n this.matomoCustomService.setReady(true);\n }\n}\n","\n \n A new release of the application has been delivered. Click on the About\n section to view the detailed Release Notes. Release Date - {{ version?.releaseDate | date: 'MMMM d, y' }}\n \n ×\n \n\n\n","import {\n Directive,\n Input,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Directive({\n selector: '[jcIsIveco]',\n})\nexport class IsIvecoDirective implements OnInit {\n @Input() jcIsIveco: boolean;\n\n constructor(\n private viewContainer: ViewContainerRef,\n private templateRef: TemplateRef\n ) {}\n\n ngOnInit(): void {\n if (environment.isIveco === this.jcIsIveco) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Workshop } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { environment } from 'src/environments/environment';\nimport { JobcardItemIuDocumentSelect } from '../etim-modal/etim-modal.component';\n\ninterface JobcardItemIuDocumentDisplay {\n groupName?: string;\n groupItemValue?: JobcardItemIuDocumentSelect[];\n}\n@Component({\n selector: 'jc-iu-links-modal',\n templateUrl: './iu-links-modal.component.html',\n styleUrls: ['./iu-links-modal.component.scss'],\n})\nexport class IuLinksModalComponent implements OnInit {\n etimDocs: JobcardItemIuDocumentSelect[] = [];\n jobcardItemIuDocumentDisplay: JobcardItemIuDocumentDisplay[] = [];\n\n environment = environment;\n workshop: Workshop;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ngOnInit(): void {\n this.setJobcardItemIuDocumentDisplay(this.etimDocs);\n }\n setJobcardItemIuDocumentDisplay(etimDocs: JobcardItemIuDocumentSelect[]) {\n const types = [...etimDocs.map((type) => type.docType)];\n this.jobcardItemIuDocumentDisplay = [];\n new Set(types).forEach((type) => {\n const iuDocs: JobcardItemIuDocumentSelect[] = [];\n this.etimDocs.forEach((temp: JobcardItemIuDocumentSelect, index) => {\n if (temp.docType === type) {\n iuDocs.push(temp);\n }\n });\n this.jobcardItemIuDocumentDisplay.push({\n groupName: type,\n groupItemValue: iuDocs,\n });\n });\n }\n\n selectPage(etimDoc: any) {\n let model = null;\n let docType = 'IU';\n let docLanguage = 'EN';\n if (etimDoc.productIceCode !== null) {\n model = etimDoc.productIceCode.charAt(0);\n }\n if (etimDoc.docType === 'KA') {\n docType = etimDoc.docType;\n }\n if (etimDoc.lang !== null) {\n docLanguage = etimDoc.lang;\n }\n const url =\n this.environment.etimDocLink +\n 'type=' +\n docType +\n '&market=' +\n this.workshop.marketId +\n '&model=' +\n model +\n '&config=&id=' +\n etimDoc.iuSrtId +\n '&lang=' +\n docLanguage;\n window.open(url);\n }\n\n getFullDocumentType(docType: string): string {\n let docTypeFull: string;\n switch (docType) {\n case 'SM':\n docTypeFull = $localize`Service Manual`;\n break;\n case 'OM':\n docTypeFull = $localize`Operator's Manual`;\n break;\n case 'KA':\n docTypeFull = $localize`Knowledge Articles`;\n break;\n case 'SB':\n docTypeFull = $localize`Service Bulletin`;\n break;\n case 'II':\n docTypeFull = $localize`Installation Instructions`;\n break;\n case 'SG':\n docTypeFull = $localize`Software Guide`;\n break;\n case 'AI':\n docTypeFull = $localize`Assembly Instructions`;\n break;\n case 'SRT':\n docTypeFull = $localize`Standard Repair Time`;\n break;\n default:\n docTypeFull = '';\n }\n return docTypeFull;\n }\n}\n","
    \n

    eTIM Links

    \n \n ×\n \n
    \n
    \n \n
    \n
    \n {{ getFullDocumentType(iuDocument.groupName) }}\n
    \n \n {{ etimDoc.iceCode }} - {{ etimDoc.name }}\n
    \n
    \n
    \n\n
    \n \n Ok\n \n
    \n","import { Component } from '@angular/core';\nimport { Kit } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-kit-details-modal',\n templateUrl: './kit-details-modal.component.html',\n styleUrls: ['./kit-details-modal.component.scss'],\n})\nexport class KitDetailsModalComponent {\n kit: Kit;\n constructor(public activeModal: NgbActiveModal) {}\n}\n","
    \n

    Kit details

    \n \n ×\n \n
    \n
    \n
    \n
    Name
    \n
    {{ kit.name }}
    \n
    \n \n
    \n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'jc-loading-screen',\n templateUrl: './loading-screen.component.html',\n styleUrls: ['./loading-screen.component.scss'],\n})\nexport class LoadingScreenComponent {}\n","
    \n
    \n
    \n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { LoadingScreenService } from './loading-screen.service';\n\n@Injectable()\nexport class LoadingScreenInterceptor implements HttpInterceptor {\n /** Nombre de requêtes HTTP actives actuellement. */\n private activeRequests = 0;\n\n constructor(private loadingScreenService: LoadingScreenService) {}\n\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n let displayLoadingScreen = true;\n\n if (\n request.params.get('noLoader') &&\n request.params.get('noLoader') !== 'false'\n ) {\n displayLoadingScreen = false;\n }\n\n if (displayLoadingScreen) {\n if (this.activeRequests === 0) {\n this.loadingScreenService.open();\n }\n\n this.activeRequests++;\n return next.handle(request).pipe(\n finalize(() => {\n this.activeRequests--;\n if (this.activeRequests === 0) {\n this.loadingScreenService.close();\n }\n })\n );\n } else {\n return next.handle(request);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { LoadingScreenComponent } from './loading-screen.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingScreenService {\n showCalls: number;\n private instance: NgbModalRef;\n\n constructor(private ngbModal: NgbModal) {\n this.showCalls = 0;\n }\n\n open() {\n this.showCalls++;\n if (this.showCalls === 1) {\n setTimeout(() => {\n this.instance = this.ngbModal.open(LoadingScreenComponent, {\n centered: true,\n windowClass: 'modal-loader',\n backdrop: 'static',\n backdropClass: 'modal-backdrop-loader',\n keyboard: true,\n animation: false,\n });\n });\n }\n }\n\n close() {\n this.showCalls--;\n if (this.showCalls < 1) {\n setTimeout(() => {\n if (this.instance) {\n // On garde le scroll en mémoire car a la fermeture du modal il est remis a 0\n const offsetY = window.pageYOffset;\n this.instance.close();\n window.scrollTo(0, offsetY);\n }\n });\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'jc-locked-icon',\n templateUrl: './locked-icon.component.html',\n styleUrls: ['./locked-icon.component.scss'],\n})\nexport class LockedIconComponent {\n @Input() displayed: boolean;\n}\n","\n \n \n \n\n","import {\n CdkDragDrop,\n moveItemInArray,\n transferArrayItem,\n} from '@angular/cdk/drag-drop';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n LOCALE_ID,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {\n GetGeoStoreDetailsRequestParams,\n GetVehicleTelematicsRequestParams,\n SmartViewService,\n} from '@api-smartview';\nimport {\n Appointment,\n JobcardItem,\n JobcardTravel,\n Operation,\n PaymentSubType,\n WorkshopDiscount,\n JobcardItemCustomerStatus,\n ApiError,\n PaymentSubSubType,\n Permission,\n AppointmentStatus,\n} from 'src/app/models/model/models';\nimport {\n JobcardItemIuDocument,\n SapFailure,\n WarrantyServices,\n} from '@models-smartview';\nimport { NgbDateStruct, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, of, Subject, Subscription } from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n switchMap,\n tap,\n} from 'rxjs/operators';\nimport { ActivatedRoute } from '@angular/router';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { WorkspaceTimeService } from 'src/app/workspace/workspace-main-planning/workspace-time/workspace-time.service';\nimport { environment } from 'src/environments/environment';\nimport {\n EmailTypeEnum,\n emailType,\n} from 'src/app/appointment/appointment-footer/appointment-footer.component';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { locales } from 'src/locale/locales';\nimport { Util } from 'src/app/core/util/util';\nimport { PermissionsService } from 'src/app/core/permissions/permissions.service';\nimport { AppointmentInCreation, NewAppointmentService } from 'src/app/appointment/new-appointment.service';\nimport { ChecklistTemplateDto, CountryDto, KitDto, WorkshopBayDto, WorkshopChecklistTypeDto, WorkshopDto, WorkshopUserDto } from 'src/api/djc-admin-service';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { JobcardItemExtraOperationDto } from 'src/api/djc-booking-service/model/jobcardItemExtraOperationDto';\nimport { WorkshopUsersAdminService } from 'src/app/core/workshop-user-admin/workshop-user-admin.service';\nimport { PaymentsServiceAdmin } from 'src/app/core/payments/payments.serviceAdmin';\nimport { AppointmentShortDto, AppointmentStatusDto, ChecklistInstanceDto, JobcardAttachmentDto, JobcardItemOperationDto, JobcardItemOperationPartDto, JobcardItemOperationPartLocationDto, JobcardItemPatchDto, JobcardItemSpellDto, JobcardItemStatusDto, JobcardItemTechnicianDto, JobcardPartsBacklogDto, OperationWarrantyDto, PartDto, PartReturnDto, PaymentTypeDto, WarrantyTypeDto } from 'src/api/djc-booking-service/model/models';\nimport { AttachmentsModalComponent } from '../attachments-modal/attachments-modal.component';\nimport { ClientVerbalAgreementModalComponent } from '../client-verbal-agreement-modal/client-verbal-agreement-modal.component';\nimport { ClockedTimeModalComponent } from '../clocked-time-modal/clocked-time-modal.component';\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\nimport { DateTimePickerModalComponent } from '../date-time-picker-modal/date-time-picker-modal.component';\nimport { EditFieldModalComponent } from '../edit-field-modal/edit-field-modal.component';\nimport { EditMaintenanceModalComponent } from '../edit-maintenance-modal/edit-maintenance-modal.component';\nimport { EditOperationModalComponent } from '../edit-operation-modal/edit-operation-modal.component';\nimport { EditWorkshopModalComponent } from '../edit-workshop-modal/edit-workshop-modal.component';\nimport { KitDetailsModalComponent } from '../kit-details-modal/kit-details-modal.component';\nimport { TravelModalComponent } from '../travel-modal/travel-modal.component';\nimport { UserCommentComponent } from '../user-comment/user-comment.component';\nimport { ClockModalComponent } from '../clock-modal/clock-modal.component';\nimport { ChangeStatusModalComponent } from '../change-status-modal/change-status-modal.component';\nimport { DisplayChecklistModalComponent } from '../display-checklist-modal/display-checklist-modal.component';\nimport {\n EstimateTravel,\n TravelMapDisplayComponent,\n} from '../travel-modal/travel-map-display/travel-map-display.component';\nimport { GoogleWebService } from '../googleMap-service/google-web.service';\nimport { WarningModalComponent } from '../warning-modal/warning-modal.component';\nimport { IuLinksModalComponent } from '../iu-links-modal/iu-links-modal.component';\nimport { EditMaintenanceActivityModalComponent } from '../edit-maintenance-activity-modal/edit-maintenance-activity-modal.component';\nimport { JobcardItemCollapsable } from '../activities/activities.component';\nimport { NewDeferActivityModalComponent } from '../new-defer-activity-modal/new-defer-activity-modal.component';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { appointmentStatusEnum, ExtraOperationTypeEnum, JobcardItemAuthorizerNameEnum, JobcardItemGroupReplacedEnum, JobcardItemStatusSEnum, jobcardItemTypeEnum, PaymentTypeTypeEnum, checklistInstanceEnum } from '../constants/constants';\nimport { GetWarrantyServicesByOperationCodeRequestParams, WarrantyService } from 'src/api/djc-booking-service/api/warranty.service';\nimport { GetPartsRequestParams, PartsService } from 'src/api/djc-booking-service/api/parts.service';\nimport { JobcardItemDto } from 'src/app/model/jobcardItemDtoFE';\nimport { JobcardItemService, UpdateJobcardItemRequestParams } from 'src/api/djc-booking-service/api/jobcardItem.service';\nimport { AppointmentDto, AppointmentStatusService, CreateAppointmentStatusRequestParams, JobcardItemControllerService, JobcardTravelDto, SaveActivityValidateStatusRequestParams } from 'src/api/djc-workitem-service';\nimport { MappingService } from 'src/app/core/mapping/mapping.service';\nimport { AppointmentsService, MaintenanceService, SaveMaintenanceRequestParams, GetAppointmentByIdRequestParams, ChecklistTemplateService, CountryService, KitService, NotificationService, WorkshopChecklistTypeService } from 'src/api/djc-booking-service';\nimport { SrtSupplierCode } from 'src/api/djc-stubbing-service/model/srtSupplierCode';\n\ninterface ChecklistTemplateDisplayed {\n groupName?: string;\n groupItemValue?: ChecklistTemplateDto[];\n}\n\nexport interface JobcardItemCollapsableNew extends JobcardItemDto {\n /** Indicates if jobcard item is displayed collapsed. */\n collapsed?: boolean;\n warrantyCoverage?: boolean;\n causalParts?: PartDto[];\n causalPartCodes?: string[];\n isMaintenance?: boolean;\n noData?: boolean;\n totalDuration?: number;\n techniciansDuration?: number[];\n isPartAvailable?: boolean;\n currentStatus?: JobcardItemStatusDto;\n checklist?: ChecklistInstanceDto;\n inspectionChecklist?: ChecklistInstanceDto[];\n clockedTechnicians?: JobcardItemTechnicianDto[];\n discounts?: WorkshopDiscount[];\n checklistIconVisible?: boolean;\n hasMissingParts?: ActivityDetails[];\n paymentWarrantyType?: WarrantyTypeDto;\n totalPrice?: number;\n tempJId?: string;\n defectDescription?: string;\n supplierDescription?: string;\n paymentSubType?: PaymentSubType;\n paymentSubType2?: PaymentSubSubType;\n paymentSubType3?: PaymentSubSubType;\n isPaymentTypeDisabled?: boolean;\n travels?: Array;\n jobcardItemIuDocuments?: Array;\n}\n\ninterface DinamicJobcardItemOperationPartDto extends JobcardItemOperationPartDto {\n isAvailableAtHomeLocation?: boolean;\n isNotAvailable?: boolean;\n isAvailableAtOtherLocation?: boolean;\n}\n\ninterface ActivityDetails {\n activityId: number;\n activityName: string;\n opePartCode: string;\n missingParts: string[];\n}\n\nexport interface AppointmentAgendaDisplayed extends AppointmentInCreation {\n hasMissingParts?: ActivityDetails[];\n}\n\n@Component({\n selector: 'jc-new-activities',\n templateUrl: './new-activities.component.html',\n styleUrls: ['./new-activities.component.scss'],\n})\nexport class NewActivitiesComponent implements OnInit, OnChanges, OnDestroy {\n @Input() contentType: EmailTypeEnum;\n // @Input() jobcardItems: JobcardItemCollapsable[] = [];\n @Input() jobcardItemsNV: JobcardItemCollapsableNew[] = [];\n @Input() status: AppointmentStatusDto;\n @Input() isKit = false;\n @Input() isWorkfile = false;\n @Input() isActivity = false;\n @Input() isSummary = false;\n @Input() isCustomerAccessible = false;\n @Input() srtOperations: Operation[] = [];\n @Input() srtOperationsNV: JobcardItemOperationDto[] = [];\n @Input() defects: Operation[] = [];\n @Input() defectsNV: JobcardItemOperationDto[] = [];\n @Input() supplierCode: SrtSupplierCode[] = [];\n @Input() editable = true;\n @Input() warrantyServices: WarrantyServices[] = [];\n @Input() nbMaintenances: number;\n @Input() nbUpdatedMaintenances: number;\n @Input() srtExtraOperations: JobcardItemExtraOperationDto[];\n @Input() appointmentId: number;\n @Input() appointment: Appointment;\n @Input() appointmentNV: AppointmentDto;\n @Input() isAppointmentRemote = false;\n @Input() workshopBays: WorkshopBayDto[] = [];\n @Input() defaultBay: WorkshopBayDto;\n @Input() failureCodes: SapFailure[] = [];\n\n @Input() checklistDetail: ChecklistTemplateDto[] = [];\n @Input() checklistItem: ChecklistInstanceDto[] = [];\n @Input() isDisabled = false;\n @Input() travelArray: JobcardTravel[] = [];\n @Input() travelArrayNV: JobcardTravelDto[] = [];\n @Input() travelEdit = true;\n @Input() isVisibleTravel: any = false;\n @Input() refreshCalculation: Observable;\n @Output() update = new EventEmitter();\n @Output() updateAppointment = new EventEmitter();\n @Output() jobcardItemOpenChecklist = new EventEmitter();\n @Output() jobcardItemsChange = new EventEmitter();\n @Input() updatePipTravel: Observable;\n @Input() warrantyTypes: WarrantyTypeDto[] = [];\n @Input() appointmentInCreation: AppointmentInCreation;\n\n updateStatus = new Subject();\n subscriptions: Subscription[] = [];\n newActivity: string;\n newKit: KitDto;\n kits: KitDto[] = [];\n jobcardItemExist = false;\n lastActivityIndex: number;\n parts: PartDto[] = [];\n partsReturn: PartReturnDto[] = [];\n paymentTypes: PaymentTypeDto[] = [];\n checkListItems: ChecklistInstanceDto[] = [];\n operationWarranty: OperationWarrantyDto;\n userNV: WorkshopUserDto;\n operation: JobcardItemOperationDto;\n filteredJobcardItems: JobcardItemCollapsable[] = [];\n filteredJobcardItemsNew: JobcardItemCollapsableNew[] = [];\n currencyCode = 'XXX';\n workshopUsers: WorkshopUserDto[] = [];\n paymentTypesEnum = PaymentTypeTypeEnum;\n selectedPaymentType: PaymentTypeDto;\n jobcardItemType = jobcardItemTypeEnum;\n isEditAvailable: boolean;\n environment = environment;\n maintenancesUpdated = false;\n discounts: WorkshopDiscount[] = [];\n jobcardItemsForSummary: JobcardItemDto[] = [];\n assemblyDate: Date[] = [];\n statusEnum = JobcardItemStatusSEnum;\n maxDateStruct: NgbDateStruct;\n searchingPart = false;\n otherCausalPart: string[] = [];\n partsList: PartDto[] = [];\n checklistView: boolean;\n checklistViewForItem: boolean;\n supplier: SrtSupplierCode;\n checklistTemplateGroup: ChecklistTemplateDisplayed[] = [];\n summaryType = emailType;\n appointmentStatus: string;\n workshopUser: WorkshopUserDto;\n allocatedTime: number;\n authorizerNameEnum = JobcardItemAuthorizerNameEnum;\n groupReplacedEnum = JobcardItemGroupReplacedEnum;\n workshop: WorkshopDto = { id: -1, name: '' };\n isVisiableAuthorizerName = false;\n fromNotify: string;\n jobcardItemsIds: string;\n statusColor: any;\n // hidden by task 372202\n // isDiscountAvailable: boolean;\n discount: WorkshopDiscount;\n isBreakDownAppointment: boolean;\n yesToDoStatus: boolean;\n dayOfAppointment: string;\n outOfHour: boolean;\n apptAvailable = false;\n remoteWorkshopBay: WorkshopBayDto;\n jobcardPartsBacklogNV?: JobcardPartsBacklogDto[] = [];\n machineConnected = false;\n hasMissingParts?: ActivityDetails[];\n selectedWarrantyType: WarrantyTypeDto;\n standAloneMode: boolean;\n\n isPresent = false;\n itemStatus: string;\n travelExist = false;\n newTravel: string;\n travelFromAddressLine1: string;\n travelToAddressLine1: string;\n travelFromAddressLine2: string;\n travelToAddressLine2: string;\n travelFromAddressLine3: string;\n travelToAddressLine3: string;\n travelFromAddressLine4: string;\n travelToAddressLine4: string;\n travelFromPostalCode: string;\n travelToPostalCode: string;\n travelFromLatitude: number;\n travelFromLongitude: number;\n travelToLatitude: number;\n travelToLongitude: number;\n lastTravelIndex: number;\n selectedLanguageId: string;\n\n reasonsList: string[] = [\n $localize`Technician was helping another Technician`,\n $localize`Technical errors (computer/system/hardware down)`,\n $localize`Technician forgot to record travel information`,\n $localize`Technician forgot to start/stop the travel time`,\n $localize`Discount (for specific situations like customer satisfaction)`,\n $localize`Other`,\n ];\n travelFromShowCoordinatesEnum = JobcardTravel.TravelFromShowCoordinatesEnum;\n travelToShowCoordinatesEnum = JobcardTravel.TravelToShowCoordinatesEnum;\n lastImportedDate: boolean;\n alert: string;\n loadingTravelToDisplay = false;\n loadingActualTravelToDisplay = false;\n measurementUnit = 'KM';\n isEstimateTravelLoader: string = null;\n newAppointment: AppointmentAgendaDisplayed;\n enableArrow = true;\n travelTypeFrom: string;\n countries: CountryDto[] = [];\n countryAbbrev: string;\n otherWorkshopType = ExtraOperationTypeEnum;\n extraOperationsFiltered: JobcardItemExtraOperationDto[] = [];\n level2Filter = { subLevel: 2, isVisible: true };\n level3Filter = { subLevel: 3, isVisible: true };\n travelPrice = 0;\n noReordering = false;\n isCvFrance = false;\n maxLength: number;\n alertMessage: string;\n activityNameLength: number;\n\n constructor(\n private elRef: ElementRef,\n private modalService: NgbModal,\n private jobcardItemService: JobcardItemService,\n private workshopService: WorkshopAdminService,\n public appointmentService: AppointmentService,\n private warrantyService: WarrantyService,\n private paymentsService: PaymentsServiceAdmin,\n private kitService: KitService,\n private toastrService: ToastrService,\n private userService: UserService,\n private workshopUserService: WorkshopUsersAdminService,\n private smartViewService: SmartViewService,\n // hidden by task 372202\n // private discountService: DiscountService,\n private partService: PartsService,\n private checklistService: ChecklistTemplateService,\n private workshopChecklistService: WorkshopChecklistTypeService,\n private apiAppointmentsService: AppointmentsService,\n private apiAppointmentStatusService: AppointmentStatusService,\n private activatedRoute: ActivatedRoute,\n private notificationService: NotificationService,\n private jobcardItemControllerService: JobcardItemControllerService,\n @Inject(MaintenanceService) private maintenanceService: MaintenanceService,\n private cdRef: ChangeDetectorRef,\n // POST CON TRAVEL\n //TODO(Matteo) ignorare RemoveYaml jcIveco false\n // private jobcardService: JobcardService,\n private googleService: GoogleWebService,\n public workspaceTimeService: WorkspaceTimeService,\n private countryService: CountryService,\n // No iveco\n //TODO(Matteo) ignorare RemoveYaml jciveco false\n // private extraOperationService: ExtraOperationService,\n // No iveco\n //TODO(Matteo) ignorare RemoveYaml jciveco false\n // private warrantyTypeService: WarrantyTypesService,\n private permissionService: PermissionsService,\n public zone: NgZone,\n public newAppointmentService: NewAppointmentService,\n private userAdminService: UserAdminService,\n public mappingService: MappingService,\n @Inject(LOCALE_ID) public localeId: string\n ) {}\n\n ngOnInit(): void {\n this.measurementUnit = locales.find(\n (locale) => locale.id.toUpperCase() === this.localeId.toUpperCase()\n ).measurementUnits;\n const dateappt = new Date();\n if (environment.isIveco) {\n this.isBreakDownAppointment = this.newAppointmentService?.appointmentInCreation?.isBreakdownAppt;\n } else {\n this.remoteWorkshopBay = this.workshopBays?.find(\n (bay) => bay.type === 'Remote'\n );\n this.isBreakDownAppointment =\n this.newAppointmentService?.appointmentInCreation?.workshopBayId ===\n this.remoteWorkshopBay?.id;\n }\n const dateOfAppointment = moment().toISOString();\n switch (dateappt.getDay()) {\n case 0:\n this.dayOfAppointment = 'Sunday';\n break;\n case 1:\n this.dayOfAppointment = 'Monday';\n break;\n case 2:\n this.dayOfAppointment = 'Tuesday';\n break;\n case 3:\n this.dayOfAppointment = 'Wednesday';\n break;\n case 4:\n this.dayOfAppointment = 'Thursday';\n break;\n case 5:\n this.dayOfAppointment = 'Friday';\n break;\n case 6:\n this.dayOfAppointment = 'Saturday';\n }\n\n if (!this.isSummary && !this.isCustomerAccessible) {\n this.userAdminService.getUser().subscribe((user) => {\n this.userNV = user;\n // pour editer un comment il faut le role de warranty writer, sevice writer ou admin\n this.isEditAvailable = true\n ? this.userNV.role.roleAbbrev === 'WARR' ||\n this.userNV.role.roleAbbrev === 'ADVISOR' ||\n this.userNV.isAdmin\n : false;\n });\n this.statusColor = 'btn btn-outline-danger border-0 btn-icon';\n this.appointmentStatus = 'delivered';\n this.workshopUserService\n .getWorkshopUsers()\n .subscribe((workshopUsers: WorkshopUserDto[]) => {\n this.workshopUsers = workshopUsers;\n this.workshopUser = this.workshopUsers.filter(\n (wu) => wu.id === this.userNV.id\n )[0];\n if (this.isBreakDownAppointment) {\n this.newActivity = null;\n } else if (\n undefined !== this.workshopUser &&\n undefined !== this.workshopUser.isActivityApproval &&\n this.workshopUser.isActivityApproval === 'nope'\n ) {\n this.newActivity = '';\n this.yesToDoStatus = false;\n } else if (\n undefined === this.workshopUser.isActivityApproval ||\n this.workshopUser.isActivityApproval === 'yesToDoStatus' ||\n this.workshopUser.isActivityApproval === 'yesNewStatusOnly' ||\n this.workshopUser.isActivityApproval === 'outOfHoursNewStatus' ||\n this.workshopUser.isActivityApproval === 'outOfHoursNo'\n ) {\n this.newActivity = null;\n this.yesToDoStatus = true;\n } else {\n this.newActivity = '';\n }\n });\n\n this.workshopService.getWorkshop().subscribe((workshop) => {\n this.workshop = workshop;\n this.standAloneMode = workshop.standAloneMode;\n if (!this.countries.length && !environment.isIveco) {\n this.countryService.getAllCountries({authorization: this.userService.accessToken}).subscribe((countriesData) => {\n this.countries = countriesData;\n this.getCountryDetailsFromWorkshopCountry(workshop);\n });\n }\n this.workshop.openingDays.forEach((wu) => {\n if (\n null !== this.dayOfAppointment &&\n undefined !== this.dayOfAppointment\n ) {\n if (\n this.dayOfAppointment.toLowerCase() === wu.weekday.toLowerCase()\n ) {\n wu.periods.forEach((period) => {\n if (!this.apptAvailable) {\n const beforeTime = moment(period.start).format('HH:mm:ss');\n const afterTime = moment(period.end).format('HH:mm:ss');\n const appointmentTime = moment(dateOfAppointment).format(\n 'HH:mm:ss'\n );\n\n const beforeTimeSeconds: any = beforeTime.split(':'); // splitting the string by colo\n const beforeSeconds =\n beforeTimeSeconds[0] * 3600 +\n beforeTimeSeconds[1] * 60 +\n +beforeTimeSeconds[2]; // converting\n\n const afterTimeSeconds: any = afterTime.split(':');\n const afterSeconds =\n afterTimeSeconds[0] * 3600 +\n afterTimeSeconds[1] * 60 +\n +afterTimeSeconds[2]; // converting\n\n const appoinmentTimeSeconds: any = appointmentTime.split(':');\n const appointmentSeconds =\n appoinmentTimeSeconds[0] * 3600 +\n appoinmentTimeSeconds[1] * 60 +\n +appoinmentTimeSeconds[2]; // converting\n if (wu.periods.length === 1) {\n if (\n appointmentSeconds > beforeSeconds &&\n appointmentSeconds < afterSeconds\n ) {\n this.outOfHour = false;\n }\n // else if (wu.periods.length != 1) {\n // this.outOfHour = true;\n // // this.apptAvailable = true;\n // }\n else {\n this.outOfHour = true;\n this.apptAvailable = true;\n }\n } else {\n if (\n appointmentSeconds > beforeSeconds &&\n appointmentSeconds < afterSeconds\n ) {\n this.outOfHour = false;\n this.apptAvailable = true;\n } else {\n this.outOfHour = true;\n }\n }\n }\n });\n }\n }\n });\n if (\n undefined !== this.workshopUser &&\n undefined !== this.workshopUser.isActivityApproval &&\n this.workshopUser.isActivityApproval === 'outOfHoursNewStatus'\n ) {\n this.newActivity = null;\n this.yesToDoStatus = true;\n } else if (\n undefined !== this.workshopUser &&\n undefined !== this.workshopUser.isActivityApproval &&\n this.workshopUser.isActivityApproval === 'outOfHoursNo' &&\n !this.outOfHour\n ) {\n this.newActivity = '';\n this.yesToDoStatus = false;\n }\n if (workshop?.currencyCode) {\n this.currencyCode = workshop.currencyCode;\n }\n this.isVisiableAuthorizerName = this.newAppointmentService.getDefaultAuthorizerName(\n this.appointmentInCreation?.salesOrganizationId,\n this.workshop\n )\n ? true\n : false;\n });\n this.kitService.getKits({ workshopId: this.userNV.workshopId, authorization: this.userAdminService.accessToken}).subscribe((kits) => {\n this.kits = kits;\n });\n // hidden by task 372202\n // this.discountService.getDiscounts().subscribe((discounts) => {\n // discounts.forEach((discount) => {\n // discount.workshopUsers?.forEach((wu) => {\n // if (wu.id === this.userNV.id) {\n // this.discounts.push(discount);\n // }\n // });\n // });\n // });\n this.paymentsService.getPaymentTypes(this.userNV.workshopId).subscribe((types) => {\n if (\n environment.isIveco &&\n this.workshop?.countryId === 69 &&\n this.workshop.country === ('FRANCE' || 'FR')\n ) {\n this.isCvFrance = true;\n }\n this.paymentTypes.push(...types.filter((type) => type.isVisible));\n //To set the jobcard paymenttype\n this.paymentTypes.forEach((payment) => {\n if (payment.paymentSubTypes) {\n const subTypes: PaymentSubType[] = payment.paymentSubTypes.filter(\n (subType) => subType.isVisible\n );\n payment.paymentSubTypes = [];\n subTypes.forEach((subType) => {\n const subSubTypes: PaymentSubSubType[] = subType.paymentSubSubTypes.filter(\n (subSubType) => subSubType.isVisible\n );\n subType.paymentSubSubTypes = [];\n subSubTypes.forEach((subSubType) => {\n subType.paymentSubSubTypes.push(subSubType);\n });\n payment.paymentSubTypes.push(subType);\n });\n }\n });\n // Sort payment types based on weight\n this.paymentTypes = this.paymentTypes.sort((a, b) =>\n a.weight > b.weight ? 1 : b.weight > a.weight ? -1 : 0\n );\n this.paymentTypes.forEach((subType: PaymentTypeDto) => {\n subType.paymentSubTypes = subType.paymentSubTypes.sort((a, b) =>\n a.weight > b.weight ? 1 : b.weight > a.weight ? -1 : 0\n );\n });\n this.loadInfoJobCardItems();\n // codice commentato e aggiunto nel metodo loadInfoJobCardItems\n // dato che serve anche nell' ngOnChange per i jobCardItems\n // per la visualizzazione delle info es chiave inglese not warranty etc\n /*\n this.calculTotalDurationNV();\n this.jobcardItemsNV?.forEach((jobcardItem, index) => {\n this.setClockedTechniciansNV(jobcardItem);\n // hidden by task 372202\n // if (\n // jobcardItem.paymentType?.type === PaymentType.TypeEnum.Retail ||\n // jobcardItem.discountTypeId\n // ) {\n // jobcardItem.isDiscountAvailable = true;\n // }\n // Set warranty date for type D\n this.assemblyDate.push(\n jobcardItem.installedDate\n ? moment(jobcardItem.installedDate).toDate()\n : null\n );\n\n jobcardItem.isMaintenance =\n jobcardItem.type === jobcardItemTypeEnum.NextMaintenance ||\n jobcardItem.type === jobcardItemTypeEnum.ProposedMaintenance;\n if (jobcardItem.isMaintenance) {\n if (environment.isIveco && !jobcardItem.causalPartCode) {\n const params: GetPartsRequestParams = {\n noLoader: true,\n code: 'UNKNOWCSP',\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken,\n };\n this.partService.getParts(params).subscribe((parts: PartDto[]) => {\n if (parts?.length > 0) {\n jobcardItem.causalPartId = -1;\n jobcardItem.causalPartCode = parts[0].code;\n }\n });\n }\n if (!jobcardItem.failureDescription) {\n this.buildFailureDescriptionNV(jobcardItem);\n }\n }\n this.newAppointmentService.refreshPartsNV(jobcardItem);\n this.setPaymentTypes(jobcardItem);\n this.setEnableAutoWarrantyNV(jobcardItem);\n if (!environment.isIveco) {\n this.setWarrantyTypeNV(jobcardItem);\n }\n // If we enter the first time in the screen\n // Then calculate the paymentType and paymentSubType that are used\n // to display the correct value in the select box.\n // These objects are used to display all the linked values in the select box (*ngFor)\n\n if (environment.isIveco) {\n if (!jobcardItem.paymentType || !jobcardItem.paymentSubType) {\n this.defectCodeChangedNV(jobcardItem);\n this.supplierCodeChangedNV(jobcardItem);\n this.setEnableAutoWarrantyNV(jobcardItem);\n }\n }\n jobcardItem.causalParts = [];\n jobcardItem.causalPartCodes = [];\n this.otherCausalPart = [];\n if (jobcardItem.operations) {\n jobcardItem.operations.forEach((ope) => {\n if (ope.parts) {\n ope.parts.forEach((opePart) => {\n if (\n jobcardItem.causalParts\n .map((part) => part.id)\n .indexOf(opePart.part?.id) === -1\n ) {\n if(opePart.part){\n jobcardItem.causalParts.push(opePart.part);\n jobcardItem.causalPartCodes.push(opePart.part?.code);\n }\n }\n });\n }\n });\n }\n if (\n !jobcardItem.causalPartCodes.includes(jobcardItem.causalPartCode) &&\n jobcardItem.causalPartCode\n ) {\n this.otherCausalPart.push(jobcardItem.causalPartCode);\n const params: GetPartsRequestParams = {\n noLoader: true,\n code: jobcardItem.causalPartCode,\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken,\n };\n this.partService.getParts(params).subscribe((parts: PartDto[]) => {\n if (parts?.length > 0) {\n const availablepart = parts.filter(\n (part) => part.code === jobcardItem.causalPartCode\n )[0];\n this.otherCausalPart[index] =\n availablepart.code +\n (availablepart.description\n ? (availablepart.code ? ' - ' : '') +\n availablepart.description\n : '') +\n (availablepart.manufacturer\n ? ' - ' + availablepart.manufacturer\n : '');\n }\n });\n } else {\n this.otherCausalPart[index] = '';\n }\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n jobcardItem\n );\n this.newAppointmentService.setItemsWeightNV(this.jobcardItemsNV);\n jobcardItem.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(\n jobcardItem\n );\n jobcardItem.checklist =\n jobcardItem.checklistInstances?.length > 0\n ? { ...jobcardItem.checklistInstances[0] }\n : { id: null, checklistTemplateId: null };\n });\n this.newAppointmentService.arePartsAvailableNV(\n this.jobcardItemsNV,\n this.workshop\n );\n */\n });\n } else {\n this.jobcardItemsNV.forEach((jobcardItem) => {\n jobcardItem.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(\n jobcardItem\n );\n });\n }\n this.getVehicleTelematics();\n this.activatedRoute.queryParamMap.subscribe((params) => {\n this.jobcardItemsIds = params.get('jobcardItemIds');\n });\n if (this.jobcardItemsIds !== null && this.jobcardItemsIds.length) {\n const jidPresent = this.jobcardItemsNV?.some(\n (ji) =>\n this.jobcardItemsIds?.split(',')?.includes(ji.id.toString()) &&\n ji?.jobcardItemStatus[0]?.status !== JobcardItemStatusSEnum.Done\n );\n if (jidPresent) {\n this.toastrService.info(\n $localize`This activity is no longer in done state.`\n );\n }\n }\n\n // Disabling the future dates\n const date = new Date();\n this.maxDateStruct = {\n day: date.getDate(),\n month: date.getMonth() + 1,\n year: date.getFullYear(),\n };\n\n this.userAdminService.getUser().subscribe(() => {\n this.workshopChecklistService\n .getChecklistTypesByWorkshopId({\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken,\n })\n .subscribe((checklistTypes: WorkshopChecklistTypeDto[]) => {\n this.checklistService\n .getChecklistTemplates({\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken\n })\n .subscribe((data: ChecklistTemplateDto[]) => {\n const types = [\n ...checklistTypes.map((type) => type.checklistType),\n ];\n if (!environment.isIveco) {\n types.unshift('inspection');\n }\n types.unshift('reception');\n\n this.checklistDetail = data.filter(\n (template) => types.indexOf(template.type) > -1\n );\n this.checklistTemplateGroup = [];\n new Set(types).forEach((type) => {\n const templates: ChecklistTemplateDto[] = [];\n this.checklistDetail.forEach(\n (temp: ChecklistTemplateDto, index) => {\n if (temp.type === type) {\n templates.push(temp);\n }\n if (index === this.checklistDetail.length - 1) {\n const label =\n type === 'inspection'\n ? $localize`Inspection`\n : type === 'reception'\n ? $localize`Reception`\n : type;\n this.checklistTemplateGroup.push({\n groupName: label,\n groupItemValue: templates,\n });\n }\n }\n );\n });\n });\n });\n });\n\n if (this.appointmentInCreation?.jobcard?.jobcardTravels) {\n if (this.isVisibleTravel || this.editable) {\n this.refreshTravel();\n }\n }\n this.subscriptions.push(\n this.refreshCalculation?.subscribe((jobcardItems: any) => {\n setTimeout(() => {\n this.calculTotalDurationNV();\n }, 300);\n })\n );\n this.subscriptions.push(\n this.updatePipTravel?.subscribe((isTravelPip: boolean) => {\n if (isTravelPip) {\n this.refreshTravel();\n }\n })\n );\n\n if (!environment.isIveco) {\n // PIP travel for item code select field\n //TODO(Matteo) ignorare RemoveYaml jcIveco false\n // this.extraOperationService.getOtherItems({}).subscribe((items) => {\n // items = items\n // .sort((a, b) => (a.code < b.code ? -1 : a.code > b.code ? 1 : 0))\n // .filter(\n // (op: JobcardItemExtraOperationDto) => op.type === this.otherWorkshopType.Travel\n // );\n // this.extraOperationsFiltered = [...items];\n // });\n }\n this.permissionService\n .hasPermissions([Permission.NoReordering])\n .subscribe((noReordering) => {\n this.noReordering = noReordering;\n });\n if (environment.isIveco) {\n this.maxLength = 100;\n this.activityNameLength = 1000;\n } else {\n this.maxLength = 1000;\n }\n this.alertMessage = Util.stringFormat(\n $localize`Maximum input character limit [0] reached`,\n this.activityNameLength\n );\n }\n\n refreshTravel() {\n this.travelArray = this.appointmentInCreation?.jobcard?.jobcardTravels;\n this.travelArray.sort((a, b) => (a.id < b.id ? -1 : 1));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // 367073 - Removed, cause BUG in DMS...\n //this.appointmentInCreation.jobcard.jobcardItems = this.checkWarrantyDetails.jobcard.jobcardItems;\n if (\n this.nbMaintenances > 0 &&\n this.nbUpdatedMaintenances > 0 &&\n this.nbMaintenances === this.nbUpdatedMaintenances &&\n !this.maintenancesUpdated\n ) {\n this.filterJobcardItems();\n this.updateOperationsMaintenances();\n }\n this.calculTotalDurationNV();\n\n const defaultBay = changes['defaultBay'];\n if (defaultBay && !defaultBay.firstChange) {\n this.jobcardItemsNV.forEach((item) => {\n if (!item.workshopBayId) {\n item.workshopBayId = this.defaultBay.id;\n this.assignTechnicianBayNV(item, this.defaultBay.id);\n }\n });\n }\n\n if (changes.jobcardItemsNV) {\n if(!this.jobcardItemsNV) {\n this.jobcardItemsNV = [];\n }\n this.loadInfoJobCardItems();\n // presente nel metodo loadInfoJobCardItems se lo si rimuove da scommentare il foreach\n // this.jobcardItemsNV.forEach((jobcardItem) => {\n // this.setClockedTechniciansNV(jobcardItem);\n // jobcardItem.checklist =\n // jobcardItem.checklistInstances?.length > 0\n // ? { ...jobcardItem.checklistInstances[0] }\n // : { id: null, checklistTemplateId: null };\n // });\n }\n\n if (changes.workshopBays && !environment.isIveco) {\n this.remoteWorkshopBay = this.workshopBays?.find(\n (bay) => bay.type === 'Remote'\n );\n this.isBreakDownAppointment =\n this.newAppointmentService?.appointmentInCreation?.workshopBayId ===\n this.remoteWorkshopBay?.id;\n }\n\n if (\n (changes.appointments || changes.workshopBays) &&\n !environment.isIveco\n ) {\n this.fetchPartsAvailabilityNV();\n }\n if (\n environment.isIveco &&\n this.workshop?.countryId === 69 &&\n this.workshop.country === ('FRANCE' || 'FR')\n ) {\n this.isCvFrance = true;\n this.jobcardItemsNV.forEach((jobcardItem) => {\n this.changeSelectedPaymentTypeNV(jobcardItem);\n this.changeSelectedPaymentSubTypeNV(jobcardItem);\n });\n }\n this.jobcardItemsNV.sort((a, b) => a.weight - b.weight);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription?.unsubscribe());\n }\n\n updateOperationsMaintenances() {\n const maintenances:any = this.jobcardItemsNV.filter((item) => item.isMaintenance);\n // TODO(Marco) CHIAMATA ETIM SI ASPETTA JOBCARDITEM\n this.smartViewService\n .updateKitsPartsMaintenances({ jobcardItem: maintenances })\n .subscribe((updatedMaintenances) => {\n updatedMaintenances.forEach((updatedMaintenance) => {\n this.jobcardItemsNV\n .filter((jobcardItem) => jobcardItem.isMaintenance)\n .find((maintenance) => maintenance.code === updatedMaintenance.code)\n .operations.forEach((operation) => {\n const updatedOperation = updatedMaintenance.operations.find(\n (op) => (op.label = operation.label)\n );\n operation.isKitComplete = updatedOperation.isKitComplete;\n operation.useKitPart = updatedOperation.useKitPart;\n\n if (operation.parts) {\n operation.parts.forEach((part) => {\n if (!operation.id && part.selected === undefined) {\n if (\n part.part.isKit &&\n operation.isKitComplete &&\n operation.useKitPart &&\n !this.environment.isIveco\n ) {\n part.selected = true;\n } else if (!part.part.isKit && !operation.useKitPart) {\n const selectedPart = operation.parts.find(\n (p) => p.selected\n );\n if (!selectedPart && !this.environment.isIveco) {\n operation.parts[0].selected = true;\n }\n } else {\n part.selected = false;\n }\n }\n });\n // Put Selected as false for all other parts if selected is undefined\n operation.parts.forEach(\n (part) =>\n (part.selected =\n part.selected === undefined ? false : part.selected)\n );\n }\n if (operation.consumables && operation.consumables.length > 0) {\n const selectedCons = operation.consumables.find(\n (cons) => cons.selected\n );\n if (!selectedCons && !this.environment.isIveco) {\n operation.consumables[0].selected = true;\n }\n }\n });\n });\n this.maintenancesUpdated = true;\n this.newAppointmentService.setItemsWeight(this.jobcardItemsNV);\n });\n }\n\n /**\n * Add a new activity (jobcard item) to the list.\n */\n addActivityNV(isBreakDownAppointment: boolean, activityStatus: string) {\n this.jobcardItemExist = false;\n if (this.newActivity) {\n const creationData = this.newAppointmentService.getCreationData();\n const technicians: JobcardItemTechnicianDto[] = [];\n const technicianId: string =\n this.newAppointmentService.appointmentInCreation?.id && (this.newAppointmentService.appointmentInCreation?.workshopUserId ||\n this.getTechLeadNV(this.newAppointmentService.appointmentInCreation));\n // For AG in booking view have pending assign\n if (technicianId && technicianId !== '' && environment.isIveco) {\n technicians.push({\n workshopUserId: technicianId,\n startDate: this.newAppointmentService.appointmentInCreation?.receptionDate,\n });\n } else if (!environment.isIveco && creationData?.workshopUserId) {\n const date = creationData.startDateTime\n ? creationData.startDateTime\n : creationData.startDate;\n technicians.push({\n workshopUserId: creationData.workshopUserId,\n startDate: date.toISOString(),\n estimatedDuration: 0,\n });\n }\n\n const newJobcardItem: JobcardItemCollapsableNew = {\n name: this.newActivity,\n operations: [],\n jobcardItemAttachments: [],\n jobcardItemStatus: [],\n collapsed: true,\n type: 'free',\n visible: true,\n deferred: false,\n deleted: false,\n technicians,\n workshopBayId: this.defaultBay?.id,\n checklist: { id: null, checklistTemplateId: null },\n checklistInstances: [],\n jobcardItemSpells: [],\n tempJId: (\n Date.now().toString(36) + Math.random().toString(36).substr(2, 5)\n ).toUpperCase(),\n estimatedDuration: 0,\n officialTime: 0,\n };\n newJobcardItem.jobcardItemSpells.push({\n weight: 1,\n technicians,\n estimatedDuration: 0,\n startDate: this.newAppointmentService?.appointmentInCreation?.receptionDate\n ? this.newAppointmentService?.appointmentInCreation?.receptionDate\n : new Date().toISOString(),\n });\n this.setStatusNV(newJobcardItem);\n if (this.defaultBay?.id) {\n newJobcardItem.jobcardItemSpells[0].workshopBayId = this.defaultBay.id;\n this.assignTechnicianBayNV(newJobcardItem, this.defaultBay.id);\n }\n newJobcardItem.jobcardItemStatus = [];\n this.addConfigurationNV(\n isBreakDownAppointment,\n newJobcardItem,\n activityStatus\n );\n this.jobcardItemsNV.forEach((jb) => {\n if (jb.name === newJobcardItem.name) {\n this.jobcardItemExist = true;\n }\n });\n if (!newJobcardItem?.operations) {\n newJobcardItem.operations = [];\n }\n const defaultOperation = this.srtOperationsNV.find(\n (x) => x?.isDefault === true\n );\n if (environment.isIveco && defaultOperation) {\n newJobcardItem.operations.push({\n code: defaultOperation?.code,\n manufacturer: defaultOperation?.manufacturer,\n label: defaultOperation?.label,\n durationTime: 0,\n officialTime: defaultOperation?.officialTime,\n isDefault: defaultOperation?.isDefault,\n parts: [],\n srt: false,\n weight: 1,\n });\n }\n if (!this.jobcardItemExist) {\n if (environment.isIveco && this.supplierCode?.length > 0) {\n newJobcardItem.supplierCode = this.supplierCode[0].code;\n }\n this.jobcardItemsNV.push(newJobcardItem);\n this.newActivity = null;\n this.lastActivityIndex = this.jobcardItemsNV.indexOf(newJobcardItem);\n if (!this.isKit) {\n newJobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n newJobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n }\n this.filterJobcardItems();\n }\n this.newAppointmentService.setItemsWeightNV(this.jobcardItemsNV);\n } else {\n this.newActivity = '';\n }\n }\n\n addConfigurationNV(\n isBreakDownAppointment: boolean,\n newJobcardItem: JobcardItemCollapsableNew,\n activityStatus: string\n ) {\n if (isBreakDownAppointment) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n } else if (\n undefined === activityStatus ||\n activityStatus === 'yesToDoStatus'\n ) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'yesNewStatusOnly') {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.New,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'outOfHoursNewStatus' && this.outOfHour) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'outOfHoursNewStatus' && !this.outOfHour) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.New,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'outOfHoursNo' && this.outOfHour) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else if (activityStatus === 'outOfHoursNo' && !this.outOfHour) {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n this.newActivity = '';\n this.yesToDoStatus = false;\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = false;\n } else {\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n }\n }\n\n setStatusNV(newJobcardItem: JobcardItemDto) {\n // Manage new Activities\n // If appointment creation => Status = new\n // then is not a new Activity, and we have the client validation\n // Otherwise, we need to confirm the new activity\n const customerName = this.status?.customerCompanyUser\n ? this.status?.customerCompanyUser?.firstName\n ? this.status?.customerCompanyUser?.firstName +\n ' ' +\n this.status?.customerCompanyUser?.lastName\n : this.status?.customerCompanyUser?.lastName\n : null;\n if (this.status) {\n switch (this.status?.status) {\n case appointmentStatusEnum.New:\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = true;\n newJobcardItem.agreementCustomerName = customerName;\n break;\n case appointmentStatusEnum.Schedule:\n case appointmentStatusEnum.AppointmentPrepared:\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = true;\n break;\n default:\n newJobcardItem.isExtraActivity = true;\n newJobcardItem.isCustomerAgreed = false;\n break;\n }\n } else {\n newJobcardItem.isExtraActivity = false;\n newJobcardItem.isCustomerAgreed = true;\n newJobcardItem.agreementCustomerName = customerName;\n }\n }\n\n\n editNameNV(jobcardItem: JobcardItemCollapsableNew, event: Event) {\n //event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.title = $localize`Edit name`;\n modalRef.componentInstance.field = $localize`Name`;\n modalRef.componentInstance.value = jobcardItem.name;\n modalRef.componentInstance.isActivityName = true;\n modalRef.componentInstance.JobcardItems = this.jobcardItemsNV;\n\n modalRef.result.then(\n (newValue) => {\n jobcardItem.name = newValue.value;\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n searchPart = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n tap(() => (this.searchingPart = true)),\n switchMap((term) => {\n if (term.length < 3) {\n return of([]);\n }\n const params: GetPartsRequestParams = {\n noLoader: true,\n code: term.toUpperCase(),\n page: 0,\n size: 100,\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken,\n };\n return this.partService.getParts(params).pipe(catchError(() => of([])));\n }),\n tap(() => (this.searchingPart = false))\n );\n\n resultFormatPartValue(value: PartDto): string {\n return (\n value.code +\n (value.description ? (value.code ? ' - ' : '') + value.description : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '')\n );\n }\n\n inputFormatPartValue(value: PartDto | any): string {\n if (value.id) {\n return (\n value.code +\n (value.description\n ? (value.code ? ' - ' : '') + value.description\n : '') +\n (value.manufacturer ? ' - ' + value.manufacturer : '')\n );\n } else {\n return value;\n }\n }\n\n\n partChangedNV(data: PartDto, i: number): void {\n this.jobcardItemsNV.forEach((item, index) => {\n if (i === index) {\n if (data.id) {\n item.causalPartCode = data.code;\n } else {\n item.causalPartCode = this.otherCausalPart[i];\n }\n }\n });\n }\n\n\n removeKitActivityNV(\n jobcardItem: JobcardItemCollapsableNew,\n index: number,\n event: Event\n ) {\n // event.stopPropagation();\n if (this.isKit) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const modalComponent = modalRef.componentInstance as ConfirmModalComponent;\n modalComponent.title = $localize`Remove activity`;\n modalComponent.message = Util.stringFormat(\n $localize`Are you sure you want to remove this activity ([0]) from the current kit?`,\n jobcardItem.name\n );\n modalComponent.action = $localize`Delete`;\n modalRef.result.then(\n (confirmed) => {\n if (confirmed === true) {\n this.jobcardItemsNV.splice(index, 1);\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n }\n\n updatesPartBySpannerNV(jobcardItem: JobcardItemCollapsableNew, event: Event) {\n //event.stopPropagation();\n let nbPartAdded = 0;\n if (this.workshop.enableCsps) {\n jobcardItem.operations?.forEach((op) => {\n op.parts?.forEach((opePart) => {\n if (opePart.selected === undefined || opePart.selected) {\n this.jobcardPartsBacklogNV.push({\n jobcardItemId: jobcardItem.id,\n partId: Number(opePart.part.id),\n appointmentId: this.newAppointmentService?.appointmentInCreation?.id,\n quantity: opePart.quantity,\n partStatus: 'To be ordered',\n customerCompanyId: this.newAppointmentService?.appointmentInCreation\n ?.customerCompany?.id,\n workshopId: this.workshop.id,\n });\n nbPartAdded++;\n }\n });\n jobcardItem.jobcardPartsBacklog = this.jobcardPartsBacklogNV;\n });\n this.jobcardPartsBacklogNV = [];\n if (this.isWorkfile || this.appointmentInCreation.id) {\n this.editApptMent();\n this.toastrService.success(\n $localize`The part(s) has/have been added to the backlog`\n );\n }\n if (nbPartAdded > 0 && !this.appointmentInCreation.id) {\n this.toastrService.success(\n $localize`The part(s) has/have been added to the backlog, please save the appointment to confirm the action`\n );\n } else if (nbPartAdded === 0) {\n this.toastrService.warning($localize`No part was added to the backlog`);\n }\n }\n }\n\n openOperationModalNV(\n jobcardItem: JobcardItemCollapsableNew,\n operation?: JobcardItemOperationDto\n ) {\n if (\n jobcardItem.isMaintenance ||\n jobcardItem?.type === jobcardItemTypeEnum.NextMaintenance ||\n jobcardItem?.type === jobcardItemTypeEnum.ProposedMaintenance\n ) {\n this.editMaintenanceModalNV(operation);\n } else {\n this.editOperationModalNV(jobcardItem, operation);\n }\n }\n openMaintenanceActivityModal(jobcardItem: JobcardItemCollapsableNew) {\n if (\n jobcardItem.isMaintenance ||\n jobcardItem?.type === jobcardItemTypeEnum.NextMaintenance ||\n jobcardItem?.type === jobcardItemTypeEnum.ProposedMaintenance\n ) {\n this.editMaintenanceActivityModalNV(jobcardItem);\n }\n }\n\n editMaintenanceActivityModalNV(jobcardItem: JobcardItemCollapsableNew) {\n const modalRef = this.modalService.open(\n EditMaintenanceActivityModalComponent,\n {\n size: 'lg',\n }\n );\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.result.then(\n (updatedJobcardItem: JobcardItemCollapsableNew) => {\n if (updatedJobcardItem) {\n jobcardItem.operations = updatedJobcardItem.operations;\n jobcardItem.isMaintenance = true;\n updatedJobcardItem?.operations?.forEach((editedOperation) => {\n const kitPart = editedOperation?.parts?.find(\n (op) => op?.part?.isKit\n )?.part;\n this.jobcardItemsNV\n ?.filter((item) =>\n [\n jobcardItemTypeEnum.NextMaintenance,\n jobcardItemTypeEnum.ProposedMaintenance,\n ].includes(item.type)\n )\n ?.forEach((maintenance) => {\n maintenance.operations?.forEach((ope) => {\n // Set on each Ope where the Kit is present, the boolean if part is used or not\n if (\n ope.isKitComplete &&\n ope.parts &&\n ope.parts\n .filter((operationPart) => operationPart.part.isKit)\n ?.find(\n (operationPart) =>\n operationPart.part.code === kitPart.code\n )\n ) {\n ope.useKitPart = editedOperation.useKitPart;\n }\n });\n });\n });\n if (!environment.isIveco) {\n this.fetchPartsAvailabilityNV();\n }\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n editOperationModalNV(\n jobcardItem: JobcardItemCollapsableNew,\n operation?: JobcardItemOperationDto\n ) {\n if (!environment.isIveco && jobcardItem.type === 'pip') {\n const modalRef = this.modalService.open(ConfirmModalComponent, {\n size: 'md',\n backdrop: 'static',\n });\n modalRef.componentInstance.title = $localize`Disclaimer`;\n modalRef.componentInstance.message = $localize`Changing the contents of the PiP will cause the claim to be potentially rejected.`;\n modalRef.componentInstance.action = $localize`Continue`;\n modalRef.result.then(\n () => {\n this.openOperationalModalNV(jobcardItem, operation);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n } else {\n this.openOperationalModalNV(jobcardItem, operation);\n this.setEnableAutoWarrantyNV(jobcardItem);\n }\n }\n\n openOperationalModalNV(\n jobcardItem: JobcardItemCollapsableNew,\n operation?: JobcardItemOperationDto\n ) {\n let index: number;\n if (operation) {\n index = jobcardItem.operations?.indexOf(operation);\n }\n\n const modalRef = this.modalService.open(EditOperationModalComponent, {\n size: 'lg',\n });\n if (operation) {\n modalRef.componentInstance.operation = JSON.parse(\n JSON.stringify(operation)\n );\n }\n\n modalRef.componentInstance.jobcard = jobcardItem;\n modalRef.componentInstance.appointment = this.appointmentInCreation;\n modalRef.componentInstance.srtOperations = this.srtOperationsNV;\n modalRef.componentInstance.availableParts = this.parts;\n modalRef.componentInstance.partsReturn = this.partsReturn;\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.result.then(\n (response) => {\n if (!jobcardItem.operations) {\n jobcardItem.operations = [];\n }\n if (response.operation.code || response.operation.label) {\n if (index > -1) {\n jobcardItem.operations.splice(index, 1, response.operation);\n } else {\n // since srt operation are not flagged correctly, setup manually (since US AG #336734)\n if (!environment.isIveco && response.operation.srt !== false) {\n response.operation.srt = true;\n }\n jobcardItem.operations.push(response.operation);\n }\n this.newAppointmentService.recalculateGlobalDurations();\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n }\n response.operationsList.forEach((operationResult: JobcardItemOperationDto) => {\n // Create the new operations coming from SRT\n if (operationResult.code || operationResult.label) {\n const presentOperation = jobcardItem.operations.find(\n (oldOperation) => oldOperation.code === operationResult.code\n );\n if (!presentOperation) {\n jobcardItem.operations.push(operationResult);\n }\n this.newAppointmentService.recalculateGlobalDurations();\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n // SetDelivery Date based on Operation Hours\n }\n });\n if (!environment.isIveco) {\n this.newAppointmentService.isOperationUpdated = true;\n this.fetchPartsAvailabilityNV();\n const creationData = this.newAppointmentService.getCreationData();\n if (creationData?.assignActivities) {\n this.updateTechEstimationNV(jobcardItem);\n }\n if (this.newAppointmentService?.appointmentInCreation?.id) {\n // For AG Not Updating Delivery date when updating operation\n this.updateTechEstimationNV(jobcardItem);\n setTimeout(() => {\n this.updateDeliveryDate();\n }, 600);\n }\n }\n this.newAppointmentService.refreshPartsNV(jobcardItem);\n this.newAppointmentService.arePartsAvailableNV(\n this.jobcardItemsNV,\n this.workshop\n );\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n updateTechEstimationNV(jobcardItem: JobcardItemCollapsableNew) {\n if (jobcardItem?.jobcardItemSpells?.length) {\n jobcardItem?.jobcardItemSpells?.forEach((spell: JobcardItemSpellDto) => {\n if (\n spell?.estimatedDuration &&\n spell.technicians?.length === 1 &&\n spell.technicians?.[0]?.estimatedDuration < 1\n ) {\n spell.technicians[0].estimatedDuration = spell.estimatedDuration;\n }\n });\n }\n }\n\n updateDeliveryDate() {\n const receptionDate =\n this.newAppointmentService?.appointment?.receptionDate ??\n moment(new Date()).toISOString();\n const deliveryDate = this.newAppointmentService.getDeliveryDate(\n receptionDate,\n this.newAppointmentService?.appointmentInCreation?.jobcard,\n this.workspaceTimeService.periods,\n this.workspaceTimeService\n );\n if (\n moment(this.newAppointmentService.appointmentInCreation.deliveryDate).isBefore(\n moment(deliveryDate)\n ) &&\n moment(receptionDate).isAfter(moment(deliveryDate))\n ) {\n this.newAppointmentService.appointmentInCreation.deliveryDate = deliveryDate.toISOString();\n }\n }\n\n editMaintenanceModalNV(operation?: JobcardItemOperationDto) {\n const modalRef = this.modalService.open(EditMaintenanceModalComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.operation = operation;\n\n modalRef.result.then(\n (editedOperation: JobcardItemOperationDto) => {\n if (editedOperation) {\n operation.parts = editedOperation.parts;\n operation.consumables = editedOperation.consumables;\n operation.useKitPart = editedOperation.useKitPart;\n const kitPart = editedOperation.parts.find((op) => op.part.isKit)\n .part;\n this.jobcardItemsNV\n .filter((item) =>\n [\n jobcardItemTypeEnum.NextMaintenance,\n jobcardItemTypeEnum.ProposedMaintenance,\n ].includes(item.type)\n )\n ?.forEach((maintenance) => {\n maintenance.operations.forEach((ope) => {\n // Set on each Ope where the Kit is present, the boolean if part is used or not\n if (\n ope.isKitComplete &&\n ope.parts &&\n ope.parts\n .filter((operationPart) => operationPart.part.isKit)\n ?.find(\n (operationPart) =>\n operationPart.part.code === kitPart.code\n )\n ) {\n ope.useKitPart = editedOperation.useKitPart;\n }\n if (!this.environment.isIveco) {\n ope.parts?.forEach((opPart) => {\n if (\n (opPart.part.isKit &&\n ope.isKitComplete &&\n ope.useKitPart) ||\n (!opPart.part.isKit && !ope.useKitPart)\n ) {\n opPart.selected = true;\n } else {\n opPart.selected = false;\n }\n });\n }\n });\n });\n if (!environment.isIveco) {\n this.fetchPartsAvailabilityNV();\n }\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n removeOperationNV(jobcardItem: JobcardItemCollapsableNew, operation: JobcardItemOperationDto) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Operation deletion`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to delete the operation \"[0]\"?`,\n operation.label\n );\n confirmModal.action = $localize`Delete`;\n modalRef.result.then(\n () => {\n jobcardItem.operations.splice(\n jobcardItem.operations.indexOf(operation),\n 1\n );\n this.newAppointmentService.recalculateGlobalDurations();\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n this.newAppointmentService.setItemsWeightNV([jobcardItem]);\n if (!environment.isIveco) {\n this.fetchPartsAvailabilityNV();\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n // /**\n // * Defer a jobcard item from the list.\n // *\n // * @param jobcardItem Jobcard item to defer.\n // */\n openDeferActivityModalNV(jobcardItem: JobcardItemCollapsableNew, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(NewDeferActivityModalComponent);\n const deferModal = modalRef.componentInstance as NewDeferActivityModalComponent;\n deferModal.title = $localize`Defer / Delete an activity`;\n deferModal.reason = $localize`Reason for deferring/deleting`;\n deferModal.message = $localize`defer / delete activity`;\n deferModal.jobcardItem = jobcardItem;\n deferModal.jobcardItems = this.jobcardItemsNV;\n deferModal.deferringDate = moment(new Date()).add(3, 'months').toDate();\n modalRef.result.then(\n (managedItem: JobcardItemDto) => {\n if (\n managedItem?.deleted &&\n managedItem?.type?.includes('Maintenance')\n ) {\n if (!this.newAppointmentService.appointmentInCreation.jobcard.jobcardItemDeleted) {\n this.newAppointmentService.appointmentInCreation.jobcard.jobcardItemDeleted = [];\n }\n this.newAppointmentService.appointmentInCreation.jobcard.jobcardItemDeleted.push({\n code: managedItem.code,\n name: managedItem.name,\n type: managedItem.type,\n jobcardId: this.newAppointmentService.appointmentInCreation.jobcard?.id,\n });\n }\n\n if (managedItem.deleted) {\n if (managedItem.name && (managedItem.type === 'deferred' || managedItem.type === 'free')) {\n if (this.newAppointmentService.appointmentsInCreationByVehicle.length > 0) {\n this.newAppointmentService.appointmentsInCreationByVehicle[0].jobcard.jobcardItems = this.newAppointmentService.appointmentsInCreationByVehicle[0].jobcard.jobcardItems.filter((j: any) => j.name !== managedItem.name);\n }\n }\n }\n // set defered activity to smart view as well\n\n if (\n this.newAppointmentService.appointmentInCreation.vehicle?.id &&\n managedItem?.deferred &&\n this.newAppointmentService.appointmentsInCreationByVehicle.length\n ) {\n\n if (this.newAppointmentService?.appointmentInCreation?.id) {\n const findIndex = this.newAppointmentService.appointmentsInCreationByVehicle.findIndex(\n (app: any) =>\n app.id === this.newAppointmentService.appointmentInCreation.id\n );\n if (findIndex > -1) {\n this.newAppointmentService.appointmentsInCreationByVehicle[findIndex].jobcard.jobcardItems.forEach(ji => {\n if(ji.type === 'deferred' || ji.type === 'free') {\n if (!this.newAppointmentService.appointmentInCreation.jobcard.jobcardItems.some((appJi: any) => appJi.name && appJi.name === ji.name)) {\n this.newAppointmentService.appointmentInCreation.jobcard.jobcardItems.push(ji);\n };\n }\n });\n this.newAppointmentService.appointmentsInCreationByVehicle.splice(\n findIndex,\n 1,\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n } else {\n this.newAppointmentService.appointmentsInCreationByVehicle.unshift(\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n }\n } else {\n if (this.newAppointmentService.appointmentsInCreationByVehicle.some((app: any) => app.workshopId && app.workshopUserId && app.vehicle)) {\n const findIndex = this.newAppointmentService.appointmentsInCreationByVehicle.findIndex(\n (app: any) =>\n app.workshopId && app.workshopUserId && app.vehicle\n );\n if (findIndex > -1) {\n this.newAppointmentService.appointmentsInCreationByVehicle[findIndex].jobcard.jobcardItems.forEach(ji => {\n if(ji.type === 'deferred' || ji.type === 'free') {\n if (!this.newAppointmentService.appointmentInCreation.jobcard.jobcardItems.some((appJi: any) => appJi.name && appJi.name === ji.name)) {\n this.newAppointmentService.appointmentInCreation.jobcard.jobcardItems.push(ji);\n };\n }\n });\n this.newAppointmentService.appointmentsInCreationByVehicle.splice(\n findIndex,\n 1,\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n }\n } else {\n this.newAppointmentService.appointmentsInCreationByVehicle.unshift(\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n }\n }\n\n\n // const appointmentsInCreationByVehicleChecked: any = [];\n // const appointmentsInCreationByVehicleAny: any = this.newAppointmentService.appointmentsInCreationByVehicle[0];\n // appointmentsInCreationByVehicleAny?.jobcard?.jobcardItems.forEach((act: any) => {\n // appointmentsInCreationByVehicleChecked.push(act);\n // });\n // this.newAppointmentService.appointmentsInCreationByVehicle = [];\n // this.newAppointmentService.appointmentsInCreationByVehicle.push(\n // JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n // );\n // const appointmentsInCreationByVehicleAnyPostRefresh: any = this.newAppointmentService.appointmentsInCreationByVehicle[0];\n // appointmentsInCreationByVehicleChecked.forEach((acti: any) => {\n // if(!appointmentsInCreationByVehicleAnyPostRefresh?.jobcard?.jobcardItems.some((ji: any) => ji.name === acti.name)) {\n // appointmentsInCreationByVehicleAnyPostRefresh?.jobcard?.jobcardItems.unshift(acti);\n // };\n // });\n\n } else if (\n this.newAppointmentService.appointmentInCreation.vehicle?.id &&\n managedItem?.deferred &&\n !this.newAppointmentService.appointmentsInCreationByVehicle.length\n ) {\n this.newAppointmentService.appointmentsInCreationByVehicle.unshift(\n JSON.parse(JSON.stringify(this.newAppointmentService.appointmentInCreation))\n );\n }\n\n this.newAppointmentService.recalculateGlobalDurations();\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n this.filterJobcardItems();\n },\n () => {\n /* Do nothing on closing */\n }\n );\n // !MODIFICHE\n }\n\n getClientAgreementNV(jobcardItem: JobcardItemDto, event: Event): void {\n //event.stopPropagation();\n const modalRef = this.modalService.open(\n ClientVerbalAgreementModalComponent\n );\n modalRef.componentInstance.customer = {\n lastName: jobcardItem.agreementCustomerName,\n };\n modalRef.componentInstance.isCustomerAgreed = jobcardItem.isCustomerAgreed;\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.result.then(\n (customer) => {\n if (!jobcardItem.jobcardItemStatus) {\n jobcardItem.jobcardItemStatus = [];\n }\n if (customer === false) {\n jobcardItem.agreementCustomerName = null;\n jobcardItem.isCustomerAgreed = false;\n\n jobcardItem.jobcardItemStatus.unshift({\n status: JobcardItemStatusSEnum.New,\n time: moment(new Date()).toISOString(),\n workshopUserId: this.userNV.id,\n });\n\n // Remove the previously saved Service Advisor approval\n const itemIndex = this.newAppointmentService.newApprovedActivities.findIndex(\n (item) => item.id === jobcardItem.id\n );\n if (itemIndex > -1) {\n this.newAppointmentService.newApprovedActivities.splice(itemIndex, 1);\n }\n } else {\n if (typeof customer === 'string') {\n jobcardItem.agreementCustomerName = customer;\n } else {\n jobcardItem.agreementCustomerName = `${customer.firstName || ''} ${\n customer.lastName || ''\n }`.trim();\n }\n jobcardItem.isCustomerAgreed = true;\n jobcardItem.visible = true;\n if (jobcardItem.jobcardItemStatus[0].status === 'new') {\n jobcardItem.jobcardItemStatus.unshift({\n status: JobcardItemStatusSEnum.Todo,\n duration: 0,\n time: new Date(moment().format()).toISOString(),\n jobcardItemId: jobcardItem.id,\n });\n }\n\n // Save the Service Advisor approval\n if (this.newAppointmentService.appointmentInCreation?.id && jobcardItem.id) {\n const originalItem = this.newAppointmentService.basedAppointmentInCreation?.jobcard?.jobcardItems?.find(\n (ji: any) => ji.id === jobcardItem.id\n );\n if (originalItem?.jobcardItemStatus[0].status === 'new') {\n this.newAppointmentService.newApprovedActivities.push(jobcardItem);\n }\n }\n }\n\n if (!jobcardItem.jobcardItemCustomerStatus) {\n jobcardItem.jobcardItemCustomerStatus = [];\n }\n\n jobcardItem.jobcardItemCustomerStatus.push({\n action: jobcardItem.isCustomerAgreed\n ? JobcardItemCustomerStatus.ActionEnum.Approve\n : JobcardItemCustomerStatus.ActionEnum.Decline,\n actionDateTime: new Date().toISOString(),\n actionType: JobcardItemCustomerStatus.ActionTypeEnum.Offline,\n actionPerformedBy: this.userNV?.displayedName,\n });\n if(this.appointmentNV) {\n this.newAppointmentService.computeTotalPriceDto(this.paymentTypes, this.appointmentNV);\n } else {\n this.newAppointmentService.computeTotalPrice(this.paymentTypes, this.appointmentInCreation);\n }\n this.updateStatus.next('');\n // If its in workfile screen then update jobcardItem\n if (jobcardItem?.id && this.isWorkfile) {\n const params: UpdateJobcardItemRequestParams = {\n id: jobcardItem.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: jobcardItem,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe((ji: JobcardItemDto) => {\n this.updateJobCardItemSelected(ji,jobcardItem.id)\n });\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n updateJobCardItemSelected(ji: JobcardItemDto, id: number){\n this.replaceActivityNV(ji);\n this.jobcardItemsNV.forEach(element => {\n if(element.id === id)\n {\n element = ji;\n }\n });\n this.jobcardItemsChange.emit(this.jobcardItemsNV);\n //this.reloadAppointment()\n }\n onJobcardItemDrop(event: CdkDragDrop) {\n if (event.previousContainer === event.container) {\n moveItemInArray(\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n );\n }\n this.newAppointmentService.setItemsWeightNV(this.jobcardItemsNV);\n if (this.jobcardItemsNV.every((item) => item.id)) {\n this.jobcardItemService\n .updateJobcardItems({\n authorization: this.userAdminService.accessToken,\n jobcardItemDto: this.jobcardItemsNV,\n view: 'activities',\n })\n .subscribe(\n jbCards => {\n jbCards.forEach(ji =>{\n this.changeSelectedPaymentTypeNV(ji);\n // this.changeSelectedPaymentTypeNV(ji);\n let element = this.jobcardItemsNV.filter(el => el.id === ji.id);\n if(element.length ===1){\n element[0].version = ji.version;\n if(element[0].checklistInstances.length > 0){\n element[0].checklistInstances[0].version = ji.checklistInstances[0].version;\n }\n }\n });\n this.jobcardItemsChange.emit(this.jobcardItemsNV);\n }\n );\n }\n }\n\n loadInfoJobCardItems(){\n this.calculTotalDurationNV();\n if(!this.userNV || !this.userNV.workshopId){\n this.userAdminService.getUser().subscribe((user) => {\n this.userNV = user;\n });\n }\n this.jobcardItemsNV?.forEach((jobcardItem, index) => {\n this.setClockedTechniciansNV(jobcardItem);\n // hidden by task 372202\n // if (\n // jobcardItem.paymentType?.type === PaymentType.TypeEnum.Retail ||\n // jobcardItem.discountTypeId\n // ) {\n // jobcardItem.isDiscountAvailable = true;\n // }\n // Set warranty date for type D\n this.assemblyDate.push(\n jobcardItem.installedDate\n ? moment(jobcardItem.installedDate).toDate()\n : null\n );\n\n jobcardItem.isMaintenance =\n jobcardItem.type === jobcardItemTypeEnum.NextMaintenance ||\n jobcardItem.type === jobcardItemTypeEnum.ProposedMaintenance;\n if (jobcardItem.isMaintenance) {\n if (environment.isIveco && !jobcardItem.causalPartCode) {\n const params: GetPartsRequestParams = {\n noLoader: true,\n code: 'UNKNOWCSP',\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken,\n };\n this.partService.getParts(params).subscribe((parts: PartDto[]) => {\n if (parts?.length > 0) {\n jobcardItem.causalPartId = -1;\n jobcardItem.causalPartCode = parts[0].code;\n }\n });\n }\n if (!jobcardItem.failureDescription) {\n this.buildFailureDescriptionNV(jobcardItem);\n }\n }\n this.newAppointmentService.refreshPartsNV(jobcardItem);\n this.setPaymentTypes(jobcardItem);\n this.setEnableAutoWarrantyNV(jobcardItem);\n if (!environment.isIveco) {\n this.setWarrantyTypeNV(jobcardItem);\n }\n // If we enter the first time in the screen\n // Then calculate the paymentType and paymentSubType that are used\n // to display the correct value in the select box.\n // These objects are used to display all the linked values in the select box (*ngFor)\n\n if (environment.isIveco) {\n if (!jobcardItem.paymentType || !jobcardItem.paymentSubType) {\n this.defectCodeChangedNV(jobcardItem);\n this.supplierCodeChangedNV(jobcardItem);\n this.setEnableAutoWarrantyNV(jobcardItem);\n }\n }\n jobcardItem.causalParts = [];\n jobcardItem.causalPartCodes = [];\n this.otherCausalPart = [];\n if (jobcardItem.operations) {\n jobcardItem.operations.forEach((ope) => {\n if (ope.parts) {\n ope.parts.forEach((opePart) => {\n if (\n jobcardItem.causalParts\n .map((part) => part.id)\n .indexOf(opePart.part?.id) === -1\n ) {\n if(opePart.part){\n jobcardItem.causalParts.push(opePart.part);\n jobcardItem.causalPartCodes.push(opePart.part?.code);\n }\n }\n });\n }\n });\n }\n if (\n !jobcardItem.causalPartCodes.includes(jobcardItem.causalPartCode) &&\n jobcardItem.causalPartCode\n ) {\n this.otherCausalPart.push(jobcardItem.causalPartCode);\n const params: GetPartsRequestParams = {\n noLoader: true,\n code: jobcardItem.causalPartCode,\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken,\n };\n this.partService.getParts(params).subscribe((parts: PartDto[]) => {\n if (parts?.length > 0) {\n const availablepart = parts.filter(\n (part) => part.code === jobcardItem.causalPartCode\n )[0];\n this.otherCausalPart[index] =\n availablepart.code +\n (availablepart.description\n ? (availablepart.code ? ' - ' : '') +\n availablepart.description\n : '') +\n (availablepart.manufacturer\n ? ' - ' + availablepart.manufacturer\n : '');\n }\n });\n } else {\n this.otherCausalPart[index] = '';\n }\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n jobcardItem\n );\n this.newAppointmentService.setItemsWeightNV(this.jobcardItemsNV);\n jobcardItem.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(\n jobcardItem\n );\n jobcardItem.checklist =\n jobcardItem.checklistInstances?.length > 0\n ? { ...jobcardItem.checklistInstances[0] }\n : { id: null, checklistTemplateId: null };\n });\n this.newAppointmentService.arePartsAvailableNV(\n this.jobcardItemsNV,\n this.workshop\n );\n }\n\n changeStartDate(jobcardItem: JobcardItemDto, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(DateTimePickerModalComponent);\n modalRef.componentInstance.title = $localize`Change date`;\n modalRef.componentInstance.isDeliveryAndReceptionScreen = false;\n if (jobcardItem.startDate) {\n modalRef.componentInstance.date = jobcardItem.startDate;\n } else {\n modalRef.componentInstance.date = this.newAppointmentService.appointmentInCreation.receptionDate;\n }\n modalRef.componentInstance.minDate = this.newAppointmentService.appointmentInCreation.receptionDate;\n modalRef.componentInstance.maxDate = this.newAppointmentService.appointmentInCreation.deliveryDate;\n modalRef.result.then(\n (responsedata) => {\n jobcardItem.startDate = responsedata.changeDate;\n\n jobcardItem.jobcardItemSpells.forEach((spell) => {\n if (\n moment(spell.startDate).isBefore(\n moment(this.newAppointmentService.appointmentInCreation.receptionDate)\n )\n ) {\n spell.startDate = this.newAppointmentService.appointmentInCreation.receptionDate;\n spell.technicians.forEach((tech) => {\n if (\n moment(tech.startDate).isBefore(\n moment(this.newAppointmentService.appointmentInCreation.receptionDate)\n )\n ) {\n tech.startDate = this.newAppointmentService.appointmentInCreation.receptionDate;\n }\n });\n }\n });\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n // TODO(Marco) Change model\n hideActivityToCustomer(jobcardItem: JobcardItemDto, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Hiding activity`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to hide the activity \"[0]\" from the customer view?`,\n jobcardItem.name\n );\n confirmModal.action = $localize`Hide`;\n modalRef.result.then(\n () => {\n jobcardItem.visible = false;\n if (jobcardItem?.id) {\n const params: UpdateJobcardItemRequestParams = {\n id: jobcardItem.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: jobcardItem,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe( (ji: JobcardItemDto) => {\n this.updateJobCardItemSelected(ji,jobcardItem.id)\n }\n );\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n // TODO(Marco) Change model\n showActivityToCustomer(jobcardItem: JobcardItemDto, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Show activity`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to show the activity \"[0]\" in the customer view?`,\n jobcardItem.name\n );\n confirmModal.action = $localize`Show`;\n modalRef.result.then(\n () => {\n jobcardItem.visible = true;\n if (jobcardItem?.id) {\n const params: UpdateJobcardItemRequestParams = {\n id: jobcardItem.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: jobcardItem,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe((ji: JobcardItemDto) => {\n this.updateJobCardItemSelected(ji,jobcardItem.id)\n }\n );\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n searchDefectCode = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n map((term) =>\n term && term.length > 1\n ? this.defectsNV\n .map((o) => o.code + ' - ' + o.label)\n .filter(\n (v) =>\n v.toLowerCase().indexOf(term.toLocaleLowerCase()) > -1 ||\n v.replace(/\\s/g, '').indexOf(term.toLocaleLowerCase()) > -1\n )\n .splice(0, 150)\n : []\n )\n );\n searchsupplierCode = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n map((term) =>\n term && term.length > 1\n ? this.supplierCode\n .map((o) => o.code + ' - ' + o.description)\n .filter(\n (v) =>\n v.toLowerCase().indexOf(term.toLocaleLowerCase()) > -1 ||\n v.replace(/\\s/g, '').indexOf(term.toLocaleLowerCase()) > -1\n )\n .splice(0, 150)\n : []\n )\n );\n\n openExtraOperationModalNV(\n jobcardItem: JobcardItemCollapsableNew,\n extraOperation?: JobcardItemExtraOperationDto\n ) {\n let index: number;\n if (extraOperation) {\n index = jobcardItem.extraOperations?.indexOf(extraOperation);\n }\n const modalRef = this.modalService.open(EditWorkshopModalComponent);\n if (extraOperation) {\n modalRef.componentInstance.extraOperation = JSON.parse(\n JSON.stringify(extraOperation)\n );\n }\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.componentInstance.srtExtraOperations = this.srtExtraOperations;\n\n modalRef.result.then(\n (editedExtraOperation: JobcardItemExtraOperationDto) => {\n if (!jobcardItem.extraOperations) {\n jobcardItem.extraOperations = [];\n }\n if (editedExtraOperation) {\n if (index > -1) {\n jobcardItem.extraOperations.splice(index, 1, editedExtraOperation);\n } else {\n editedExtraOperation.id = null;\n jobcardItem.extraOperations.push(editedExtraOperation);\n }\n }\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n removeExtraOperationNV(\n jobcardItem: JobcardItemCollapsableNew,\n extraOperation: JobcardItemExtraOperationDto\n ) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Other workshop deletion`;\n confirmModal.message = $localize`Are you sure you want to delete this other workshop?`;\n confirmModal.action = $localize`Delete`;\n modalRef.result.then(\n () => {\n jobcardItem.extraOperations.splice(\n jobcardItem.extraOperations.indexOf(extraOperation),\n 1\n );\n jobcardItem.totalPrice = this.newAppointmentService.fullOperationPriceNV(\n jobcardItem\n );\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n getTitle(jobcardItem: JobcardItemDto, operation: JobcardItemOperationDto) {\n if (jobcardItem.type === jobcardItemTypeEnum.Pip) {\n return operation.code + ' - ' + $localize`Level` + ' ' + operation.label;\n } else {\n return operation.code\n ? operation.code +\n (operation.label ? ' - ' + operation.label : '') +\n (operation.manufacturer ? '-' + operation.manufacturer : '')\n : operation.label;\n }\n }\n\n getTitleExtraOperation(operation: JobcardItemExtraOperationDto) {\n switch (operation.type) {\n case ExtraOperationTypeEnum.ExtraCharges:\n return $localize`Extra Charges`;\n case ExtraOperationTypeEnum.Travel:\n return $localize`Travel`;\n case ExtraOperationTypeEnum.Freight:\n return $localize`Freight`;\n case ExtraOperationTypeEnum.Sublet: {\n if (environment.isIveco) {\n return $localize`Sublet`;\n } else {\n return $localize`External Work`;\n }\n }\n case ExtraOperationTypeEnum.Material:\n return $localize`Material`;\n }\n return null;\n }\n\n addKitNV(isBreakDownAppointment: boolean, activityStatus: string) {\n if (this.newKit) {\n const kit: KitDto = JSON.parse(JSON.stringify(this.newKit));\n const missingOpes: JobcardItemOperationDto[] = [];\n const items: JobcardItemCollapsableNew[] = [];\n kit.jobcardItems.forEach((jobcardItem: JobcardItemCollapsableNew) => {\n jobcardItem.tempJId = (\n Date.now().toString(36) + Math.random().toString(36).substr(2, 5)\n ).toUpperCase();\n const newJobcardItem: JobcardItemCollapsableNew = { ...jobcardItem };\n const newCheckList = newJobcardItem.checklistInstances\n ? newJobcardItem.checklistInstances[0]?.checklistTemplateId\n : null;\n newJobcardItem.checklist = {\n id: null,\n checklistTemplateId: newCheckList,\n };\n newJobcardItem.checklistInstances = [\n {\n id: null,\n checklistTemplateId: newCheckList,\n },\n ];\n\n newJobcardItem.jobcardItemSpells = [];\n newJobcardItem.jobcardItemSpells.push({\n weight: 1,\n estimatedDuration: 0,\n technicians: [],\n startDate: this.newAppointmentService?.appointmentInCreation?.receptionDate\n ? this.newAppointmentService?.appointmentInCreation?.receptionDate\n : new Date().toISOString(),\n });\n\n if (this.defaultBay?.id) {\n newJobcardItem.jobcardItemSpells[0].workshopBayId = this.defaultBay.id;\n this.assignTechnicianBayNV(newJobcardItem, this.defaultBay.id);\n }\n\n const operations: JobcardItemOperationDto[] = [];\n this.setStatusNV(newJobcardItem);\n newJobcardItem.deferred = false;\n newJobcardItem.visible = true;\n newJobcardItem.estimatedDuration = 0;\n newJobcardItem.id = null;\n newJobcardItem.checklist = {\n id: null,\n checklistTemplateId:\n newJobcardItem.checklistInstances[0].checklistTemplateId,\n };\n newJobcardItem.checklistInstances = [\n {\n id: null,\n checklistTemplateId:\n newJobcardItem.checklistInstances[0].checklistTemplateId,\n },\n ];\n if (!newJobcardItem?.operations) {\n newJobcardItem.operations = [];\n }\n const defaultOperation = this.srtOperationsNV.find(\n (x) => x?.isDefault === true\n );\n if (environment.isIveco && defaultOperation) {\n newJobcardItem.operations.push({\n code: defaultOperation?.code,\n manufacturer: defaultOperation?.manufacturer,\n label: defaultOperation?.label,\n durationTime: 0,\n officialTime: defaultOperation?.officialTime,\n isDefault: defaultOperation?.isDefault,\n parts: [],\n srt: false,\n weight: 1,\n });\n }\n if (newJobcardItem.operations) {\n newJobcardItem.operations.forEach((operation) => {\n if (environment.isIveco) {\n newJobcardItem.supplierCode = this.supplierCode[0].code;\n }\n operation.id = null;\n if (operation.parts) {\n operation.parts.forEach((p) => {\n p.id = null;\n });\n }\n\n if (operation.code && operation.srt) {\n const srtOperation = this.srtOperationsNV.find(\n (srtOpe) => srtOpe.code === operation.code\n );\n if (srtOperation) {\n const ope: JobcardItemOperationDto = { ...operation, ...srtOperation };\n if (!ope.durationTime) {\n ope.durationTime = srtOperation.officialTime*6;\n }\n ope.officialTime = srtOperation.officialTime*6;\n ope.id = null;\n operations.push(ope);\n } else {\n missingOpes.push(operation);\n }\n } else {\n operations.push(operation);\n }\n });\n newJobcardItem.operations = operations;\n }\n if (newJobcardItem.extraOperations) {\n newJobcardItem.extraOperations.forEach((extraOpe) => {\n extraOpe.id = null;\n });\n }\n\n newJobcardItem.jobcardItemStatus = [];\n this.addConfigurationNV(\n isBreakDownAppointment,\n newJobcardItem,\n activityStatus\n );\n newJobcardItem.jobcardItemStatus.push({\n status: JobcardItemStatusSEnum.Todo,\n time: moment(new Date()).toISOString(),\n });\n if (!newJobcardItem?.technicians) {\n newJobcardItem.technicians = [];\n }\n items.push(newJobcardItem);\n });\n\n if (missingOpes.length > 0) {\n this.toastrService.warning(\n $localize`Some operations have not been imported as they are not applicable to your vehicle.`\n );\n }\n this.jobcardItemsNV.push(...items);\n this.newAppointmentService.recalculateGlobalDurations();\n this.newAppointmentService.setItemsWeightNV(this.jobcardItemsNV);\n //126552 | Based this US commented below line. We can keep the kit also added becase once delete the added kit activity we are not have the kit info again to push to kits list\n /* this.kits.splice(\n this.kits.findIndex((k) => k.id === this.newKit.id),\n 1\n ); */\n this.newKit = null;\n }\n }\n\n kitDetails() {\n if (this.newKit) {\n const modalRef = this.modalService.open(KitDetailsModalComponent, {\n size: 'xl',\n });\n modalRef.componentInstance.kit = this.newKit;\n }\n }\n\n displayTravels(event: Event, jobcardItem: JobcardItemCollapsableNew): void {\n //event.stopPropagation();\n const modalRef = this.modalService.open(TravelModalComponent, {\n backdrop: 'static',\n size: 'lg',\n });\n modalRef.componentInstance.travels = jobcardItem.travels;\n const technicians: JobcardItemTechnicianDto[] = [];\n jobcardItem.technicians.forEach((technician) => {\n if (\n technicians\n .map((t) => t.workshopUserId)\n .indexOf(technician.workshopUserId) === -1\n ) {\n technicians.push(technician);\n }\n });\n modalRef.componentInstance.technicians = technicians;\n modalRef.result.then(\n (travels: JobcardTravel[]) => {\n jobcardItem.travels = travels;\n const params: UpdateJobcardItemRequestParams = {\n id: jobcardItem.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: jobcardItem,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe((j: JobcardItemPatchDto) => {\n this.reloadAppointment();\n this.replaceActivityNV(j);\n this.calculTotalDurationNV();\n this.updateCurrentItemStatusNV();\n });\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n updateCurrentItemStatusNV() {\n this.jobcardItemsNV.forEach((jobcardItem) => {\n jobcardItem.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(\n jobcardItem\n );\n });\n }\n\n addFileNV(event: Event, jobcardItem: JobcardItemCollapsableNew): void {\n event.stopPropagation();\n const modalRef = this.modalService.open(AttachmentsModalComponent, {\n backdrop: 'static',\n size: 'xl',\n });\n modalRef.componentInstance.jobcardAttachments =\n jobcardItem.jobcardItemAttachments;\n modalRef.componentInstance.readonly =\n jobcardItem.currentStatus?.status === this.statusEnum.Invoiced;\n modalRef.componentInstance.activity = true;\n modalRef.componentInstance.azureFolder = `appointments/${this.appointmentId}/jobcard`;\n modalRef.result.then(\n (jobcardItemAttachments: JobcardAttachmentDto[]) => {\n jobcardItem.jobcardItemAttachments = jobcardItemAttachments;\n const params: UpdateJobcardItemRequestParams = {\n id: jobcardItem.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: jobcardItem,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe((j: JobcardItemDto) => {\n this.replaceActivityNV(j);\n this.updateJobCardItemSelected(j,jobcardItem.id)\n this.calculTotalDurationNV();\n this.updateCurrentItemStatusNV();\n this.cdRef.markForCheck();\n });\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n changeSelectedPaymentTypeNV(jobcardItem: JobcardItemDto) {\n this.paymentTypes.forEach((paymentType) => {\n if (paymentType.id === jobcardItem.paymentTypeId) {\n jobcardItem.paymentType = paymentType;\n jobcardItem.paymentCode = paymentType.code;\n\n if (\n environment.isIveco &&\n (jobcardItem.type === jobcardItemTypeEnum.ProposedMaintenance ||\n jobcardItem.type === jobcardItemTypeEnum.NextMaintenance)\n ) {\n const subType = paymentType.paymentSubTypes.find(\n (s) => s?.type === 'M'\n );\n if (subType) {\n jobcardItem.paymentSubcode = subType?.code;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubTypeId = subType?.id;\n } else {\n jobcardItem.paymentSubTypeId = paymentType.paymentSubTypes[0]?.id;\n jobcardItem.paymentSubType = paymentType.paymentSubTypes[0];\n jobcardItem.paymentSubcode = paymentType.paymentSubTypes[0]?.code;\n }\n } else {\n jobcardItem.paymentSubTypeId = paymentType.paymentSubTypes[0]?.id;\n jobcardItem.paymentSubType = paymentType.paymentSubTypes[0];\n jobcardItem.paymentSubcode = paymentType.paymentSubTypes[0]?.code;\n }\n // hidden by task 372202\n // if (paymentType.type === PaymentType.TypeEnum.Retail) {\n // jobcardItem.isDiscountAvailable = true;\n // } else {\n // jobcardItem.isDiscountAvailable = false;\n // jobcardItem.discountTypeId = null;\n // }\n if (!environment.isIveco) {\n jobcardItem.warrantyCoverage =\n paymentType.type === PaymentTypeTypeEnum.Warranty;\n this.setWarrantyTypeNV(jobcardItem);\n } else if (paymentType.type === PaymentTypeTypeEnum.Warranty) {\n this.getWarrantyServicesForDefectNV(jobcardItem, true);\n jobcardItem.serviceParticipation = 100;\n } else {\n jobcardItem.warrantyContract = null;\n jobcardItem.contractNumber = null;\n this.removeClientVerbalAgreementStatusNV(jobcardItem);\n }\n if (\n environment.isIveco &&\n paymentType.type === PaymentTypeTypeEnum.Warranty\n ) {\n jobcardItem.authorizerName =\n jobcardItem.authorizerName ??\n this.newAppointmentService.getDefaultAuthorizerName(\n this.appointmentInCreation?.salesOrganizationId,\n this.workshop\n ) ??\n null;\n } else {\n jobcardItem.authorizerName = null;\n }\n if (!jobcardItem.paymentSubTypeId) {\n jobcardItem.warrantyContract = null;\n jobcardItem.contractNumber = null;\n }\n\n if (\n (!environment.isIveco || this.isCvFrance) &&\n jobcardItem.paymentSubType?.paymentSubSubTypes?.length > 0\n ) {\n const paymentSubtype2 = this.filterSubSubTypes(\n paymentType.paymentSubTypes[0].paymentSubSubTypes,\n 2\n );\n const paymentSubtype3 = this.filterSubSubTypes(\n paymentType.paymentSubTypes[0].paymentSubSubTypes,\n 3\n );\n if (paymentSubtype2.length > 0) {\n jobcardItem.paymentSubType2Id = paymentSubtype2[0]?.id;\n jobcardItem.paymentSubType2 = paymentSubtype2[0];\n jobcardItem.paymentSub2Code = paymentSubtype2[0]?.code;\n } else {\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n }\n if (paymentSubtype3.length > 0) {\n jobcardItem.paymentSubType3Id = paymentSubtype3[0]?.id;\n jobcardItem.paymentSubType3 = paymentSubtype3[0];\n jobcardItem.paymentSub3Code = paymentSubtype3[0]?.code;\n } else {\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n } else {\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n }\n this.setEnableAutoWarrantyNV(jobcardItem);\n });\n }\n\n changeSelectedPaymentSubTypeNV(jobcardItem: JobcardItemCollapsableNew) {\n this.paymentTypes.forEach((paymentType) => {\n paymentType.paymentSubTypes.forEach((subType) => {\n if (subType.id === jobcardItem.paymentSubTypeId) {\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n if (\n (!environment.isIveco || this.isCvFrance) &&\n subType.paymentSubSubTypes?.length > 0\n ) {\n const paymentSubtype2 = this.filterSubSubTypes(\n subType.paymentSubSubTypes,\n 2\n );\n const paymentSubtype3 = this.filterSubSubTypes(\n subType.paymentSubSubTypes,\n 3\n );\n if (paymentSubtype2.length > 0) {\n jobcardItem.paymentSubType2Id = paymentSubtype2[0]?.id;\n jobcardItem.paymentSubType2 = paymentSubtype2[0];\n jobcardItem.paymentSub2Code = paymentSubtype2[0]?.code;\n } else {\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n }\n if (paymentSubtype3) {\n jobcardItem.paymentSubType3Id = paymentSubtype3[0]?.id;\n jobcardItem.paymentSubType3 = paymentSubtype3[0];\n jobcardItem.paymentSub3Code = paymentSubtype3[0]?.code;\n } else {\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n } else {\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n }\n });\n });\n if (\n jobcardItem.paymentSubcode.toUpperCase() === 'D' ||\n jobcardItem.paymentSubcode.toUpperCase() === 'Q'\n ) {\n jobcardItem.groupReplaced =\n jobcardItem.groupReplaced ?? JobcardItemGroupReplacedEnum.N;\n }\n this.isDefectCoveredByPaymentTypesNV(jobcardItem);\n }\n\n changeSelectedPaymentSubSubType(jobcardItem: JobcardItemCollapsableNew, subLevel: number) {\n this.paymentTypes.forEach((paymentType) => {\n paymentType.paymentSubTypes.forEach((subType) => {\n this.filterSubSubTypes(subType.paymentSubSubTypes, subLevel).forEach(\n (subSubType) => {\n if (\n subLevel === 2 &&\n subSubType.id === jobcardItem.paymentSubType2Id\n ) {\n jobcardItem.paymentSubType2 = subSubType;\n jobcardItem.paymentSub2Code = subSubType.code;\n } else if (\n subLevel === 3 &&\n subSubType.id === jobcardItem.paymentSubType3Id\n ) {\n jobcardItem.paymentSubType3 = subSubType;\n jobcardItem.paymentSub3Code = subSubType.code;\n }\n }\n );\n });\n });\n }\n\n filterSubSubTypes(paymentSubSubTypes: PaymentSubSubType[], subLevel: number) {\n return paymentSubSubTypes.filter(\n (subSubType) => subSubType?.subLevel === subLevel\n );\n }\n\n inspectionChecklistChangedNV(jobcardItem: JobcardItemCollapsableNew, event: any, checklist?: ChecklistInstanceDto) {\n const currentChecklistSelected = this.checklistDetail?.find(\n (checkList) =>\n checkList?.id === event\n );\n const contentSelected = currentChecklistSelected?.content;\n if (jobcardItem.checklist?.checkListResult?.length > 0) {\n const modalRef = this.modalService.open(WarningModalComponent);\n modalRef.result.then(\n () => {\n jobcardItem.checklist.checkListResult = [];\n if (event) {\n if(checklist.id) {\n jobcardItem.checklistInstances = [\n {\n id: checklist.id,\n version: checklist.version,\n checklistTemplateId : currentChecklistSelected?.id,\n content: contentSelected,\n checklistTemplateTitle : currentChecklistSelected?.title,\n type : currentChecklistSelected?.type,\n checkListResult : [],\n },\n ];\n } else {\n jobcardItem.checklistInstances = [\n {\n id: null,\n checklistTemplateId : currentChecklistSelected?.id,\n content: contentSelected,\n checklistTemplateTitle : currentChecklistSelected?.title,\n type : currentChecklistSelected?.type,\n checkListResult : [],\n },\n ];\n }\n } else {\n jobcardItem.checklistInstances = [];\n jobcardItem.checklistIconVisible = false;\n }\n\n jobcardItem.checklist.checklistTemplateId = event;\n },\n () => {\n //Handle dismiss or close\n const previousId = JSON.parse(\n JSON.stringify(jobcardItem.checklist.checklistTemplateId)\n );\n jobcardItem.checklist.checklistTemplateId = null;\n setTimeout(() => {\n jobcardItem.checklist.checklistTemplateId = previousId;\n }, 5);\n }\n );\n } else if (event) {\n if(checklist.id) {\n jobcardItem.checklistInstances = [\n {\n id: checklist.id,\n version: checklist.version,\n checklistTemplateId : currentChecklistSelected?.id,\n content: contentSelected,\n checklistTemplateTitle : currentChecklistSelected?.title,\n type : currentChecklistSelected?.type,\n checkListResult : [],\n },\n ];\n } else {\n jobcardItem.checklistInstances = [\n {\n id: null,\n checklistTemplateId : currentChecklistSelected?.id,\n content: contentSelected,\n checklistTemplateTitle : currentChecklistSelected?.title,\n type : currentChecklistSelected?.type,\n checkListResult : [],\n },\n ];\n }\n } else {\n jobcardItem.checklistInstances = [];\n jobcardItem.checklistIconVisible = false;\n }\n }\n\n defectCodeChangedNV(jobcardItem: JobcardItemCollapsableNew) {\n if (jobcardItem.defectCode) {\n const found = this.defectsNV.filter((o) =>\n jobcardItem.defectCode.startsWith(o.code)\n )[0];\n if (found) {\n window.setTimeout(() => {\n const operation: JobcardItemOperationDto = JSON.parse(JSON.stringify(found));\n jobcardItem.defectCode = operation.code\n .replace(/\\s/g, '')\n .substr(0, 7);\n jobcardItem.defectDescription = operation.label;\n this.buildFailureDescriptionNV(jobcardItem);\n this.getWarrantyServicesForDefectNV(jobcardItem);\n }, 0);\n }\n this.setEnableAutoWarrantyNV(jobcardItem);\n }\n }\n\n supplierCodeChangedNV(jobcardItem: JobcardItemCollapsableNew) {\n if (jobcardItem.supplierCode) {\n const found = this.supplierCode.filter((o) =>\n jobcardItem.supplierCode.startsWith(o.code)\n )[0];\n if (found) {\n window.setTimeout(() => {\n const supplier: SrtSupplierCode = JSON.parse(JSON.stringify(found));\n jobcardItem.supplierCode = supplier.code;\n jobcardItem.supplierDescription = supplier.description;\n }, 0);\n }\n this.setEnableAutoWarrantyNV(jobcardItem);\n }\n }\n\n getWarrantyServicesForDefectNV(\n jobcardItem: JobcardItemDto,\n paymentTypeChanged: boolean = false\n ) {\n jobcardItem.warrantyCoverage = false;\n this.removeClientVerbalAgreementStatusNV(jobcardItem);\n jobcardItem.warrantyType = undefined;\n this.buildFailureDescriptionNV(jobcardItem);\n\n if (jobcardItem.defectCode && jobcardItem.failureCode) {\n const params: GetWarrantyServicesByOperationCodeRequestParams = {\n code: jobcardItem.defectCode.replace(/\\s/g, '').substring(0, 6),\n failure: jobcardItem.failureCode,\n authorization: this.userService.accessToken,\n noLoader: true,\n };\n this.warrantyService\n .getWarrantyServicesByOperationCode(params)\n .subscribe((operationWarranty) => {\n this.operationWarranty = operationWarranty;\n this.isDefectCoveredByWarrantyNV(jobcardItem, paymentTypeChanged);\n if (paymentTypeChanged) {\n this.isDefectCoveredByPaymentTypesNV(jobcardItem);\n }\n });\n }\n }\n\n isDefectCoveredByPaymentTypesNV(jobcardItem: JobcardItemCollapsableNew) {\n if (\n jobcardItem.defectCode &&\n jobcardItem.failureCode &&\n !this.isWorkfile &&\n !this.isSummary &&\n environment.isIveco\n ) {\n jobcardItem.warrantyCoverage = false;\n jobcardItem.warrantyContract = undefined;\n jobcardItem.contractNumber = undefined;\n jobcardItem.warrantyType = undefined;\n if (\n this.warrantyServices &&\n this.operationWarranty &&\n this.operationWarranty.warrantyTypes\n ) {\n for (let i = 0; i <= this.operationWarranty.warrantyTypes.length; i++) {\n const warranty = this.operationWarranty.warrantyTypes[i];\n const j = this.warrantyServices\n .map((elt) => elt.number)\n .indexOf(warranty);\n\n if (\n j >= 0 &&\n jobcardItem.paymentSubType.type ===\n this.warrantyServices[j].warrantyType\n ) {\n jobcardItem.warrantyCoverage = true;\n this.setEnableAutoWarrantyNV(jobcardItem);\n jobcardItem.warrantyContract = this.warrantyServices[j].number;\n jobcardItem.contractNumber = this.warrantyServices[j].contract;\n jobcardItem.warrantyType = this.warrantyServices[j].warrantyType;\n break;\n }\n }\n }\n }\n }\n\n isDefectCoveredByWarrantyNV(\n jobcardItem: JobcardItemCollapsableNew,\n paymentTypeChanged: boolean = false\n ) {\n if (\n jobcardItem.defectCode &&\n jobcardItem.failureCode &&\n !this.isWorkfile &&\n !this.isSummary &&\n environment.isIveco\n ) {\n if (this.warrantyServices && this.operationWarranty?.warrantyTypes) {\n if (this.isSelectedWarrantyTypeCoverActivityNV(jobcardItem)) {\n return;\n }\n // If no Contract are covering exactly the couple Defect / Failure Code,\n // So loop through all the active warranty Services\n for (const warrantyService of this.warrantyServices) {\n const warranty = warrantyService.number;\n const j = this.operationWarranty.warrantyTypes.indexOf(warranty);\n if (j >= 0) {\n if (\n this.setPaymentTypesForDefectCoverageNV(\n warrantyService,\n jobcardItem,\n paymentTypeChanged\n )\n ) {\n break;\n } else {\n jobcardItem.warrantyCoverage = false;\n this.removeClientVerbalAgreementStatusNV(jobcardItem);\n jobcardItem.warrantyContract = undefined;\n jobcardItem.contractNumber = undefined;\n jobcardItem.warrantyType = undefined;\n }\n }\n }\n }\n }\n }\n\n isSelectedWarrantyTypeCoverActivityNV(jobcardItem: JobcardItemCollapsableNew) {\n // Check if there is a Selected Warranty Type\n // That means one warranty is covering exactly the couple of data\n // Defect Code / Failure Code\n if (this.operationWarranty.selectedWarrantyType) {\n const index = this.warrantyServices\n .map((w) => w.number)\n .indexOf(this.operationWarranty.selectedWarrantyType);\n if (\n index > -1 &&\n this.setPaymentTypesForDefectCoverageNV(\n this.warrantyServices[index],\n jobcardItem\n )\n ) {\n return true;\n }\n }\n return false;\n }\n\n setPaymentTypes(jobcardItem: JobcardItemDto) {\n this.paymentTypes.forEach((payment) => {\n if (jobcardItem.paymentTypeId === payment.id) {\n payment.paymentSubTypes.forEach((subType) => {\n if (jobcardItem.paymentSubTypeId === subType.id) {\n jobcardItem.paymentCode = payment.code;\n jobcardItem.paymentType = payment;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n\n if (\n (!environment.isIveco || this.isCvFrance) &&\n subType.paymentSubSubTypes?.length > 0\n ) {\n const paymentSubtype2 = subType.paymentSubSubTypes.find(\n (subsubtype) => subsubtype.id === jobcardItem.paymentSubType2Id\n );\n const paymentSubtype3 = subType.paymentSubSubTypes.find(\n (subsubtype) => subsubtype.id === jobcardItem.paymentSubType3Id\n );\n if (paymentSubtype2) {\n jobcardItem.paymentSubType2 = paymentSubtype2;\n jobcardItem.paymentSub2Code = paymentSubtype2?.code;\n } else {\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n }\n if (paymentSubtype3) {\n jobcardItem.paymentSubType3 = paymentSubtype3;\n jobcardItem.paymentSub3Code = paymentSubtype3?.code;\n } else {\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n }\n }\n });\n }\n });\n }\n\n //TODO IAZ Entry point\n etimUpdateMaintenance(jobcardItem: JobcardItemDto) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n modalRef.componentInstance.title = $localize`Update maintenance on eTim`;\n modalRef.componentInstance.message = Util.stringFormat(\n $localize`Do you confirm that the maintenance activity [0] is completed? By selecting 'Yes' the maintenance plan for this machine will be updated in eTIM.`,\n jobcardItem?.name\n );\n modalRef.componentInstance.action = $localize`Yes`;\n modalRef.componentInstance.cancelAction = $localize`No`;\n modalRef.result.then(\n () => {\n const mpParams: SaveMaintenanceRequestParams = {\n appointmentId: this.appointmentId,\n requestBody: [jobcardItem.id],\n authorization: this.userService.accessToken,\n };\n this.maintenanceService.saveMaintenance(mpParams).subscribe(() => {\n const jobcardItem2: JobcardItemDto = {};\n jobcardItem2.ids = [];\n jobcardItem2.ids.push(jobcardItem.id);\n const params: SaveActivityValidateStatusRequestParams = {\n authorization: this.userAdminService.accessToken,\n jobcardItemDto: jobcardItem2,\n };\n this.jobcardItemControllerService.saveActivityValidateStatus(params)\n .subscribe(() => {\n // jobcardItem.activityValidated = true;\n let elemUpdate = this.jobcardItemsNV.find( jc => jc.id === jobcardItem.id);\n if(elemUpdate)\n {\n elemUpdate.activityValidated = true;\n elemUpdate.version++;\n this.jobcardItemsChange.emit(this.jobcardItemsNV);\n }\n });\n });\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {\n //\n }\n );\n }\n\n updateJobCardItemBasedOnMP(jobCardItem: JobcardItemDto) {\n this.appointmentInCreation?.jobcard?.jobcardItems.map((jc: JobcardItemDto) => {\n if (jc.id === jobCardItem.id) {\n jc.activityValidated = jobCardItem.activityValidated;\n }\n return jc;\n });\n }\n\n setPaymentTypesForDefectCoverageNV(\n warrantyService: WarrantyServices,\n jobcardItem: JobcardItemDto,\n paymentTypeChanged: boolean = false\n ): boolean {\n let isCovered = false;\n\n /*\n Check if the selected payment Type is a warranty payment Type and if you come from a modification of payment Type.\n - If yes so verify that a subtype under this payment type is covering the defect / failure.\n - If no, so search on other warranty payment types if something is covering the defect / failure.\n */\n\n if (\n paymentTypeChanged &&\n jobcardItem.paymentType &&\n jobcardItem.paymentType?.type === PaymentTypeTypeEnum.Warranty\n ) {\n const paymentType = this.paymentTypes.find(\n (pt) => pt.code === jobcardItem.paymentType.code\n );\n if (paymentType) {\n paymentType.paymentSubTypes.forEach((subType) => {\n if (subType.type === warrantyService.warrantyType) {\n jobcardItem.paymentSubTypeId = subType.id;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n jobcardItem.warrantyCoverage = true;\n this.setEnableAutoWarrantyNV(jobcardItem);\n jobcardItem.warrantyContract = warrantyService.number;\n jobcardItem.contractNumber = warrantyService.contract;\n jobcardItem.warrantyType = warrantyService.warrantyType;\n isCovered = true;\n }\n });\n }\n }\n if (!paymentTypeChanged) {\n this.paymentTypes.forEach((payment) => {\n payment.paymentSubTypes.forEach((subType) => {\n if (\n subType.type === warrantyService.warrantyType &&\n payment.type === PaymentTypeTypeEnum.Warranty\n ) {\n jobcardItem.paymentTypeId = payment.id;\n jobcardItem.paymentCode = payment.code;\n jobcardItem.paymentType = payment;\n jobcardItem.paymentSubTypeId = subType.id;\n jobcardItem.paymentSubType = subType;\n jobcardItem.paymentSubcode = subType.code;\n jobcardItem.warrantyCoverage = true;\n this.setEnableAutoWarrantyNV(jobcardItem);\n jobcardItem.warrantyContract = warrantyService.number;\n jobcardItem.contractNumber = warrantyService.contract;\n jobcardItem.warrantyType = warrantyService.warrantyType;\n isCovered = true;\n }\n });\n });\n }\n\n return isCovered;\n }\n\n displayCommentNV(event: Event, jobcardItem: JobcardItemCollapsableNew) {\n event.stopPropagation();\n const modalRef = this.modalService.open(UserCommentComponent, {\n backdrop: 'static',\n size: 's',\n });\n if (\n environment.isIveco &&\n this.workshop.countryId === 96 &&\n this.newAppointmentService.appointmentInCreation?.customerCompany?.creditStatus ===\n '3 Barzahler !'\n ) {\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.componentInstance.isEditAvailable = this.isEditAvailable;\n } else {\n modalRef.componentInstance.jobcardItem = jobcardItem;\n modalRef.componentInstance.isEditAvailable =\n this.isEditAvailable &&\n jobcardItem.currentStatus?.status !== this.statusEnum.Invoiced;\n }\n }\n\n buildFailureDescriptionNV(jobcardItem: JobcardItemCollapsableNew) {\n jobcardItem.failureDescription = '';\n if (jobcardItem.defectDescription) {\n jobcardItem.failureDescription = jobcardItem.defectDescription;\n }\n if (jobcardItem.failureCode) {\n const failure = this.failureCodes.find(\n (fail) => fail.failureCode === jobcardItem.failureCode\n );\n if (failure) {\n jobcardItem.failureDescription += ' - ' + failure.description;\n }\n }\n if (jobcardItem.failureSeverity) {\n switch (jobcardItem.failureSeverity) {\n case 1:\n jobcardItem.failureDescription += ' - ' + $localize`Light`;\n break;\n case 2:\n jobcardItem.failureDescription += ' - ' + $localize`Medium`;\n break;\n case 5:\n jobcardItem.failureDescription += ' - ' + $localize`Severe`;\n break;\n case 9:\n jobcardItem.failureDescription += ' - ' + $localize`Very severe`;\n break;\n }\n }\n }\n\n changeOperationSelectionNV(operation: JobcardItemOperationPartDto) {\n operation.selected = !operation.selected;\n this.newAppointmentService.recalculateGlobalDurations();\n }\n changeExtraOperationSelection(operation: JobcardItemExtraOperationDto) {\n operation.selected = !operation.selected;\n }\n\n causalPartChange(jobcardItem: JobcardItemDto) {\n jobcardItem.causalPartCode = null;\n }\n\n hasAttachmentsNotDeleted(jobcardItem: JobcardItemDto) {\n return (\n jobcardItem?.jobcardItemAttachments?.filter(\n (attachment) => !attachment.isDeleted\n )?.length > 0\n );\n }\n\n assignTechnicianBayNV(jobcardItem: JobcardItemDto, bayId: number) {\n const bay = this.workshopBays.find((b) => b.id === bayId);\n if (bay) {\n jobcardItem.jobcardItemSpells[0].workshopBayId = bay.id;\n const oldTech: JobcardItemTechnicianDto =\n jobcardItem?.jobcardItemSpells[0]?.technicians?.length > 0\n ? { ...jobcardItem?.jobcardItemSpells[0]?.technicians[0] }\n : null;\n if (bay?.leadTechnician) {\n jobcardItem.jobcardItemSpells[0].technicians = [];\n jobcardItem?.jobcardItemSpells[0]?.technicians?.push({\n workshopUserId: bay.leadTechnician,\n startDate:\n oldTech &&\n oldTech.workshopUserId === bay.leadTechnician &&\n oldTech.startDate\n ? oldTech.startDate\n : jobcardItem?.jobcardItemSpells[0]?.startDate,\n estimatedDuration: jobcardItem.estimatedDuration,\n });\n }\n } else {\n // For unassigned selection\n jobcardItem.jobcardItemSpells[0].technicians = [];\n jobcardItem.jobcardItemSpells[0].workshopBayId = null;\n }\n }\n\n openListModalNV(jobcardItem: JobcardItemDto) {\n const curentItemList: JobcardItemDto[] = [\n JSON.parse(JSON.stringify(jobcardItem)),\n ];\n const modalRef = this.modalService.open(ClockedTimeModalComponent, {\n size: 'xl',\n backdrop: 'static',\n });\n const clockModal = modalRef.componentInstance as ClockedTimeModalComponent;\n clockModal.jobcardItemsList = curentItemList;\n clockModal.workshopUsers = this.workshopUsers;\n clockModal.appointment = this.appointmentNV;\n modalRef.result.then(\n (item: JobcardItemDto[]) => {\n item.forEach((ji) => {\n ji.jobcardItemStatus?.forEach((status) => {\n this.itemStatus = status.status;\n if (\n this.itemStatus === 'inProgress' ||\n this.itemStatus === 'done'\n ) {\n this.isPresent = true;\n }\n });\n });\n if (\n this.isPresent &&\n this.appointmentNV?.id &&\n this.appointmentNV?.status?.status === 'received'\n ) {\n const updatedAppointmentStatus: AppointmentStatusDto = {} as AppointmentStatusDto;\n this.appointmentNV.status.status = 'reparing';\n updatedAppointmentStatus.status =\n AppointmentStatus?.StatusEnum?.Reparing;\n const paramsCreate: CreateAppointmentStatusRequestParams = {\n appointmentId: this.appointmentNV.id,\n appointmentStatusDto: updatedAppointmentStatus,\n applicationToken: this.userService.newToken,\n workshopId: this.userNV.workshopId,\n authorization: this.userService.accessToken,\n };\n this.apiAppointmentStatusService\n .createAppointmentStatus(paramsCreate)\n .subscribe((status) => {\n this.appointmentNV.status = status;\n });\n // this.apiAppointmentService\n // .updateAppointment({\n // id: this.appointmentInCreation.id,\n // appointment: this.appointmentInCreation,\n // })\n // .subscribe();\n this.saveAppointment(this.appointmentNV);\n }\n\n jobcardItem = item[0];\n const params: UpdateJobcardItemRequestParams = {\n id: jobcardItem.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: jobcardItem,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe((j: JobcardItemCollapsableNew) => {\n j.causalParts = [];\n if (j.operations) {\n j.operations.forEach((ope) => {\n if (ope.parts) {\n ope.parts.forEach((opePart) => {\n if (\n j.causalParts\n .map((part) => part.id)\n .indexOf(opePart.part?.id) === -1\n ) {\n j.causalParts.push(opePart.part);\n }\n });\n }\n });\n }\n if (j?.causalPartCode) {\n j.causalPartId = -1;\n }\n this.updateJobCardItemSelected(j,jobcardItem.id)\n\n // Send notification to Warranty managers in case of Done Warranty activity (NA only)\n this.sendWarrantyNotificationNV(this.appointmentInCreation, j);\n\n this.replaceActivityNV(j);\n this.setPaymentTypes(j);\n setTimeout(() => {\n this.calculTotalDurationNV();\n }, 300);\n this.setClockedTechniciansNV(j);\n\n this.jobcardItemsChange.emit(this.jobcardItemsNV);\n });\n },\n (items: JobcardItem[]) => {\n jobcardItem = JSON.parse(JSON.stringify(items[0]));\n this.updateCurrentItemStatusNV();\n setTimeout(() => {\n this.calculTotalDurationNV();\n }, 300);\n this.setClockedTechniciansNV(jobcardItem);\n }\n );\n }\n saveAppointment(appointmentCurrent: any): Observable{\n // this.apiAppointmentsService.updateAppointment({\n // id: this.appointmentNV.id,\n // applicationToken: this.userService.newToken,\n // authorization: this.userService.accessToken,\n // bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToBookingAppointmentDto(this.appointmentInCreation),\n // isComplete: true,\n // }).subscribe();\n return this.apiAppointmentsService.updateAppointment({\n id: appointmentCurrent.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToCustomerAppointmentDtoFromAppoinmentDto(appointmentCurrent),\n }).pipe(\n switchMap((appointment) => {\n appointmentCurrent.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n return this.apiAppointmentsService.updateAppointment({\n id: appointmentCurrent.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToBookingAppointmentDto(appointmentCurrent),\n isComplete: true,\n });\n }),\n switchMap((appointment2) => {\n appointmentCurrent.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n const params: GetAppointmentByIdRequestParams = {\n id: appointment2.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n return this.apiAppointmentsService.getAppointmentById(params);\n }),\n tap((appointment3) => {\n appointmentCurrent = appointment3;\n appointmentCurrent.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.appointmentNV = appointment3;\n this.updateAppointment.emit(this.appointmentNV);\n })\n );\n }\n\n reloadAppointment(){\n const params: GetAppointmentByIdRequestParams = {\n id: this.appointmentNV.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n return this.apiAppointmentsService.getAppointmentById(params).subscribe(\n app => {\n if(this.appointmentNV) {\n this.appointmentNV = app\n this.appointmentNV.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n } else {\n this.appointmentInCreation = this.mappingService.mapAppointmentDtoToAppointmentInCreation(app)\n this.appointmentInCreation.jobcard?.jobcardItems?.forEach(\n (ji: JobcardItemCollapsableNew) => {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(ji);\n }\n );\n this.updateAppointment.emit(this.appointmentNV);\n }\n\n }\n );\n }\n\n resetWarrantyInformation(jobcardItem: JobcardItemCollapsableNew) {\n jobcardItem.paymentTypeId = null;\n jobcardItem.paymentCode = null;\n jobcardItem.paymentType = null;\n jobcardItem.paymentSubTypeId = null;\n jobcardItem.paymentSubType = null;\n jobcardItem.paymentSubcode = null;\n jobcardItem.paymentSubType2Id = null;\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSub2Code = null;\n jobcardItem.paymentSubType3Id = null;\n jobcardItem.paymentSubType3 = null;\n jobcardItem.paymentSub3Code = null;\n }\n\n warrantyAssemblyDateChanged(i: number) {\n this.newAppointmentService.appointmentInCreation.jobcard?.jobcardItems.forEach(\n (item: any, index: any) => {\n if (i === index) {\n item.installedDate = moment(this.assemblyDate[i]).format(\n 'YYYY-MM-DD'\n );\n }\n }\n );\n }\n\n approveOrRejectActivityNV(\n event: Event,\n jobcardItem: JobcardItemDto,\n isCustomerAgreed: boolean = true\n ) {\n event.stopPropagation();\n jobcardItem.isCustomerAgreed = isCustomerAgreed;\n const newStatusType = isCustomerAgreed\n ? JobcardItemStatusSEnum.Todo\n : JobcardItemStatusSEnum.New;\n\n // Has the customer already updated the agreement before?\n const newStatus = jobcardItem.jobcardItemStatus.find(\n (status) => !status.id\n );\n if (newStatus) {\n newStatus.status = newStatusType;\n } else {\n jobcardItem.jobcardItemStatus.unshift({\n status: newStatusType,\n time: moment(new Date()).toISOString(),\n });\n }\n\n if (\n !this.jobcardItemsForSummary.find((item) => item.id === jobcardItem.id)\n ) {\n this.jobcardItemsForSummary.push(jobcardItem);\n }\n this.updateStatus.next('');\n this.update.emit();\n }\n\n updateJobcard() {\n this.jobcardItemsForSummary.forEach((jobcardItem) => {\n const params: UpdateJobcardItemRequestParams = {\n id: jobcardItem.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: jobcardItem,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe((ji: JobcardItemDto) => {\n this.updateJobCardItemSelected(ji,jobcardItem.id)\n }\n );\n });\n }\n\n updateAllowedTime(ji: JobcardItemDto, event: Event) {\n event.stopPropagation();\n if (\n environment.isIveco &&\n (ji.type === jobcardItemTypeEnum.NextMaintenance ||\n ji.type === jobcardItemTypeEnum.ProposedMaintenance ||\n ji.type === jobcardItemTypeEnum.Pip) &&\n !this.isWorkfile\n ) {\n const modalRef = this.modalService.open(ClockModalComponent, {\n size: 'md',\n });\n\n modalRef.componentInstance.jobcardItem = ji;\n modalRef.componentInstance.msg = $localize`Change Allowed Time`;\n modalRef.componentInstance.label = $localize`Allowed Time`;\n modalRef.componentInstance.allowedTime = ji.estimatedDuration;\n modalRef.result.then((allowedTime: number) => {\n ji.estimatedDuration = allowedTime;\n\n this.newAppointmentService.recalculateGlobalDurations(\n this.newAppointmentService?.appointmentInCreation?.jobcard,\n 'pipManualUpdate'\n );\n });\n }\n }\n\n // TODO(Marco) WORKFILE\n openStatusNV(ji: JobcardItemDto) {\n if (!this.isDisabled &&\n (this.appointmentNV.status.status === 'received' ||\n this.appointmentNV.status.status === 'reparing' ||\n this.appointmentNV.status.status === 'sentBackError') &&\n this.workshopUser.isManualJobStatusOverride === true &&\n ji.isCustomerAgreed === true\n ) {\n const modalRef = this.modalService.open(ChangeStatusModalComponent);\n modalRef.componentInstance.JobcardItem = JSON.parse(JSON.stringify(ji));\n\n modalRef.componentInstance.jobcardItemStatus = JSON.parse(\n JSON.stringify(ji.jobcardItemStatus[0])\n );\n modalRef.result.then(\n (jobcardItemStatus: JobcardItemStatusDto) => {\n ji.jobcardItemStatus[0] = jobcardItemStatus;\n const params: UpdateJobcardItemRequestParams = {\n id: ji.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: ji,\n };\n this.jobcardItemService\n .updateJobcardItem(params)\n .subscribe((jbc: JobcardItemDto) => {\n this.updateJobCardItemSelected(jbc,ji.id)\n\n if (\n this.appointmentNV?.id &&\n this.appointmentNV?.status?.status === 'received' &&\n ['inProgress', 'done'].includes(jobcardItemStatus.status)\n ) {\n const updatedAppointmentStatus: AppointmentStatusDto = {} as AppointmentStatusDto;\n this.appointmentNV.status.status = 'reparing';\n updatedAppointmentStatus.status =\n appointmentStatusEnum?.Reparing;\n // MANCANTE\n const paramsCreate: CreateAppointmentStatusRequestParams = {\n appointmentId: this.appointmentNV.id,\n appointmentStatusDto: updatedAppointmentStatus,\n applicationToken: this.userService.newToken,\n workshopId: this.userNV.workshopId,\n authorization: this.userService.accessToken,\n };\n this.apiAppointmentStatusService\n .createAppointmentStatus(paramsCreate)\n .subscribe((status) => {\n this.appointmentNV.status = status;\n });\n // this.apiAppointmentService\n // .updateAppointment({\n // id: this.appointmentInCreation.id,\n // appointment: this.appointmentInCreation,\n // })\n // .subscribe();\n this.saveAppointment(this.appointmentNV);\n }\n //Send warranty notification when status done\n this.sendWarrantyNotificationNV(this.appointmentNV, ji);\n });\n this.updateStatus.next('');\n },\n () => {\n /*cancel */\n }\n );\n }\n }\n updateView(event: boolean) {\n this.checklistView = event;\n //this.router.navigate(['/'])\n }\n\n openJobcardItemChecklistNV(jobcardItem: JobcardItemCollapsableNew) {\n this.jobcardItemOpenChecklist.emit(jobcardItem);\n }\n\n openChecklistNV(jobcardItem: JobcardItemCollapsableNew, appointment: AppointmentInCreation) {\n const modalRef = this.modalService.open(DisplayChecklistModalComponent);\n modalRef.componentInstance.appointment = appointment;\n\n modalRef.componentInstance.jobcardItemForChecklistView = jobcardItem;\n modalRef.componentInstance.checklistInstanceId =\n jobcardItem.checklistInstances[0].id;\n }\n\n onUpdateNegativeValueNV(value: any, index: number, field: string) {\n if (value && (isNaN(value) || value < 0)) {\n if (\n field === 'failedComponentSerialNumber' &&\n this.jobcardItemsNV[index].failedComponentSerialNumber\n ) {\n this.jobcardItemsNV[index].failedComponentSerialNumber = 0;\n }\n if (\n field === 'replacedComponentSerialNumber' &&\n this.jobcardItemsNV[index].replacedComponentSerialNumber\n ) {\n this.jobcardItemsNV[index].replacedComponentSerialNumber = 0;\n }\n if (\n field === 'serviceParticipation' &&\n this.jobcardItemsNV[index].serviceParticipation\n ) {\n this.jobcardItemsNV[index].serviceParticipation = 0;\n }\n }\n if (value > 100) {\n if (\n field === 'serviceParticipation' &&\n this.jobcardItemsNV[index].serviceParticipation\n ) {\n this.jobcardItemsNV[index].serviceParticipation = 100;\n }\n }\n }\n\n groupReplacedSwitchNV(jobcardItem: JobcardItemDto, switchRef: HTMLInputElement) {\n if (switchRef.checked) {\n jobcardItem.groupReplaced = JobcardItemGroupReplacedEnum.N;\n } else {\n jobcardItem.groupReplaced = JobcardItemGroupReplacedEnum.R;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n scrollToItem(event: any) {\n const elements = this.elRef.nativeElement.querySelectorAll('.active');\n if (elements?.length > 0) {\n elements[0].scrollIntoView();\n }\n }\n\n // hidden by task 372202\n // selectedtDiscount(jobcardItem: JobcardItem, selectedDiscount: number) {\n // if (jobcardItem.weight === 1 && this.jobcardItems.length > 1) {\n // const modalRef = this.modalService.open(ConfirmModalComponent);\n // const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n // confirmModal.title = $localize`Confirmation`;\n // confirmModal.message = $localize`Do you want to apply this discount to all activities?`;\n // confirmModal.action = $localize`Yes`;\n // confirmModal.cancelAction = $localize`No`;\n // modalRef.result.then((resp: boolean) => {\n // if (resp) {\n // this.copyDiscountToActivites(selectedDiscount);\n // }\n // });\n // }\n // }\n\n // copyDiscountToActivites(selectedDiscount: number) {\n // this.jobcardItems.forEach((jobcardItem) => {\n // if (\n // jobcardItem.paymentType?.type === PaymentType.TypeEnum.Retail ||\n // jobcardItem.isDiscountAvailable\n // ) {\n // jobcardItem.discountTypeId = selectedDiscount;\n // }\n // });\n // }\n\n /* checking the price on travel whether entered values are negative */\n checkPrice(i: number): void {\n if (this.travelArray[i].price && this.travelArray[i].price <= 0) {\n this.alert = $localize`The Amount must be positive.`;\n } else {\n this.alert = null;\n }\n this.travelPrice = this.travelArray[i].price;\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n }\n\n activatePaymentTypeforMaintance(jobCardItem: JobcardItemCollapsableNew) {\n jobCardItem.isPaymentTypeDisabled = false;\n }\n\n getVehicleTelematics() {\n const params: GetVehicleTelematicsRequestParams = {\n vin: this.newAppointmentService.appointmentInCreation?.vehicle?.vin,\n userId:\n this.newAppointmentService?.appointmentInCreation?.workshopUserId ?? this.userNV?.id,\n };\n\n if (params.vin) {\n this.smartViewService.getVehicleTelematics(params).subscribe(\n (res) => {\n this.machineConnected = res?.connected;\n },\n () => {\n /**/\n }\n );\n }\n }\n\n addTravel() {\n this.travelExist = false;\n if (this.newTravel) {\n const newJobcardTravelItem: JobcardTravel = {\n name: this.newTravel,\n deleted: false,\n };\n this.travelArray.forEach((travelArr) => {\n if (travelArr.name === this.newTravel && !travelArr.deleted) {\n this.travelExist = true;\n }\n });\n if (!this.travelExist) {\n if (this.travelArray && this.machineConnected) {\n newJobcardTravelItem.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n newJobcardTravelItem.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates;\n newJobcardTravelItem.travelTypeFrom = 'MANUALLY';\n newJobcardTravelItem.travelTypeTo = 'MACHINE';\n this.getMachineConnectedCoordinates(newJobcardTravelItem);\n } else {\n newJobcardTravelItem.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n newJobcardTravelItem.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n newJobcardTravelItem.travelTypeFrom = 'MANUALLY';\n newJobcardTravelItem.travelTypeTo = 'MANUALLY';\n }\n this.travelArray.push(newJobcardTravelItem);\n this.appointmentInCreation.jobcard.jobcardTravels = this.travelArray;\n this.newTravel = '';\n this.lastTravelIndex = this.travelArray.indexOf(newJobcardTravelItem);\n }\n } else {\n this.newTravel = '';\n }\n }\n\n getMachineConnectedCoordinates(jobcardTravelItem: JobcardTravel) {\n const params: GetGeoStoreDetailsRequestParams = {\n vin: this.newAppointmentService.appointmentInCreation?.vehicle?.vin,\n };\n if (params.vin) {\n this.smartViewService.getGeoStoreDetails(params).subscribe(\n (res) => {\n if (res) {\n if (\n jobcardTravelItem.travelFromShowCoordinates ===\n JobcardTravel.TravelFromShowCoordinatesEnum\n .TravelFromCoordinates &&\n jobcardTravelItem.travelTypeFrom === 'MACHINE'\n ) {\n jobcardTravelItem.travelFromLatitude = Number(res.pos.lat);\n jobcardTravelItem.travelFromLongitude = Number(res.pos.lon);\n if (this.lastImportedDate) {\n jobcardTravelItem.travelFromGpsImportedDate = res.pos.time;\n }\n }\n if (\n jobcardTravelItem.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates &&\n jobcardTravelItem.travelTypeTo === 'MACHINE'\n ) {\n jobcardTravelItem.travelToLatitude = Number(res.pos.lat);\n jobcardTravelItem.travelToLongitude = Number(res.pos.lon);\n if (this.lastImportedDate) {\n jobcardTravelItem.travelToGpsImportedDate = res.pos.time;\n }\n }\n // Updated the vehicle db\n if (this.newAppointmentService?.appointmentInCreation?.vehicle) {\n this.newAppointmentService.appointmentInCreation.vehicle.latestUpdatedGeoStoreTime =\n res.pos.time;\n this.newAppointmentService.appointmentInCreation.vehicle.latitude = Number(\n res.pos.lat\n );\n this.newAppointmentService.appointmentInCreation.vehicle.longitude = Number(\n res.pos.lon\n );\n }\n }\n },\n () => {\n /**/\n }\n );\n }\n }\n\n showCoordinates(jobcardTravel: JobcardTravel, field: string) {\n if (field === 'travelFromCoordinates') {\n jobcardTravel.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates;\n if (!this.machineConnected) {\n jobcardTravel.travelTypeFrom = 'MANUALLY';\n }\n } else if (field === 'travelFromAddress') {\n jobcardTravel.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n jobcardTravel.travelTypeFrom = 'MANUALLY';\n } else if (field === 'travelToCoordinates') {\n jobcardTravel.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates;\n if (!this.machineConnected) {\n jobcardTravel.travelTypeTo = 'MANUALLY';\n }\n } else if (field === 'travelToAddress') {\n jobcardTravel.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n jobcardTravel.travelTypeTo = 'MANUALLY';\n }\n }\n\n editTravel(jobcardTravelItem: JobcardTravel, event: Event) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Edit name`;\n modalRef.componentInstance.field = $localize`Name`;\n modalRef.componentInstance.value = jobcardTravelItem.name;\n modalRef.result.then(\n (newValue) => {\n jobcardTravelItem.name = newValue.value;\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n hideTravelData(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Hiding travel`;\n confirmModal.message =\n $localize`Are you sure you want to hide the travel ` +\n travelArrayData.name +\n ` from the customer view?`;\n confirmModal.action = $localize`Hide`;\n modalRef.result.then(\n () => {\n travelArrayData.travelVisible = true;\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n showTravelData(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Show travel`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to show the travel [0] in the customer view?`,\n travelArrayData.name\n );\n confirmModal.action = $localize`Show`;\n modalRef.result.then(\n () => {\n travelArrayData.travelVisible = false;\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n deleteTravelData(index: number, travelData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Delete travel`;\n confirmModal.message = Util.stringFormat(\n $localize`Are you sure you want to delete the travel [0] from the customer view?`,\n travelData.name\n );\n confirmModal.action = $localize`Delete`;\n modalRef.result.then(\n () => {\n travelData.deleted = true;\n if (!travelData.id) {\n this.appointmentInCreation.jobcard.jobcardTravels.splice(index, 1);\n }\n // refresh total price\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n editActualTravel(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Actual Travel distance and time `;\n modalRef.componentInstance.technicianLabel = $localize`Technician`;\n modalRef.componentInstance.country = this.workshop?.country;\n modalRef.componentInstance.distanceLabel = $localize`Distance (HH:MM)`;\n modalRef.componentInstance.durationLabel = $localize`Duration (HH:MM)`;\n modalRef.componentInstance.techniciansList = this.workshopUsers;\n modalRef.componentInstance.reasonLabel = $localize`Reason (Miles)`;\n modalRef.componentInstance.technician = travelArrayData?.workshopUserId;\n modalRef.componentInstance.reason = travelArrayData.reason;\n modalRef.componentInstance.reasonsList = this.reasonsList;\n modalRef.componentInstance.otherReason = travelArrayData.otherReason;\n modalRef.componentInstance.isTravel = true;\n\n modalRef.componentInstance.travelArrayData = JSON.parse(\n JSON.stringify(travelArrayData)\n );\n modalRef.result.then(\n (response) => {\n travelArrayData.distance = response?.distance;\n travelArrayData.duration = response?.duration;\n travelArrayData.workshopUserId = response?.technician;\n travelArrayData.reason = response?.reason;\n travelArrayData.otherReason = response?.otherReason;\n },\n () => {\n /**/\n }\n );\n }\n\n returnTravel(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Return Travel`;\n modalRef.componentInstance.field = $localize`Travel name`;\n modalRef.result.then(\n (response) => {\n this.travelExist = false;\n if (response) {\n const newJobcardTravelItem: JobcardTravel = {\n name: response.value,\n deleted: false,\n travelFromAddressLine1: travelArrayData.travelToAddressLine1,\n travelToAddressLine1: travelArrayData.travelFromAddressLine1,\n travelFromAddressLine2: travelArrayData.travelToAddressLine2,\n travelToAddressLine2: travelArrayData.travelFromAddressLine2,\n travelFromAddressLine3: travelArrayData.travelToAddressLine3,\n travelToAddressLine3: travelArrayData.travelFromAddressLine3,\n travelFromAddressLine4: travelArrayData.travelToAddressLine4,\n travelToAddressLine4: travelArrayData.travelFromAddressLine4,\n travelFromPostalCode: travelArrayData.travelToPostalCode,\n travelToPostalCode: travelArrayData.travelFromPostalCode,\n travelFromLatitude: travelArrayData.travelToLatitude,\n travelFromLongitude: travelArrayData.travelToLongitude,\n travelToLatitude: travelArrayData.travelFromLatitude,\n travelToLongitude: travelArrayData.travelFromLongitude,\n travelFromShowCoordinates:\n travelArrayData.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates\n ? JobcardTravel.TravelFromShowCoordinatesEnum\n .TravelFromCoordinates\n : JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress,\n travelToShowCoordinates:\n travelArrayData.travelFromShowCoordinates ===\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates\n ? JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates\n : JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress,\n };\n this.travelArray.forEach((travelArr) => {\n if (travelArr.name === response.value && !travelArr.deleted) {\n this.travelExist = true;\n }\n });\n if (!this.travelExist) {\n this.travelArray.push(newJobcardTravelItem);\n this.appointmentInCreation.jobcard.jobcardTravels = this.travelArray;\n this.lastTravelIndex = this.travelArray.indexOf(\n newJobcardTravelItem\n );\n }\n } else {\n response.value = '';\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n addNewTravel() {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`New Travel`;\n modalRef.componentInstance.field = $localize`Travel name`;\n modalRef.result.then(\n (response) => {\n this.travelExist = false;\n if (response) {\n const newJobcardTravelItem: JobcardTravel = {\n name: response.value,\n deleted: false,\n travelFromAddressLine1: this.travelFromAddressLine1,\n travelToAddressLine1: this.travelToAddressLine1,\n travelFromAddressLine2: this.travelToAddressLine2,\n travelToAddressLine2: this.travelToAddressLine2,\n travelFromAddressLine3: this.travelFromAddressLine3,\n travelToAddressLine3: this.travelToAddressLine3,\n travelFromAddressLine4: this.travelFromAddressLine4,\n travelToAddressLine4: this.travelToAddressLine4,\n travelFromPostalCode: this.travelFromPostalCode,\n travelToPostalCode: this.travelToPostalCode,\n travelFromLatitude: this.travelFromLatitude,\n travelFromLongitude: this.travelFromLongitude,\n travelToLatitude: this.travelToLatitude,\n travelToLongitude: this.travelToLongitude,\n travelTypeFrom: this.travelTypeFrom,\n };\n this.travelArray.forEach((travelArr) => {\n if (travelArr.name === response.value && !travelArr.deleted) {\n this.travelExist = true;\n }\n });\n if (!this.travelExist) {\n if (this.travelArray && this.machineConnected) {\n newJobcardTravelItem.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n newJobcardTravelItem.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates;\n newJobcardTravelItem.travelTypeFrom = 'MANUALLY';\n newJobcardTravelItem.travelTypeTo = 'MACHINE';\n this.getMachineConnectedCoordinates(newJobcardTravelItem);\n } else {\n newJobcardTravelItem.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n newJobcardTravelItem.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n newJobcardTravelItem.travelTypeFrom = 'MANUALLY';\n newJobcardTravelItem.travelTypeTo = 'MANUALLY';\n }\n this.travelArray.push(newJobcardTravelItem);\n this.appointmentInCreation.jobcard.jobcardTravels = this.travelArray;\n this.lastTravelIndex = this.travelArray.indexOf(\n newJobcardTravelItem\n );\n }\n } else {\n response.value = '';\n }\n },\n () => {\n /* Do nothing on closing */\n }\n );\n }\n\n openMapView(jobcardTravelItem: EstimateTravel) {\n this.googleService\n .getEstimatePositionBasedOnAddress(jobcardTravelItem)\n .then((result: any) => {\n this.loadingTravelToDisplay = false;\n if (result && result.estimateTravelPosition?.length) {\n jobcardTravelItem.estimateTravelPosition =\n result.estimateTravelPosition;\n this.cdRef.markForCheck();\n this.openMapViewModel(jobcardTravelItem, true);\n }\n this.cdRef.markForCheck();\n });\n }\n\n openMapViewModel(travel: EstimateTravel, isEstimateTravel = false) {\n const modalRef = this.modalService.open(TravelMapDisplayComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.travel = travel;\n modalRef.componentInstance.enableModel = true;\n modalRef.componentInstance.isEstimateTravel = isEstimateTravel;\n modalRef.result.then(\n () => {\n /* do nothing on close */\n },\n () => {\n // close or Cancel the model\n }\n );\n this.cdRef.markForCheck();\n }\n\n updateEditEstimateTravel(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Estimated Travel distance and time `;\n modalRef.componentInstance.country = this.workshop?.country;\n modalRef.componentInstance.estimatedDistance = $localize`Distance`;\n modalRef.componentInstance.estimatedDuration = $localize`Duration (HH:MM)`;\n modalRef.componentInstance.travelArrayData = JSON.parse(\n JSON.stringify(travelArrayData)\n );\n modalRef.result.then(\n (response) => {\n travelArrayData.estimatedDistance = response?.estimatedDistance;\n travelArrayData.estimatedDuration = response?.estimatedDuration;\n this.saveTravelDetails(travelArrayData);\n },\n () => {\n /* do nothing on close */\n }\n );\n }\n\n updateEditActualTravel(travelArrayData: JobcardTravel) {\n event.stopPropagation();\n const modalRef = this.modalService.open(EditFieldModalComponent);\n modalRef.componentInstance.title = $localize`Actual Travel distance and time `;\n modalRef.componentInstance.technicianLabel = $localize`Technician`;\n modalRef.componentInstance.country = this.workshop?.country;\n modalRef.componentInstance.distanceLabel = $localize`Distance (HH:MM)`;\n modalRef.componentInstance.durationLabel = $localize`Duration (HH:MM)`;\n modalRef.componentInstance.techniciansList = this.workshopUsers;\n modalRef.componentInstance.reasonLabel = $localize`Reason (Miles)`;\n modalRef.componentInstance.technician = travelArrayData?.workshopUserId;\n modalRef.componentInstance.reason = travelArrayData.reason;\n modalRef.componentInstance.reasonsList = this.reasonsList;\n modalRef.componentInstance.otherReason = travelArrayData.otherReason;\n modalRef.componentInstance.isTravel = true;\n\n modalRef.componentInstance.travelArrayData = JSON.parse(\n JSON.stringify(travelArrayData)\n );\n modalRef.result.then(\n (response) => {\n travelArrayData.distance = response?.distance;\n travelArrayData.duration = response?.duration;\n travelArrayData.workshopUserId = response?.technician;\n travelArrayData.reason = response?.reason;\n travelArrayData.otherReason = response?.otherReason;\n this.saveTravelDetails(travelArrayData);\n },\n () => {\n /* do nothing on close */\n }\n );\n }\n\n saveTravelDetails(travelArrayData: JobcardTravel) {\n //TODO(Matteo) ignorata RemoveYaml chiamata JcIveco false\n // const travelParams: AddJobcardTravelsRequestParams = {\n // id: this.appointmentInCreation.jobcard.id,\n // jobcardTravel: [travelArrayData],\n // };\n // POST CON TRAVEL\n //TODO(Matteo) ignorata RemoveYaml\n // this.jobcardService.addJobcardTravels(travelParams).subscribe();\n }\n\n checkNegativeValue(value: any, index: number, field: string) {\n if (value && (isNaN(value) || value < 0)) {\n if (\n field === 'distance' &&\n this.appointmentInCreation.jobcard.jobcardTravels[index].distance\n ) {\n this.appointmentInCreation.jobcard.jobcardTravels[index].distance = 0;\n }\n if (\n field === 'estimatedDistance' &&\n this.appointmentInCreation.jobcard.jobcardTravels[index].estimatedDistance\n ) {\n this.appointmentInCreation.jobcard.jobcardTravels[index].estimatedDistance = 0;\n }\n }\n this.cdRef.markForCheck();\n }\n\n /**\n * This function used to calculate the estimate distance and time based on address.\n *\n * @param travel jobcard travel object\n */\n\n calculateEstimate(travel: JobcardTravel) {\n this.isEstimateTravelLoader = JSON.parse(JSON.stringify(travel.name));\n this.addressFormat(travel).then((address: string[]) => {\n if (address?.length) {\n const unit =\n this.measurementUnit.toLowerCase() === 'km'\n ? google.maps.UnitSystem.METRIC\n : google.maps.UnitSystem.IMPERIAL;\n const request: google.maps.DistanceMatrixRequest = {\n origins:\n travel.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromAddress\n ? [address[0]]\n : [\n new google.maps.LatLng(\n Number(address[0][0]),\n Number(address[0][1])\n ),\n ],\n destinations:\n travel.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToAddress\n ? [address[1]]\n : [\n new google.maps.LatLng(\n Number(address[1][0]),\n Number(address[1][1])\n ),\n ],\n travelMode: google.maps.TravelMode.DRIVING,\n unitSystem: unit,\n avoidHighways: false,\n avoidTolls: false,\n };\n this.googleService\n .calculateDistanceMatrix(request)\n .subscribe((result: google.maps.DistanceMatrixResponse | null) => {\n this.isEstimateTravelLoader = null;\n if (result && result?.rows?.[0]?.elements?.length) {\n const element = result?.rows?.[0]?.elements[0];\n const distance = element.distance;\n const duration = element.duration;\n if (\n distance?.value &&\n duration?.value &&\n element.status === google.maps.DistanceMatrixElementStatus.OK\n ) {\n this.isEstimateTravelLoader =\n JSON.parse(JSON.stringify(travel.name)) + '_success';\n setTimeout(() => {\n this.isEstimateTravelLoader = null;\n }, 2000);\n let distanceValue;\n if (this.measurementUnit.toLowerCase() === 'km') {\n distanceValue = distance.value * 0.001;\n } else {\n distanceValue = distance.value * 0.0006213712;\n }\n\n if (distanceValue === Math.floor(distanceValue)) {\n travel.estimatedDistance = distanceValue;\n } else {\n travel.estimatedDistance = Number(distanceValue.toFixed(1));\n }\n // convert meter to miles 1 miles = 0.0006213712;\n // travel.estimatedDistance =\n // Number(distance.text.split(/[ ]+/)?.[0]?.replace(/,/g, '')) ??\n // null;\n // travel.estimatedDistance = Math.round(\n // distance.value * 0.0006213712\n // );\n //convert second to minutes\n travel.estimatedDuration = Math.round(duration.value / 60);\n } else {\n travel.estimatedDistance = null;\n //convert second to minutes\n travel.estimatedDuration = null;\n this.isEstimateTravelLoader =\n JSON.parse(JSON.stringify(travel.name)) + '_error_api';\n setTimeout(() => {\n this.isEstimateTravelLoader = null;\n }, 2000);\n }\n }\n });\n } else {\n this.isEstimateTravelLoader =\n JSON.parse(JSON.stringify(travel.name)) + '_error';\n setTimeout(() => {\n this.isEstimateTravelLoader = null;\n }, 2000);\n }\n });\n }\n\n addressFormat(travel: JobcardTravel) {\n return new Promise((resolve) => {\n let travelFrom;\n let travelTo;\n if (\n travel.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromAddress\n ) {\n travelFrom = [\n travel?.travelFromAddressLine1,\n travel?.travelFromAddressLine2,\n travel?.travelFromAddressLine3,\n travel?.travelFromAddressLine4,\n travel?.travelFromPostalCode,\n ]\n .filter(Boolean)\n .join(',');\n } else if (\n travel.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromCoordinates\n ) {\n travelFrom = [travel?.travelFromLatitude, travel?.travelFromLongitude];\n }\n if (\n travel.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToAddress\n ) {\n travelTo = [\n travel?.travelToAddressLine1,\n travel?.travelToAddressLine2,\n travel?.travelToAddressLine3,\n travel?.travelToAddressLine4,\n travel?.travelToPostalCode,\n ]\n .filter(Boolean)\n .join(',');\n } else if (\n travel.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToCoordinates\n ) {\n travelTo = [travel?.travelToLatitude, travel?.travelToLongitude];\n }\n\n if (\n (travel.travelToShowCoordinates !==\n this.travelToShowCoordinatesEnum.TravelToAddress &&\n travelTo?.length !== 2) ||\n (travel.travelFromShowCoordinates !==\n this.travelFromShowCoordinatesEnum.TravelFromAddress &&\n travelFrom?.length !== 2)\n ) {\n resolve(null);\n } else if (\n (travel.travelFromShowCoordinates ===\n this.travelFromShowCoordinatesEnum.TravelFromAddress &&\n typeof travelFrom === 'string' &&\n !travelFrom?.trim()?.length) ||\n (travel.travelToShowCoordinates ===\n this.travelToShowCoordinatesEnum.TravelToAddress &&\n typeof travelTo === 'string' &&\n !travelTo?.trim()?.length)\n ) {\n resolve(null);\n } else {\n resolve([travelFrom, travelTo]);\n }\n });\n }\n\n /* This function is used for getting the address */\n getAddress(i: number, travelFrom: boolean, travelTo: boolean) {\n this.zone.run(() => {\n let input;\n if (travelFrom) {\n input = document.getElementById(\n 'travelFromAddressLine1-' + i\n ) as HTMLInputElement;\n } else {\n input = document.getElementById(\n 'travelToAddressLine1-' + i\n ) as HTMLInputElement;\n }\n\n const options: google.maps.places.AutocompleteOptions = {\n fields: ['address_components', 'geometry', 'formatted_address', 'name'],\n types: ['establishment'],\n strictBounds: false,\n };\n if (this.countryAbbrev) {\n options.componentRestrictions = { country: this.countryAbbrev };\n }\n\n const autocomplete = new google.maps.places.Autocomplete(input, options);\n\n // When the user selects an address from the drop-down, populate the\n // address fields in the form.\n const self = this;\n autocomplete.addListener('place_changed', () => {\n // Get the place details from the autocomplete object.\n const place = autocomplete.getPlace();\n self.cdRef.detectChanges();\n if (!place.geometry || !place.geometry.location) {\n // User entered the name of a Place that was not suggested and\n // pressed the Enter key, or the Place Details request failed.\n this.toastrService.warning(\n $localize`No details available for address entered: ` + place.name\n );\n return;\n }\n if (travelFrom) {\n this.clear(i, true, false);\n } else {\n this.clear(i, false, true);\n }\n let streetnumber;\n let streetaddress;\n let neighborhood;\n let route;\n let locality;\n let administrativeLocality1;\n let administrativeLocality2;\n let subLocality1;\n let sublocality2;\n let country;\n let postalTown;\n const aName = place?.name ?? '';\n // Get each component of the address from the place details,\n // and then fill-in the corresponding field on the form.\n // place.address_components are google.maps.GeocoderAddressComponent objects\n // which are documented at http://goo.gle/3l5i5Mr\n for (const component of place.address_components as google.maps.GeocoderAddressComponent[]) {\n if (\n component?.types.includes('street_number') &&\n component?.long_name\n ) {\n streetnumber = component.long_name;\n }\n\n if (\n component?.types.includes('street_address') &&\n component?.long_name\n ) {\n streetaddress = component.long_name;\n }\n\n if (\n component?.types.includes('neighborhood') &&\n component?.long_name\n ) {\n neighborhood = component.long_name;\n }\n\n if (component?.types.includes('route') && component?.long_name) {\n route = component.long_name;\n }\n\n if (\n component?.types.includes('sublocality_level_2') &&\n component?.long_name\n ) {\n sublocality2 = component.long_name;\n }\n\n if (\n component?.types.includes('sublocality_level_1') &&\n component?.long_name\n ) {\n subLocality1 = component.long_name;\n }\n\n if (component?.types.includes('locality') && component?.long_name) {\n locality = component.long_name;\n }\n\n if (\n component?.types.includes('administrative_area_level_2') &&\n component?.long_name\n ) {\n administrativeLocality2 = component.long_name;\n }\n\n if (\n component?.types.includes('administrative_area_level_1') &&\n component?.long_name\n ) {\n administrativeLocality1 = component.long_name;\n }\n\n if (\n component?.types.includes('postal_town') &&\n component?.long_name\n ) {\n postalTown = component.long_name;\n }\n\n if (component?.types.includes('country') && component?.long_name) {\n country = component.long_name;\n }\n\n if (\n component?.types.includes('postal_code') &&\n component?.long_name\n ) {\n if (travelFrom) {\n this.travelArray[\n i\n ].travelFromPostalCode = `${component.long_name}`;\n }\n if (travelTo) {\n this.travelArray[i].travelToPostalCode = `${component.long_name}`;\n }\n }\n if (travelFrom) {\n this.travelArray[i].travelFromAddressLine1 = [\n aName,\n streetnumber,\n streetaddress,\n neighborhood,\n route,\n ]\n .filter(Boolean)\n .join(', ');\n this.travelArray[i].travelFromAddressLine2 = [\n subLocality1,\n sublocality2,\n postalTown,\n ]\n .filter(Boolean)\n .join(', ');\n this.travelArray[i].travelFromAddressLine4 =\n (country && country) || '';\n this.travelArray[i].travelFromAddressLine3 = [\n locality,\n administrativeLocality1,\n administrativeLocality2,\n ]\n .filter(Boolean)\n .join(', ');\n }\n if (travelTo) {\n this.travelArray[i].travelToAddressLine1 = [\n aName,\n streetnumber,\n streetaddress,\n neighborhood,\n route,\n ]\n .filter(Boolean)\n .join(', ');\n this.travelArray[i].travelToAddressLine2 = [\n subLocality1,\n sublocality2,\n postalTown,\n ]\n .filter(Boolean)\n .join(', ');\n this.travelArray[i].travelToAddressLine4 =\n (country && country) || '';\n this.travelArray[i].travelToAddressLine3 = [\n locality,\n administrativeLocality1,\n administrativeLocality2,\n ]\n .filter(Boolean)\n .join(', ');\n }\n }\n self.cdRef.detectChanges();\n });\n });\n }\n\n /* Clear the address when try to change address */\n clear(i: number, travelFrom: boolean, travelTo: boolean) {\n if (travelFrom === true) {\n this.travelArray[i].travelFromAddressLine1 = '';\n this.travelArray[i].travelFromAddressLine2 = '';\n this.travelArray[i].travelFromAddressLine3 = '';\n this.travelArray[i].travelFromAddressLine4 = '';\n this.travelArray[i].travelFromPostalCode = '';\n }\n if (travelTo === true) {\n this.travelArray[i].travelToAddressLine1 = '';\n this.travelArray[i].travelToAddressLine2 = '';\n this.travelArray[i].travelToAddressLine3 = '';\n this.travelArray[i].travelToAddressLine4 = '';\n this.travelArray[i].travelToPostalCode = '';\n }\n }\n\n comparePaymentType(c1: any, c2: any) {\n return c1.id === c2?.id;\n }\n comparePaymentSubType(c1: any, c2: any) {\n return c1.id === c2?.id;\n }\n\n compareItemCode(c1: any, c2: any) {\n return c1.id === c2?.id;\n }\n\n compareWarrantyType(c1: any, c2: any) {\n return c1?.warranty === c2?.warranty;\n }\n\n setDealershipAddress(\n travelArrayData: JobcardTravel,\n formAddressType: string\n ) {\n if (formAddressType === 'From') {\n if (travelArrayData.travelTypeFrom === 'MACHINE') {\n travelArrayData.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n }\n travelArrayData.travelFromAddressLine1 = this.workshop.name;\n travelArrayData.travelFromAddressLine2 = this.workshop.address;\n travelArrayData.travelFromAddressLine3 = this.workshop.city;\n travelArrayData.travelFromAddressLine4 = this.workshop.country;\n travelArrayData.travelTypeFrom = 'DEALERSHIP';\n } else {\n travelArrayData.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n travelArrayData.travelToAddressLine1 = this.workshop.name;\n travelArrayData.travelToAddressLine2 = this.workshop.address;\n travelArrayData.travelToAddressLine3 = this.workshop.city;\n travelArrayData.travelToAddressLine4 = this.workshop.country;\n travelArrayData.travelTypeTo = 'DEALERSHIP';\n }\n }\n\n setManualEntry(travelArrayData: JobcardTravel, formAddressType: string) {\n if (formAddressType === 'From') {\n if (travelArrayData.travelTypeFrom === 'MACHINE') {\n travelArrayData.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n }\n if (\n travelArrayData.travelFromShowCoordinates ===\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates\n ) {\n travelArrayData.travelFromLatitude = Number('');\n travelArrayData.travelFromLongitude = Number('');\n }\n travelArrayData.travelFromAddressLine1 = '';\n travelArrayData.travelFromAddressLine2 = '';\n travelArrayData.travelFromAddressLine3 = '';\n travelArrayData.travelFromAddressLine4 = '';\n travelArrayData.travelFromPostalCode = '';\n travelArrayData.travelTypeFrom = 'MANUALLY';\n } else {\n if (\n travelArrayData.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates &&\n travelArrayData.travelTypeTo === 'MACHINE'\n ) {\n travelArrayData.travelToLatitude = Number('');\n travelArrayData.travelToLongitude = Number('');\n travelArrayData.travelTypeTo = 'MANUALLY';\n }\n if (\n travelArrayData.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress\n ) {\n travelArrayData.travelToAddressLine1 = '';\n travelArrayData.travelToAddressLine2 = '';\n travelArrayData.travelToAddressLine3 = '';\n travelArrayData.travelToAddressLine4 = '';\n travelArrayData.travelToPostalCode = '';\n travelArrayData.travelTypeTo = 'MANUALLY';\n }\n }\n }\n\n setCustomerAddress(travelArrayData: JobcardTravel, formAddressType: string) {\n const customerCompany = this.newAppointmentService?.appointmentInCreation\n ?.customerCompany;\n if (formAddressType === 'From') {\n if (travelArrayData.travelTypeFrom === 'MACHINE') {\n travelArrayData.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromAddress;\n }\n travelArrayData.travelFromAddressLine1 = customerCompany.name;\n travelArrayData.travelFromAddressLine2 = customerCompany.address;\n travelArrayData.travelFromAddressLine3 = customerCompany.city;\n travelArrayData.travelFromAddressLine4 = customerCompany.country;\n travelArrayData.travelFromPostalCode = customerCompany.zipcode;\n travelArrayData.travelTypeFrom = 'CUSTOMER';\n } else {\n travelArrayData.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToAddress;\n travelArrayData.travelToAddressLine1 = customerCompany.name;\n travelArrayData.travelToAddressLine2 = customerCompany.address;\n travelArrayData.travelToAddressLine3 = customerCompany.city;\n travelArrayData.travelToAddressLine4 = customerCompany.country;\n travelArrayData.travelToPostalCode = customerCompany.zipcode;\n travelArrayData.travelTypeTo = 'CUSTOMER';\n }\n }\n\n setMachineLocation(travelArrayData: JobcardTravel, formAddressType: string) {\n if (formAddressType === 'From') {\n travelArrayData.travelFromShowCoordinates =\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates;\n travelArrayData.travelTypeFrom = 'MACHINE';\n this.getMachineConnectedCoordinates(travelArrayData);\n } else {\n travelArrayData.travelToShowCoordinates =\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates;\n travelArrayData.travelTypeTo = 'MACHINE';\n this.getMachineConnectedCoordinates(travelArrayData);\n }\n }\n\n refreshLatLng(\n jobcardTravel: JobcardTravel,\n refreshTravelFrom: boolean,\n refreshTravelTo: boolean\n ) {\n if (\n jobcardTravel.travelFromShowCoordinates ===\n JobcardTravel.TravelFromShowCoordinatesEnum.TravelFromCoordinates &&\n jobcardTravel.travelTypeFrom === 'MACHINE' &&\n refreshTravelFrom\n ) {\n jobcardTravel.travelFromManualRefreshDate = moment(\n new Date()\n ).toISOString();\n this.getMachineConnectedCoordinates(jobcardTravel);\n }\n if (\n jobcardTravel.travelToShowCoordinates ===\n JobcardTravel.TravelToShowCoordinatesEnum.TravelToCoordinates &&\n jobcardTravel.travelTypeTo === 'MACHINE' &&\n refreshTravelTo\n ) {\n jobcardTravel.travelToManualRefreshDate = moment(\n new Date()\n ).toISOString();\n this.lastImportedDate = true;\n this.getMachineConnectedCoordinates(jobcardTravel);\n }\n }\n\n jobcardCheklistCompare(c1: any, c2: any) {\n return c1 === c2;\n }\n\n openIULinks(jobcardItem: JobcardItemCollapsableNew) {\n const modalRef = this.modalService.open(IuLinksModalComponent, {\n size: 'lg',\n });\n modalRef.componentInstance.etimDocs = jobcardItem.jobcardItemIuDocuments;\n modalRef.componentInstance.workshop = this.workshop;\n }\n\n showPartsTooltip(tooltip: any, jobcardItem: any) {\n tooltip.open({ jobcardItem });\n }\n\n getCountryDetailsFromWorkshopCountry(workshop: WorkshopDto) {\n const country = this.countries.find((p) => p.id === workshop.countryId);\n this.countryAbbrev = country?.abbrev;\n }\n\n // Update travel payment types\n changeTravelPaymentType(travel: JobcardTravel) {\n travel.paymentSubType = travel.paymentType.paymentSubTypes?.[0] ?? null;\n if (\n travel?.paymentSubType &&\n !travel?.paymentSubType?.paymentSubSubTypes?.length\n ) {\n travel.paymentSubSubType2 = null;\n travel.paymentSubSubType3 = null;\n }\n this.newAppointmentService.computeTotalPrice(this.paymentTypes);\n }\n\n setWarrantyTypeNV(jobcardItem: JobcardItemDto) {\n let region: string;\n if (\n this.localeId === 'en-US' ||\n this.localeId === 'EN-GB' ||\n this.localeId === 'en-GB'\n ) {\n this.localeId = 'EN';\n }\n if (this.localeId === 'PT-BR' || this.localeId === 'pt-BR') {\n this.localeId = 'PT';\n }\n this.selectedLanguageId = this.localeId.toUpperCase();\n if (this.warrantyTypes.length === 0) {\n if (this.workshop.marketId === 2 || this.workshop.marketId === 1) {\n region = 'URP';\n } else {\n region = 'ERP';\n }\n //TODO(Matteo) ignorare RemoveYaml jciveco false\n // const warrantyParams: GetWarrantyTypesRequestParams = {\n // language: this.selectedLanguageId,\n // region,\n // };\n // this.warrantyTypeService\n // .getWarrantyTypes(warrantyParams)\n // .subscribe((types: any) => {\n // this.warrantyTypes = types?.sort((a: WarrantyTypeDto, b: WarrantyTypeDto) =>\n // a.warranty.localeCompare(b.warranty)\n // );\n // });\n }\n const ji: JobcardItemCollapsableNew = jobcardItem;\n ji.paymentWarrantyType = ji.paymentWarrantyType\n ? jobcardItem.paymentWarrantyType\n : null;\n }\n\n appendClassBasedOnInnerHTML(event: HTMLDivElement) {\n let response = '';\n if (event && event.getElementsByTagName('label')) {\n const ele = event.getElementsByTagName('label');\n for (let i = 0; i < ele.length; i++) {\n const text = ele[i].innerHTML;\n if (text.length > 70) {\n response = 'col-sm-12';\n } else if (text.length > 60 && response.length == 0) {\n response = 'col-sm-8';\n } else if (text.length > 40 && response.length == 0) {\n response = 'col-sm-6';\n }\n }\n }\n return response.length === 0 ? 'col-sm-4' : response;\n }\n\n private filterJobcardItems() {\n this.filteredJobcardItemsNew = this.jobcardItemsNV\n .filter((item) => item.deferred?.valueOf() === false)\n .filter((item) => item.deleted?.valueOf() === false);\n }\n private replaceActivityNV(jobcardItem: JobcardItemCollapsableNew) {\n if (!jobcardItem.paymentType) {\n const ptype = this.paymentTypes.find(\n (p) => p.id === jobcardItem.paymentTypeId\n );\n if (ptype) {\n jobcardItem.paymentType = ptype;\n const sptype =\n ptype.paymentSubTypes.find(\n (ps) => ps.id === jobcardItem.paymentSubTypeId\n ) ?? null;\n if (sptype) {\n jobcardItem.paymentSubType = sptype;\n if (!environment.isIveco || this.isCvFrance) {\n if (sptype.paymentSubSubTypes?.length > 0) {\n jobcardItem.paymentSubType2 =\n sptype.paymentSubSubTypes.find(\n (subsubtype) =>\n subsubtype.id === jobcardItem.paymentSubType2Id\n ) ?? null;\n jobcardItem.paymentSubType3 =\n sptype.paymentSubSubTypes.find(\n (subsubtype) =>\n subsubtype.id === jobcardItem.paymentSubType3Id\n ) ?? null;\n } else {\n jobcardItem.paymentSubType2 = null;\n jobcardItem.paymentSubType3 = null;\n }\n }\n }\n }\n }\n const ji: JobcardItemCollapsableNew = jobcardItem;\n ji.checklist =\n ji.checklistInstances?.length > 0\n ? { ...jobcardItem.checklistInstances[0] }\n : { id: null, checklistTemplateId: null };\n\n if (!ji?.currentStatus) {\n ji.currentStatus = this.newAppointmentService.getCurrentItemStatusNV(\n jobcardItem\n );\n }\n\n this.jobcardItemsNV.splice(\n this.jobcardItemsNV.findIndex((i) => i.id === jobcardItem.id),\n 1,\n jobcardItem\n );\n }\n\n private removeClientVerbalAgreementStatusNV(jobcardItem: JobcardItemDto) {\n const wtyNotRequired = jobcardItem?.jobcardItemCustomerStatus?.filter(\n (status) =>\n status.actionType === JobcardItemCustomerStatus.ActionTypeEnum.Wty &&\n status.actionPerformedBy &&\n status.actionDateTime &&\n status.action === JobcardItemCustomerStatus.ActionEnum.AutoApv\n );\n if (\n environment.isIveco &&\n jobcardItem?.jobcardItemCustomerStatus?.length > 0 &&\n wtyNotRequired.length > 0 &&\n jobcardItem.isCustomerAgreed\n ) {\n jobcardItem.isCustomerAgreed = false;\n jobcardItem.jobcardItemCustomerStatus.push({\n action: JobcardItemCustomerStatus.ActionEnum.AutoDec,\n actionDateTime: new Date().toISOString(),\n actionType: JobcardItemCustomerStatus.ActionTypeEnum.Wty,\n actionPerformedBy: this.userNV?.displayedName,\n });\n }\n }\n\n private calculTotalDurationNV() {\n this.jobcardItemsNV?.forEach((jobcardItem) => {\n jobcardItem.totalDuration = 0;\n jobcardItem.techniciansDuration = [];\n jobcardItem.technicians?.forEach(() => {\n jobcardItem.techniciansDuration.push(0);\n });\n jobcardItem.jobcardItemStatus\n ?.filter(\n (jis) =>\n jis.status !== JobcardItemStatusSEnum.New &&\n jis.status !== JobcardItemStatusSEnum.Todo\n )\n ?.filter((jis) => !jis.deleted)\n ?.forEach((jci) => {\n if (jci?.duration && jci?.workshopUserId) {\n jobcardItem.totalDuration += jci.duration;\n if (environment.isIveco) {\n jobcardItem?.clockedTechnicians?.forEach((technician, index) => {\n if (technician.workshopUserId === jci.workshopUserId) {\n jobcardItem.techniciansDuration[index] += jci.duration;\n }\n if (jobcardItem.techniciansDuration[index] <= 59) {\n jobcardItem.techniciansDuration[index] = 0;\n }\n });\n } else {\n jobcardItem.technicians.forEach((technician, index) => {\n if (technician.workshopUserId === jci.workshopUserId) {\n jobcardItem.techniciansDuration[index] += jci.duration;\n }\n });\n }\n }\n });\n });\n }\n\n private getTechLeadNV(appointment: AppointmentInCreation): string {\n let workshopUserId: string;\n if (appointment?.jobcard?.jobcardItems) {\n const technicianFrequencies: Map = new Map();\n appointment?.jobcard.jobcardItems.forEach((item: any) =>\n item.technicians?.forEach((tech: any) =>\n technicianFrequencies.set(\n tech.workshopUserId,\n (technicianFrequencies.get(tech.workshopUserId) || 0) + 1\n )\n )\n );\n if (technicianFrequencies.size > 0) {\n let highestFrequency = 0;\n technicianFrequencies.forEach((value, key) => {\n if (value > highestFrequency) {\n workshopUserId = key;\n highestFrequency = value;\n }\n });\n }\n }\n return workshopUserId;\n }\n\n private setEnableAutoWarrantyNV(jobcardItem: JobcardItemDto) {\n if (\n jobcardItem.warrantyCoverage &&\n environment.isIveco &&\n !jobcardItem.isCustomerAgreed &&\n jobcardItem.paymentType.type === this.paymentTypesEnum.Warranty\n ) {\n jobcardItem.isCustomerAgreed = true;\n if (!jobcardItem?.jobcardItemCustomerStatus) {\n jobcardItem.jobcardItemCustomerStatus = [];\n }\n jobcardItem.jobcardItemCustomerStatus.push({\n action: JobcardItemCustomerStatus.ActionEnum.AutoApv,\n actionDateTime: new Date().toISOString(),\n actionType: JobcardItemCustomerStatus.ActionTypeEnum.Wty,\n actionPerformedBy: this.userNV?.displayedName,\n });\n }\n }\n\n private setClockedTechniciansNV(jobcardItem: JobcardItemCollapsableNew) {\n jobcardItem.clockedTechnicians = [];\n\n jobcardItem.technicians?.forEach((tech, index) => {\n if (\n jobcardItem.clockedTechnicians\n .map((t) => t.workshopUserId)\n .indexOf(tech.workshopUserId) < 0\n ) {\n if (\n environment.isIveco &&\n jobcardItem?.jobcardItemStatus?.find(\n (jcStatus: JobcardItemStatusDto) =>\n jcStatus?.workshopUserId === tech.workshopUserId\n )\n ) {\n jobcardItem.clockedTechnicians.push(tech);\n } else if (!environment.isIveco) {\n jobcardItem.clockedTechnicians.push(tech);\n }\n } else {\n jobcardItem.techniciansDuration.splice(index, 1);\n }\n });\n }\n\n private sendWarrantyNotificationNV(\n appointment: AppointmentDto,\n jobCard: JobcardItemDto\n ) {\n if (\n this.workshop.marketId === 1 &&\n jobCard?.jobcardItemStatus?.[0].status ===\n JobcardItemStatusSEnum.Done &&\n !jobCard?.jobcardItemStatus?.[0].deleted &&\n this.paymentTypes.find(\n (ptype: PaymentTypeDto) =>\n ptype?.id === jobCard?.paymentTypeId &&\n ptype?.isVisible &&\n ptype.type === PaymentTypeTypeEnum.Warranty\n )\n ) {\n this.notificationService.createNotification({\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken,\n notificationDto:{\n type: 'WARRANTY_ACTIVITIES_DONE',\n appointment: appointment.id,\n doneActivities: jobCard.id.toString(),\n },\n noLoader: true,\n })\n .subscribe();\n }\n }\n\n private editApptMent() {\n this.newAppointmentService.retainLatestStatus();\n this.apiAppointmentsService.updateAppointment({\n id: this.appointment.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n bookingAppointmentDtoCustomerAppointmentDto: this.mappingService.mapAppointmentDtoToBookingAppointmentDto(this.appointmentInCreation),\n isComplete: true,\n }).subscribe(\n () => {\n this.toastrService.success($localize`Appointment edited`);\n // Send the notification in case of activities approved by the Service Advisor\n if (\n this.appointmentInCreation?.id &&\n this.newAppointmentService.newApprovedActivities.length > 0\n ) {\n this.notificationService.createNotification({\n workshopId: this.userNV.workshopId,\n authorization: this.userAdminService.accessToken,\n notificationDto:{\n type: 'ACTIVITY_APPROVED',\n appointment: this.newAppointmentService.appointmentInCreation.id,\n },\n noLoader: true,\n })\n .subscribe(() => {\n this.newAppointmentService.newApprovedActivities = [];\n });\n }\n },\n (error: HttpErrorResponse) => {\n const apiError: ApiError = error.error;\n this.toastrService.error(apiError.message);\n }\n );\n }\n\n private fetchPartsAvailabilityNV() {\n this.newAppointment = this.appointmentInCreation;\n this.newAppointment.hasMissingParts = [];\n this.newAppointment?.jobcard?.jobcardItems?.map(\n (ji: JobcardItemCollapsableNew, index: any) => {\n ji.hasMissingParts = [];\n ji.operations?.forEach((op) => {\n const missingParts: string[] = [];\n op.parts?.forEach((part: DinamicJobcardItemOperationPartDto) => {\n // Check if parts are available at home location\n let totalParts = 0;\n part.jobcardItemOperationPartLocationList?.forEach(\n (location: JobcardItemOperationPartLocationDto) => {\n totalParts = totalParts + location.quantityInStock;\n }\n );\n part.isAvailableAtHomeLocation =\n totalParts < part.quantity ? false : true;\n if (\n !part?.jobcardItemOperationPartLocationList ||\n part?.jobcardItemOperationPartLocationList?.length === 0\n ) {\n part.isAvailableAtHomeLocation = false;\n }\n if (!part.isAvailableAtHomeLocation) {\n const partVal =\n part.part.code +\n (part.part.description\n ? (part.part.code ? ' - ' : '') + part.part.description\n : '') +\n (part.part.manufacturer ? ' - ' + part.part.manufacturer : '');\n\n if (ji.hasMissingParts?.length) {\n ji.hasMissingParts[0].missingParts.push(partVal);\n } else {\n missingParts.push(partVal);\n\n ji.hasMissingParts.push({\n activityId: ji.id,\n activityName: ji.name,\n opePartCode: part.part.code,\n missingParts,\n });\n }\n }\n });\n });\n }\n );\n }\n}\n","
    \n \n
    \n \n \n \n \n \n \n \n \n \n Start Date\n \n
    \n {{ jobcardItem.startDate | date: 'short' }}\n
    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n Client Verbal Agreement\n \n \n Customer Verbal Agreement\n \n \n \n \n \n \n \n \n \n \n
    \n {{ jobcardItem.code }}\n \n \n \n {{ activityName }}\n \n \n \n \n - {{ jobcardItem.description }}\n \n \n - ({{ jobcardItem.additionalDescription }})\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n Warranty\n On time\n On time\n Heavy overdue\n Heavy overdue\n \n \n \n \n \n Overdue\n \n Overdue\n \n Anticipated\n\n Coming Soon\n Contract/EW\n \n \n Covered by Warranty\n Not Covered by Warranty\n Not Covered by Warranty\n Covered by Contract/EW\n \n \n \n \n \n {{ jobcardItem.officialTime | minutes }}\n \n \n \n \n \n {{ jobcardItem.estimatedDuration | minutes }}\n \n 0 &&\n !isSummary\n \"\n ngbTooltip=\"Clocked Time\"\n i18n-ngbTooltip\n class=\"mr-1 mb-2 d-inline-flex align-self-center\"\n >\n \n \n \n {{ jobcardItem.totalDuration | seconds }}\n \n \n \n \n \n {{ jobcardItem.estimatedDuration | minutes }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0 &&\n !environment?.isIveco) ||\n (!isSummary && environment.isIveco)\n \"\n ngbTooltip=\"Checklist\"\n i18n-ngbTooltip\n >\n \n \n \n \n 0\n \"\n class=\"dot\"\n >\n \n\n \n \n \n \n 0) ||\n (jobcardItem?.cause !== undefined &&\n jobcardItem?.cause.length > 0) ||\n (jobcardItem?.correction !== undefined &&\n jobcardItem?.correction.length > 0) ||\n (jobcardItem?.internalNotes !== undefined &&\n jobcardItem?.internalNotes.length > 0)\n \"\n class=\"dot\"\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n 0\n \"\n ii18n\n >View Checklist/Inspection\n \n \n \n 0 &&\n !environment.isIveco) ||\n (environment.isIveco && jobcardItem.checklistInstances)\n \"\n [ngClass]=\"\n jobcardItem.isCustomerAgreed\n ? 'btn-success'\n : 'btn-outline-success'\n \"\n (click)=\"\n openChecklistNV(\n jobcardItem,\n this.newAppointmentService.appointmentInCreation\n )\n \"\n ngbTooltip=\"Checklist\"\n i18n-ngbTooltip\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n Loading...\n
    \n
    \n
    \n \n \n
    \n No operation has been found for this PIP.\n
    \n \n \n
    \n
    \n \n
    Total amount:
    \n
    \n {{ jobcardItem.totalPrice | currency: currencyCode }}\n
    \n
    \n
    \n \n
    \n
    \n Workshop Bay/Team\n
    \n
    \n \n \n \n {{ bay.name }}\n \n \n
    \n
    \n
    \n
    \n\n
    \n \n \n \n \n Technician\n \n \n \n \n \n \n Clocked Time\n \n \n \n \n \n 0\">\n \n {{\n technician.workshopUserId | workshopUserName | async\n }}\n \n \n \n \n \n {{\n jobcardItem?.techniciansDuration[index] | seconds\n }}\n {{\n jobcardItem?.techniciansDuration[index] / 60\n | minutes\n }}\n \n \n \n \n \n
    \n
    \n
    \n \n
    \n
    Payment Type
    \n \n {{ jobcardItem.paymentType?.name }}\n \n \n -\n \n
    \n
    \n \n
    \n
    Payment Subtype
    \n \n {{ jobcardItem.paymentSubcode }}\n \n \n -\n \n
    \n
    \n \n
    \n
    \n Payment Subtype Description\n
    \n \n {{ jobcardItem.paymentSubType.description }}\n \n \n -\n \n
    \n \n \n \n \n
    \n
    Payment Subtype 2
    \n
    \n {{ jobcardItem.paymentSubType2.code }} -\n {{ jobcardItem.paymentSubType2.description }}\n
    \n
    \n \n \n
    \n
    Payment Subtype 3
    \n
    \n {{ jobcardItem.paymentSubType3.code }} -\n {{ jobcardItem.paymentSubType3.description }}\n
    \n
    \n \n \n \n \n \n
    \n
    Installed Date
    \n \n {{ jobcardItem.installedDate | date: 'shortDate' }}\n \n \n -\n \n
    \n \n \n
    \n
    \n Amount of Use on Failed Part\n
    \n \n {{ jobcardItem.amountUseOnSpareParts }}\n \n \n -\n \n
    \n \n \n
    \n
    \n Failed Part Invoice Number\n
    \n \n {{ jobcardItem.sparePartInvoiceNumber }}\n \n \n -\n \n
    \n \n \n\n \n \n
    \n
    \n Failed Component Serial Number\n
    \n \n {{ jobcardItem.failedComponentSerialNumber }}\n \n \n -\n \n
    \n \n \n
    \n
    \n Replacement Component Serial Number\n
    \n \n {{ jobcardItem.replacedComponentSerialNumber }}\n \n \n -\n \n
    \n \n \n
    \n
    Pre Authorization Code
    \n \n {{ jobcardItem.preAuthorizationCode }}\n \n \n -\n \n
    \n \n \n
    \n
    Claim Number
    \n \n {{ jobcardItem.warrantyClaimData.claimNumber }}\n \n \n -\n \n
    \n \n\n \n
    \n
    Claim Status
    \n \n {{ jobcardItem.warrantyClaimData.claimStatus }}\n \n \n -\n \n
    \n \n \n \n \n
    \n
    Claim Status
    \n \n {{ jobcardItem.warrantyClaimData.claimStatus }}\n \n \n -\n \n
    \n \n \n
    \n \n \n \n
    \n
    Claim Date
    \n \n {{\n jobcardItem.warrantyClaimData.claimDate\n | date: 'shortDate'\n }}\n \n \n -\n \n
    \n
    \n
    Claim Number
    \n \n {{ jobcardItem.warrantyClaimData.claimNumber }}\n \n \n -\n \n
    \n
    \n
    Invoice Number
    \n \n {{ jobcardItem.warrantyClaimData.invoiceNumber }}\n \n \n -\n \n
    \n \n \n
    \n \n \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n
    \n \n
    \n \n \n {{ jobcardItem.defectDescription }}\n
    \n
    \n
    \n
    \n \n \n \n \n \n {{ sapFailure.failureCode }} -\n {{ sapFailure.description }}\n \n \n \n \n
    \n
    \n
    \n \n\n
    \n
    \n \n \n Enable the option to change the Payment Type\n \n \n Update Payment Type\n \n \n \n {{ paymentType?.name }}\n \n \n
    \n
    \n \n \n \n \n {{\n paymentSubType.description\n }}\n \n \n {{ paymentSubType.type }} -\n {{ paymentSubType.description }}\n \n \n {{\n paymentSubType.description\n }}\n {{ paymentSubType.type }} -\n {{ paymentSubType.description }}\n \n \n \n {{ paymentSubType.description }}\n {{ paymentSubType.type }} -\n {{ paymentSubType.description }}\n \n \n \n \n
    \n \n
    \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n {{ paymentSubType2.code }} -\n {{ paymentSubType2.description }}\n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n {{ paymentSubType3.code }} -\n {{ paymentSubType3.description }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Over Rolled Revised Element\n \n \n\n New Element\n \n \n\n
    \n \n \n \n \n \n \n \n {{ template.title }}\n \n \n \n \n
    \n \n \n \n \n \n\n
    \n \n \n 0\"\n >\n Consumables:\n \n {{ opConsumable.consumable.code }}: ({{\n opConsumable.quantity\n }})\n \n -\n \n
    \n \n 0\"\n >\n Parts:\n
    \n
    \n \n \n \n {{ opPart.part.code }}\n \n \n {{\n opPart.part.isKit && operation.isKitComplete\n ? ' - Kit '\n : ' - ' + opPart.part.description\n }}\n \n \n : ({{ opPart.quantity }})\n \n \n \n \n \n \n {{ opPart.part.code }}\n \n \n - {{ opPart.part.description }}\n \n \n : ({{ opPart.quantity }})\n \n \n \n \n \n \n No consumable or part specified.\n \n
    \n
    \n
    Official time:
    \n
    \n \n \n \n {{ operation.officialTime | minutes }}\n
    \n
    \n
    \n
    Allowed time:
    \n
    \n \n \n \n {{ operation.durationTime | minutes }}\n
    \n
    \n
    \n \n \n \n \n
    \n \n \n \n Add a new operation\n
    \n \n \n \n \n
    Kits
    \n
    \n \n \n \n \n Buy on Asist\n \n
    \n \n \n \n \n
    \n \n
    \n
    Causal Part
    \n 0\n \"\n >\n {{ jobcardItem?.causalParts[0]?.code }} -\n {{ jobcardItem?.causalParts[0]?.description }}\n \n \n Other Causal Part\n \n \n -\n \n
    \n
    \n \n
    \n
    Part
    \n \n {{ jobcardItem?.causalPartCode }}\n \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n {{ causalPart.code\n }}\n - {{ causalPart.description }}\n \n \n
    \n \n \n \n
    \n
    \n \n
    \n \n \n
    \n {{ extraOperation.code }} - {{ extraOperation.description }}\n \n - {{ extraOperation.manufacturer }}\n \n \n - Level \n {{ extraOperation.level }}\n \n
    \n \n
    Price:
    \n
    \n {{\n extraOperation.amount | currency: currencyCode\n }}\n
    \n
    \n
    \n
    Distance:
    \n
    \n \n {{ extraOperation.distance | measurementUnits }}\n \n
    \n
    \n
    \n \n Quantity:\n
    \n \n {{ extraOperation.quantity }}\n \n \n \n \n \n \n
    \n \n \n \n Add another item\n
    \n \n \n
    \n \n \n
    \n \n \n \n \n {{ type.warranty }} -\n {{ type.description }}\n \n \n \n
    \n
    \n \n \n
    \n \n \n {{ jobcardItem.defectDescription }}\n
    \n \n \n \n \n
    \n \n \n \n \n {{ sapFailure.failureCode }} -\n {{ sapFailure.description }}\n \n \n \n \n
    \n \n \n \n \n \n \n \n {{ causalPart.code\n }}\n - {{ causalPart.description }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n onkeypress=\"return (event.charCode !=8 && event.charCode ==0 || (event.charCode >= 48 && event.charCode <= 57))\"\n maxlength=\"15\"\n min=\"0\"\n [(ngModel)]=\"jobcardItem.failedComponentSerialNumber\"\n (ngModelChange)=\"\n onUpdateNegativeValueNV(\n jobcardItem.failedComponentSerialNumber,\n i,\n 'failedComponentSerialNumber'\n )\n \"\n />\n
    \n \n \n \n
    \n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n onkeypress=\"return (event.charCode !=8 && event.charCode ==0 || (event.charCode >= 48 && event.charCode <= 57))\"\n maxlength=\"15\"\n min=\"0\"\n [(ngModel)]=\"\n jobcardItem.replacedComponentSerialNumber\n \"\n (ngModelChange)=\"\n onUpdateNegativeValueNV(\n jobcardItem.replacedComponentSerialNumber,\n i,\n 'replacedComponentSerialNumber'\n )\n \"\n />\n
    \n \n
    \n\n \n \n \n
    \n \n
    \n \n
    \n \n
    \n \n
    \n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n maxlength=\"15\"\n min=\"0\"\n [(ngModel)]=\"jobcardItem.failedComponentSerialNumber\"\n (ngModelChange)=\"\n onUpdateNegativeValueNV(\n jobcardItem.failedComponentSerialNumber,\n i,\n 'failedComponentSerialNumber'\n )\n \"\n />\n
    \n
    \n
    \n \n
    \n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n maxlength=\"15\"\n min=\"0\"\n [(ngModel)]=\"\n jobcardItem.replacedComponentSerialNumber\n \"\n (ngModelChange)=\"\n onUpdateNegativeValueNV(\n jobcardItem.replacedComponentSerialNumber,\n i,\n 'replacedComponentSerialNumber'\n )\n \"\n />\n
    \n
    \n \n\n \n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n \n
    \n
    \n \n \n \n \n
    \n \n
    \n
    \n {{ assemblyDate[i] | date }}\n
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n maxlength=\"16\"\n [(ngModel)]=\"jobcardItem.amountUseOnSpareParts\"\n [disabled]=\"\n jobcardItem.currentStatus?.status ===\n statusEnum.Invoiced\n \"\n />\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n \n
    \n \n
    \n
    \n {{ assemblyDate[i] | date }}\n
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n this.maxLength) this.value = this.value.slice(0, this.maxLength);\"\n maxlength=\"16\"\n [(ngModel)]=\"jobcardItem.amountUseOnSpareParts\"\n [disabled]=\"\n jobcardItem.currentStatus?.status ===\n statusEnum.Invoiced\n \"\n />\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n\n {{ travelArrayData.name }}\n \n \n \n \n \n \n \n \n \n \n \n {{ travelArrayData.estimatedDuration | minutes }}\n \n\n \n \n \n \n \n {{ travelArrayData.duration / 60 | minutes }}\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n
    \n
    \n \n \n \n {{ paymentType?.name }}\n \n \n
    \n\n \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n\n \n \n Fictitious Material - MISCELLANEOUS\n \n \n \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n {{\n workshop.currencyCode\n }}\n
    \n
    \n
    \n
    \n \n \n Check the maximum value from the
    \n eTIM bulletins\n \n \n\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n {{ travelArrayData.duration / 60 | minutes }}\n
    \n
    \n
    \n \n \n\n
    \n
    \n
    \n \n Address\n
    \n
    \n \n Co-Ordinates\n
    \n
    \n
    \n
    \n \n Address\n
    \n
    \n \n Co-Ordinates\n
    \n
    \n\n
    \n
    \n \n
  • \n \n Enter Manually\n \n
  • \n
  • \n Dealership Address\n \n
  • \n
  • \n Customer Address\n \n
  • \n
  • \n \n Machine Location\n \n \n \n \n
  • \n \n
    \n
    \n
    Travel from
    \n \n \n \n \n \n
    \n \n \n The location was last manually refreshed by user on:\n \n\n \n {{\n travelArrayData.travelFromManualRefreshDate\n | date: 'd MMM, YYYY - h:mm a'\n }}.\n \n
    \n
    \n
    \n \n
  • \n Enter Manually\n \n
  • \n
  • \n Dealership Address\n \n
  • \n
  • \n Customer Address\n \n
  • \n
  • \n \n Machine Location\n \n \n \n \n
  • \n \n
    \n
    \n
    \n
    Travel to
    \n \n \n \n \n \n
    \n \n \n The location was last manually refreshed by user\n on:\n\n {{\n travelArrayData.travelToManualRefreshDate\n | date: 'd MMM, YYYY - h:mm a'\n }}.\n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n \n ×\n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n
    \n \n \n Please enter valid Latitude\n
    \n
    \n \n \n Please enter valid Longitude\n
    \n \n \n The GPS location was last imported on:\n {{\n travelArrayData.travelFromGpsImportedDate\n | date: 'd MMM, YYYY - h:mm a'\n }}.\n
    \n \n
    \n \n
    \n \n \n \n ×\n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n \n
    \n \n \n Please enter valid Latitude\n
    \n
    \n \n \n Please enter valid Longitude\n
    \n \n \n The GPS location was last imported on:\n {{\n travelArrayData.travelToGpsImportedDate\n | date: 'd MMM, YYYY - h:mm a'\n }}.\n \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n Calculate\n \n Loading...\n \n \n \n \n Success! \n Estimated travel distance & time.\n \n \n Error! \n \n Estimate travel distance & time. Please check address details.\n \n \n Please check address details.\n \n \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {{ travelArrayData.estimatedDuration | minutes }}\n
    \n
    \n
    \n\n
    \n {{ alert }}\n
    \n
    \n
    \n \n \n \n \n \n \n
    \n\n
    \n \n \n \n \n \n \n
    \n
    \n \n\n \n
    \n
    \n
    \n
    Travel from
    \n
    \n \n

    \n {{ travelArrayData.travelFromAddressLine1 }}\n

    \n

    \n {{ travelArrayData.travelFromAddressLine2 }}\n

    \n

    \n {{ travelArrayData.travelFromAddressLine3 }}\n

    \n

    \n {{ travelArrayData.travelFromAddressLine4 }}\n

    \n

    \n {{ travelArrayData.travelFromPostalCode }}\n

    \n
    \n \n

    \n Latitude:\n {{ travelArrayData.travelFromLatitude }}\n

    \n

    \n Longitude:\n {{ travelArrayData.travelFromLongitude }}\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    Travel to
    \n
    \n \n

    \n {{ travelArrayData.travelToAddressLine1 }}\n

    \n

    \n {{ travelArrayData.travelToAddressLine2 }}\n

    \n

    \n {{ travelArrayData.travelToAddressLine3 }}\n

    \n

    \n {{ travelArrayData.travelToAddressLine4 }}\n

    \n

    \n {{ travelArrayData.travelToPostalCode }}\n

    \n
    \n \n

    \n Latitude:\n {{ travelArrayData.travelToLatitude }}\n

    \n

    \n Longitude:\n {{ travelArrayData.travelToLongitude }}\n

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    Payment Type
    \n \n {{ travelArrayData?.paymentType?.name }}\n \n \n -\n \n
    \n \n
    Payment Subtype 2
    \n
    \n {{ travelArrayData?.paymentSubSubType2?.code }} -\n {{ travelArrayData?.paymentSubSubType2?.description }}\n
    \n
    \n \n
    \n
    \n
    \n Payment Subtype Description\n
    \n \n {{ travelArrayData?.paymentSubType?.description }}\n \n \n -\n \n
    \n \n
    Payment Subtype 3
    \n
    \n {{ travelArrayData?.paymentSubSubType3?.code }} -\n {{ travelArrayData?.paymentSubSubType3?.description }}\n
    \n
    \n \n \n\n
    \n
    \n
    \n
    \n Estimated travel distance\n ({{ measurementUnit }})\n
    \n \n {{ travelArrayData?.estimatedDistance }}\n \n \n -\n \n
    \n
    \n\n
    \n
    \n
    \n Estimated travel time (HH:MM)\n \n \n \n \n \n
    \n {{ travelArrayData.estimatedDuration | minutes }}\n
    \n
    \n
    \n
    \n
    \n Actual travel distance\n ({{ measurementUnit }})\n
    \n \n {{ travelArrayData.distance }}\n \n \n -\n \n
    \n
    \n\n
    \n
    \n
    \n Actual travel time (HH:MM)\n \n \n \n \n \n
    \n {{ travelArrayData.duration / 60 | minutes }}\n
    \n
    \n
    \n
    \n
    \n \n View Estimated Travel Route\n \n \n \n \n Loading...\n
    \n \n
    \n
    \n \n View Actual Route\n \n \n \n \n Loading...\n
    \n \n \n \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n \n
    \n \n\n
    \n \n \n \n \n Add\n \n
    \n
    \n
    \n invalid entry\n
    \n
    \n
    \n {{ alertMessage }}\n
    \n
    \n {{ newActivity?.length }}/{{ activityNameLength }}\n
    \n
    \n
    \n \n
    \n \n \n
    \n \n
    \n \n\n
    \n \n \n \n \n Add\n \n
    \n
    \n
    \n invalid entry\n
    \n
    \n
    \n {{ alertMessage }}\n
    \n
    \n {{ newActivity?.length }}/{{ activityNameLength }}\n
    \n
    \n
    \n \n
    \n \n \n
    \n \n
    \n \n\n
    \n \n \n \n \n Add\n \n
    \n
    \n
    \n invalid entry\n
    \n
    \n
    \n {{ alertMessage }}\n
    \n
    \n {{ newActivity?.length }}/{{ activityNameLength }}\n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n Add\n \n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n Add\n \n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n Add\n \n
    \n
    \n
    \n \n \n\n \n
    \n
    \n \n
    \n \n
    \n \n \n \n \n Add\n \n
    \n
    \n
    \n invalid entry\n
    \n
    \n
    \n \n \n
    \n\n\n
    \n

    Parts may not be available

    \n

    \n Please open the corresponding Activity to review the local and central\n stock level\n

    \n

    Parts details:

    \n \n
      \n \n
        \n
      • {{ part }}
      • \n
      \n
      \n
    \n \n
    \n
    \n","import { Component, OnInit } from '@angular/core';\nimport { JobcardItem } from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { IsClockingStartedRequestParams, JobcardItemDto, JobcardItemService } from 'src/api/djc-booking-service';\nimport { Util } from 'src/app/core/util/util';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'jc-new-defer-activity-modal',\n templateUrl: './new-defer-activity-modal.component.html',\n styleUrls: ['./new-defer-activity-modal.component.scss'],\n})\nexport class NewDeferActivityModalComponent implements OnInit {\n jobcardItem: JobcardItemDto;\n message: string;\n deferReason: string;\n jobcardItems: JobcardItemDto[];\n deferringDate: Date;\n today: NgbDateStruct;\n fromCheckListDefered = false;\n showDefferButton = true;\n title: string;\n reason: string;\n jobcardItemType = JobcardItem.TypeEnum;\n constructor(\n public activeModal: NgbActiveModal,\n public userAdminService: UserAdminService,\n public jobcardItemService: JobcardItemService,\n public toastrService: ToastrService\n ) {}\n\n ngOnInit(): void {\n const date = new Date();\n this.today = {\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate(),\n };\n this.deferReason = '';\n if (!this.fromCheckListDefered) {\n this.message = Util.stringFormat(\n $localize`Do you want to [0] \"[1]\" ?`,\n this.message,\n this.jobcardItem.name\n );\n }\n }\n\n changeReason() {\n if (this.deferReason === 'other') {\n this.jobcardItem.reason = '';\n } else {\n this.jobcardItem.reason = this.deferReason;\n }\n }\n\n deleteActivity() {\n if (this.jobcardItem.id) {\n const params: IsClockingStartedRequestParams = {\n id: this.jobcardItem.id,\n authorization: this.userAdminService.accessToken,\n };\n this.jobcardItemService.isClockingStarted(params).subscribe(res => {\n if (!res.isClockingStarted) {\n this.jobcardItem.deleted = true;\n this.jobcardItems?.splice(this.jobcardItems?.indexOf(this.jobcardItem), 1);\n this.activeModal.close(this.jobcardItem);\n } else {\n this.toastrService.warning(\n $localize`The activity cannot be deleted because it has an active clocking from: ${res.fullNames.join(', ')}`\n );\n this.activeModal.close(this.jobcardItem);\n }\n });\n } else {\n this.jobcardItem.deleted = true;\n this.jobcardItems?.splice(this.jobcardItems?.indexOf(this.jobcardItem), 1);\n this.activeModal.close(this.jobcardItem);\n }\n }\n\n onSubmit() {\n if (this.fromCheckListDefered) {\n this.activeModal.close({\n deferredToDate: moment(this.deferringDate).format('YYYY-MM-DD'),\n });\n } else {\n this.jobcardItem.deferred = true;\n if(this.jobcardItem?.type === JobcardItem.TypeEnum.Free){\n this.jobcardItem.type = JobcardItem.TypeEnum.Deferred;\n }\n this.jobcardItem.deferredDate = moment(new Date()).format('YYYY-MM-DD');\n this.jobcardItem.deferredToDate = moment(this.deferringDate).format(\n 'YYYY-MM-DD'\n );\n this.activeModal.close(this.jobcardItem);\n }\n }\n}\n","
    \n

    {{ title }}

    \n

    \n Add check/item as Deferred Activity\n

    \n \n ×\n \n
    \n
    \n
    \n
    {{ message }}
    \n \n
    \n \n \n \n \n Customer asked to delete\n \n \n \n \n \n \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n \n
    \n \n Cancel\n \n \n \n Defer\n Confirm\n \n \n Delete\n \n
    \n
    \n","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { WorkshopBay } from 'src/app/models/model/models';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'jc-occupancy',\n templateUrl: './occupancy-banner.component.html',\n styleUrls: ['./occupancy-banner.component.scss'],\n})\nexport class OccupancyBannerComponent implements OnInit, OnChanges {\n @Input() appointments: number;\n @Input() occupancy: number;\n @Input() view:\n | 'workshop'\n | 'technician'\n | 'backlog'\n | 'courtesyVehicle'\n | 'workspace' = 'courtesyVehicle';\n @Input() displayMode: 'agenda' | 'week' | 'month' | 'day' | 'occupancy';\n // TODO(Marco)WorkshopBay\n @Input() workshopBays: any[];\n @Input() bayIdFilter: number;\n @Input() courtesyVehiclesBooked: number;\n workshopBay: WorkshopBay;\n // For CV\n // success:0-75, warning:75-92, danger:92-100\n occupancyBgColorsValues: {\n success: number;\n warning: number;\n danger: number;\n } = {\n success: 0.75,\n warning: 0.92,\n danger: 0.92,\n };\n\n ngOnInit(): void {\n if (!environment.isIveco) {\n // For AG\n // success:0-50, warning:50-80, danger:80-100\n this.occupancyBgColorsValues = {\n success: 0.5,\n warning: 0.8,\n danger: 0.8,\n };\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.workshopBays && this.bayIdFilter) {\n this.workshopBay = this.workshopBays.find(\n (b) => b.id === this.bayIdFilter\n );\n } else {\n this.workshopBay = null;\n }\n }\n}\n","\n today\n this week\n this month\n today\n\n= occupancyBgColorsValues.success &&\n occupancy < occupancyBgColorsValues.warning\n \"\n [class.alert-danger]=\"occupancy >= occupancyBgColorsValues.warning\"\n role=\"alert\"\n>\n You currently have \n\n \n \n no planned job for \n one planned job for \n 1\">\n {{ appointments }} jobs for \n \n \n no activity for \n one activity for \n 1\">\n {{ appointments }} activities for \n \n \n \n \n no planned job for \n one planned job for \n 1\">\n {{ appointments }} jobs for \n \n \n no activity for \n one activity for \n 1\">\n {{ appointments }} activities for \n \n \n\n \n and a planned utilisation of {{ occupancy | percent }}\n \n in bay {{ workshopBay.name }}\n \n\n\n You currently have \n {{ courtesyVehiclesBooked }}\n planned jobs with courtesy vehicles for \n \n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'jc-on-hold-icon',\n templateUrl: './on-hold-icon.component.html',\n styleUrls: ['./on-hold-icon.component.scss'],\n})\nexport class OnHoldIconComponent {\n @Input() reason: string;\n @Input() displayed: boolean;\n @Input() style: string;\n @Input() lastClockedDateTime: string;\n @Input() iconSize: number;\n}\n","\n \n
    \n \n

    \n On Hold Reason: \n
    \n {{ reason }}\n

    \n
    \n On Hold\n \n

    \n Last Clocked Date/Time: \n
    \n {{ lastClockedDateTime }}\n

    \n
    \n
    \n
    \n \n \n \n \n \n
    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { WarrantyClaimData } from 'src/app/models/model/models';\nimport { JobcardItemStatus } from 'src/app/models/model/models';\nimport { Subject } from 'rxjs';\nimport { JobcardItemStatusDto } from 'src/api/djc-report-service';\n\n@Component({\n selector: 'jc-operation-status',\n templateUrl: './operation-status.component.html',\n styleUrls: ['./operation-status.component.scss'],\n})\nexport class OperationStatusComponent implements OnInit {\n @Input() status: JobcardItemStatusDto[];\n @Input() update: Subject;\n @Input() warrantyData: WarrantyClaimData;\n readonly statusEnum = JobcardItemStatus.StatusEnum;\n value: JobcardItemStatusDto['status'];\n\n ngOnInit(): void {\n this.setValue();\n if (this.update != null) {\n this.update.subscribe(() => {\n // This will be logged every time the subject.next is called.\n this.setValue();\n });\n }\n }\n\n setValue() {\n this.value =\n this.status?.length > 1\n ? this.status.find((s) => !s.deleted)?.status\n : (this.status && this.status[0]\n ? this.status[0].status\n : JobcardItemStatus.StatusEnum.Todo);\n }\n}\n","\n \n Done\n In Progress\n New\n Pending\n Invoiced\n ToDo\n \n\n\n\n \n Claim Date: \n {{ warrantyData.claimDate | date: 'shortDate' }}\n
    \n \n Claim Number: \n {{ warrantyData.claimNumber }}\n
    \n \n Invoice Number: \n {{ warrantyData.invoiceNumber }}\n
    \n","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Jobcard, JobcardItem } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { debounceTime } from 'rxjs';\nimport {\n DJCEpartsPart,\n EpartJobcardOperation,\n} from '../epart-modal/epart-modal.component';\n\n@Component({\n selector: 'jc-parts-assignment-modal',\n templateUrl: './parts-assignment-modal.component.html',\n styleUrls: ['./parts-assignment-modal.component.scss'],\n})\nexport class PartsAssignmentModalComponent implements OnInit {\n epartsParts: DJCEpartsPart[];\n jobcard: Jobcard;\n quantityExceed = [{ operationQuantityExceed: false }];\n eParts: DJCEpartsPart[];\n\n partQuantityArray: any = {};\n partQuantityForm: FormGroup = new FormGroup({});\n\n object = Object;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n get partQuantityFormControl() {\n return this.partQuantityForm.controls;\n }\n\n ngOnInit(): void {\n this.buildForm();\n this.validationControl();\n }\n\n buildForm() {\n let formIndex = 0;\n this.epartsParts?.forEach((ep: DJCEpartsPart) => {\n if (ep.checked) {\n const fGroupKey = `${ep.part.id}_${formIndex}`;\n this.jobcard?.jobcardItems?.forEach((jcItem: JobcardItem) => {\n jcItem?.operations?.forEach((jOpp: EpartJobcardOperation) => {\n if (jOpp.checked) {\n const fConrtolName = `quantity_${formIndex}`;\n const formItem: any = {\n name: jcItem?.name ?? null,\n jItemId: jcItem?.id ?? null,\n oppId: jOpp?.id ?? null,\n oppName: jOpp?.label ?? null,\n ePartId: ep.part.id,\n formKey: fConrtolName,\n eDescription: ep.part.description,\n maxQuantity: ep.quantity,\n };\n\n const jcFGroup = JSON.parse(JSON.stringify(formItem));\n\n if (this.partQuantityArray[fGroupKey]) {\n //Add formcontrol with initial quantity\n this.addFormControl(fConrtolName, 0, ep.quantity);\n this.partQuantityArray[fGroupKey].push(jcFGroup);\n } else {\n this.partQuantityArray[fGroupKey] = [];\n //Add formcontrol with initial quantity\n this.addFormControl(fConrtolName, ep.quantity, ep.quantity);\n this.partQuantityArray[fGroupKey].push(jcFGroup);\n }\n ++formIndex;\n }\n });\n });\n }\n });\n }\n\n addFormControl(keyName: string, value: number, maxValue: number) {\n this.partQuantityForm?.addControl(\n keyName,\n new FormControl(value, [Validators.min(0), Validators.max(maxValue)])\n );\n }\n\n /**\n * This function used to set/clear the validation based on quantity\n */\n validationControl() {\n this.partQuantityForm.valueChanges\n .pipe(debounceTime(300))\n .subscribe((value) => {\n Object.keys(this.partQuantityArray).forEach((fKey: any) => {\n const maxQty = this.partQuantityArray[fKey][0].maxQuantity;\n let qtySum = 0;\n const cName: any = [];\n\n this.partQuantityArray[fKey].forEach((fc: any) => {\n if (\n value[fc.formKey] &&\n (isNaN(value[fc.formKey]) || value[fc.formKey] < 0)\n ) {\n this.partQuantityForm.controls[fc.formKey].setValue(0, {\n emitEvent: false,\n });\n value[fc.formKey] = 0;\n }\n qtySum = value[fc.formKey] + qtySum;\n cName.push(fc.formKey);\n });\n\n if (maxQty < qtySum) {\n this.setErrorControls(JSON.parse(JSON.stringify(cName)));\n } else {\n this.setClearError(JSON.parse(JSON.stringify(cName)));\n }\n });\n });\n }\n\n /**\n * This function used to clear the error\n * @param cName formconrtol name array\n */\n setClearError(cName: []) {\n cName?.forEach((fc: any) => {\n if (!this.partQuantityForm.controls[fc]?.valid) {\n this.partQuantityForm.controls[fc].setErrors(null);\n this.partQuantityForm.controls[fc].markAsTouched();\n }\n });\n }\n\n /**\n * this control used to set the error if added qty exceeds\n * @param cName formControl name array\n */\n setErrorControls(cName: []) {\n let isError = false;\n cName?.forEach((fc: any) => {\n if (this.partQuantityForm.controls[fc]?.valid && !isError) {\n this.partQuantityForm.controls[fc].setErrors({ required: true });\n this.partQuantityForm.controls[fc].markAsTouched();\n } else {\n isError = true;\n }\n });\n }\n\n onSubmit() {\n const partsArray: any = [];\n const formValue = this.partQuantityForm.value;\n Object.keys(this.partQuantityArray)?.forEach((partItems) => {\n const parts = JSON.parse(\n JSON.stringify(this.partQuantityArray[partItems])\n );\n parts?.map((item: any) => {\n item.quantity = JSON.parse(JSON.stringify(formValue[item.formKey]));\n });\n partsArray.push(...parts);\n });\n\n this.activeModal.close(partsArray);\n }\n}\n","
    \n

    Parts Assignment

    \n \n ×\n \n
    \n
    \n
    \n \n
    0\">\n
    \n {{ partQuantityArray[fpart][0].ePartId }} -\n {{ partQuantityArray[fpart][0].eDescription }}\n
    \n
    \n \n
    \n \n
    \n\n
    \n \n \n Value entered exceeds the available quantity\n
    \n
    \n \n \n \n
    \n \n Cancel\n \n \n
    \n
    \n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'commonFilter',\r\n})\r\nexport class CommonFilterPipe implements PipeTransform {\r\n transform(data: Array, filter: { [key: string]: any }): Array {\r\n if (!Array.isArray(data)) {\r\n return data;\r\n }\r\n return data.filter((d) => {\r\n const notMatchingField = Object.keys(filter).find(\r\n (key) => d[key] !== filter[key]\r\n );\r\n return !notMatchingField;\r\n });\r\n }\r\n}\r\n","import { DatePipe, FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({\n name: 'dateRange',\n})\nexport class DateRangePipe implements PipeTransform {\n constructor(\n @Inject(LOCALE_ID) public localeId: string,\n private datePipe: DatePipe\n ) {}\n transform(value: [Date, Date] | any): string {\n const startDate = new Date(value[0]);\n const endDate = value[1] ? new Date(value[1]) : undefined;\n const delta = endDate ? moment([\n startDate.getFullYear(),\n startDate.getMonth(),\n startDate.getDate(),\n ]).diff(\n moment([endDate.getFullYear(), endDate.getMonth(), endDate.getDate()])\n ) : 0;\n if (delta === 0) {\n return `${this.datePipe.transform(\n startDate,\n getLocaleDateFormat(this.localeId, FormatWidth.Short)\n )} ${this.datePipe.transform(\n startDate,\n 'HH:mm'\n )} - ${this.datePipe.transform(endDate, 'HH:mm')}`;\n } else {\n return `${this.datePipe.transform(\n startDate,\n getLocaleDateFormat(this.localeId, FormatWidth.Short)\n )} ${this.datePipe.transform(\n startDate,\n 'HH:mm'\n )} - ${this.datePipe.transform(\n endDate,\n getLocaleDateFormat(this.localeId, FormatWidth.Short)\n )} ${this.datePipe.transform(endDate, 'HH:mm')}`;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Jobcard } from 'src/app/models/model/models';\nimport { JobcardDto } from 'src/api/djc-workitem-service';\n\n@Pipe({\n name: 'dmsOrderJobOrder',\n})\nexport class DmsOrderJobOrderPipe implements PipeTransform {\n transform(value: Jobcard| JobcardDto): string {\n if (value != null && value !== undefined) {\n if (value.dmsJobOrder !== undefined) {\n return value.dmsJobOrder + '/' + value?.dmsToStrClaim;\n }\n else {\n return '';\n }\n }\n else {\n return null;\n }\n\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { JobcardItem, PaymentSubType } from 'src/app/models/model/models';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Pipe({\r\n name: 'filterSubPaymentType',\r\n pure: false,\r\n})\r\nexport class FilterSubPaymentTypePipe implements PipeTransform {\r\n transform(items: PaymentSubType[], jobcardItem: JobcardItem): any {\r\n if (\r\n !environment.isIveco ||\r\n !items ||\r\n !jobcardItem ||\r\n (jobcardItem.type !== JobcardItem.TypeEnum.Pip &&\r\n jobcardItem.type !== JobcardItem.TypeEnum.ProposedMaintenance &&\r\n jobcardItem.type !== JobcardItem.TypeEnum.NextMaintenance)\r\n ) {\r\n return items;\r\n } else if (\r\n jobcardItem.type === JobcardItem.TypeEnum.Pip ||\r\n jobcardItem.type === JobcardItem.TypeEnum.ProposedMaintenance ||\r\n jobcardItem.type === JobcardItem.TypeEnum.NextMaintenance\r\n ) {\r\n return items;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { JobcardItem } from 'src/app/models/model/models';\nimport { StringIterator } from 'cypress/types/lodash';\nimport { environment } from 'src/environments/environment';\n\n@Pipe({\n name: 'generateEtimUrl',\n})\nexport class GenerateEtimUrlPipe implements PipeTransform {\n transform(value: JobcardItem | string, ...args: unknown[]): string {\n const vin = (args?.[0] ?? null) as string;\n const type = (args?.[1] ?? null) as string;\n if (type === 'travel') {\n return this.createEtimUrl(vin, '', type);\n } else if (typeof value === 'object') {\n return this.createEtimUrl(vin, value.code, value.type);\n } else {\n return environment.etim;\n }\n }\n\n /**\n *\n * @param vin Vehicle vin/pin\n * @param id alert id\n * @param type type of alert\n * @returns created ettm URL\n */\n private createEtimUrl(\n vin: string,\n id: number | string,\n type: string = null\n ): string {\n let url = environment.etim;\n if (environment.isIveco) {\n switch (type) {\n case 'alert':\n url += '?VIN=' + vin + '&alertId=' + id;\n break;\n case 'pip':\n url += '&VIN=' + vin + '&pipId=' + id;\n break;\n default:\n break;\n }\n } else {\n switch (type) {\n case 'alert':\n url += '&extraSsoName=PIN|alertId&extraSsoValue=' + vin + '|' + id;\n break;\n case 'pip':\n url += '&extraSsoName=PIN|pipId&extraSsoValue=' + vin + '|' + id;\n break;\n case 'travel':\n url += '&extraSsoName=PIN&extraSsoValue=' + vin;\n break;\n default:\n break;\n }\n }\n\n return url;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({\n name: 'hours',\n})\nexport class HoursPipe implements PipeTransform {\n // nbHours is a duration in second\n transform(nbHours: number | Date | string | any): string {\n if (!nbHours) {\n nbHours = 0;\n }\n if (nbHours instanceof Date || typeof nbHours === 'string') {\n nbHours =\n moment(nbHours).seconds() +\n moment(nbHours).minutes() * 60 +\n moment(nbHours).hours() * 60 * 60;\n }\n if (\n (nbHours.hour || nbHours.hour === 0) &&\n (nbHours.minute || nbHours.minute === 0) &&\n (nbHours.second || nbHours.second === 0)\n ) {\n nbHours = nbHours.hour * 60 * 60 + nbHours.minute * 60 + nbHours.second;\n }\n const minutes = Math.floor(nbHours / 60);\n const hours = Math.floor(minutes / 60);\n return (\n hours.toString().padStart(2, '0') +\n ':' +\n Math.floor(minutes - hours * 60)\n .toString()\n .padStart(2, '0') +\n ':' +\n Math.floor(nbHours - minutes * 60)\n .toString()\n .padStart(2, '0')\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'isTrail',\n})\nexport class IsTrailPipe implements PipeTransform {\n transform(value: string, trailPattern: string): boolean {\n return value.indexOf(trailPattern) !== -1;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { JobcardItemStatus } from 'src/app/models/model/models';\n\n@Pipe({\n name: 'jobcardItemStatus',\n})\nexport class JobcardItemStatusPipe implements PipeTransform {\n transform(value: string): string {\n switch (value) {\n case JobcardItemStatus.StatusEnum.New:\n return $localize`New`;\n case JobcardItemStatus.StatusEnum.Todo:\n return $localize`To Do`;\n case JobcardItemStatus.StatusEnum.InProgress:\n return $localize`In Progress`;\n case JobcardItemStatus.StatusEnum.Pending:\n return $localize`Pending`;\n case JobcardItemStatus.StatusEnum.Done:\n return $localize`Done`;\n }\n return null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LanguagesService } from 'src/app/core/languages/languages.service';\n\n@Pipe({\n name: 'language',\n})\nexport class LanguagePipe implements PipeTransform {\n constructor(public languagesService: LanguagesService) {}\n\n transform(value: string): Observable {\n return this.languagesService.getLanguages().pipe(\n map((languages) => {\n const languageFound = languages.find(\n (language) => language.languageId === value\n );\n return languageFound?.languageName || value;\n })\n );\n }\n}\n","import { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\nimport { locales } from 'src/locale/locales';\n\n@Pipe({\n name: 'measurementUnits',\n})\nexport class MeasurementUnitsPipe implements PipeTransform {\n constructor(@Inject(LOCALE_ID) public localeId: string) {}\n\n transform(distance: number): string {\n const unit = locales.find(\n (locale) => locale.id.toUpperCase() === this.localeId.toUpperCase()\n ).measurementUnits;\n if (!distance) {\n return '-';\n }\n return distance + ' ' + unit;\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({\n name: 'minutes',\n})\nexport class MinutesPipe implements PipeTransform {\n transform(nbMinutes: number | Date | string | any): string {\n if (!nbMinutes) {\n nbMinutes = 0;\n }\n if (nbMinutes instanceof Date || typeof nbMinutes === 'string') {\n nbMinutes = moment(nbMinutes).minutes() + moment(nbMinutes).hours() * 60;\n }\n if (\n (nbMinutes.hour || nbMinutes.hour === 0) &&\n (nbMinutes.minute || nbMinutes.minute === 0) &&\n (nbMinutes.second || nbMinutes.second === 0)\n ) {\n nbMinutes = nbMinutes.hour * 60 + nbMinutes.minute;\n }\n const hours = Math.floor(nbMinutes / 60);\n return (\n hours.toString().padStart(2, '0') +\n ':' +\n Math.floor(nbMinutes - hours * 60)\n .toString()\n .padStart(2, '0')\n );\n }\n}\n","// eslint-disable-next-line max-classes-per-file\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { JobcardItem } from 'src/app/models/model/models';\r\n\r\n@Pipe({\r\n name: 'mpValidate',\r\n pure: false,\r\n})\r\nexport class MPValidatePipe implements PipeTransform {\r\n transform(jobcardItem: JobcardItem | any): string {\r\n let message = $localize`Update Maintenance on eTIM`;\r\n if (\r\n !jobcardItem?.cause?.length ||\r\n !jobcardItem?.correction?.length ||\r\n !jobcardItem?.generalNote?.length\r\n ) {\r\n message = $localize`Please fill the mandatory fields (Complaint, Correction, Cause) before Update Maintenance on eTIM`;\r\n } else if (!jobcardItem.activityValidated) {\r\n message = $localize`Update Maintenance on eTIM`;\r\n } else {\r\n message = null;\r\n }\r\n return message;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'replaceIfEmpty',\n})\nexport class ReplaceIfEmptyPipe implements PipeTransform {\n transform(value: any, replacement?: any, ...considerAsEmpty: any[]): any {\n if (typeof replacement === 'undefined' || replacement === null) {\n replacement = '-';\n }\n const consideredEmpty =\n typeof considerAsEmpty !== 'undefined' &&\n considerAsEmpty.find((val) => val === value) >= 0;\n return typeof value !== 'undefined' &&\n value !== null &&\n value.toString().trim() !== '' &&\n !consideredEmpty\n ? value\n : replacement;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Pipe({\n name: 'seconds',\n})\nexport class SecondsPipe implements PipeTransform {\n transform(nbSeconds: number): string {\n if (!nbSeconds) {\n nbSeconds = 0;\n }\n const hours = Math.floor(nbSeconds / 3600);\n const minutes = Math.floor((nbSeconds - hours * 3600) / 60);\n if (environment.isIveco) {\n return (\n hours.toString().padStart(2, '0') +\n ':' +\n minutes.toString().padStart(2, '0')\n );\n }\n return (\n hours.toString().padStart(2, '0') +\n ':' +\n minutes.toString().padStart(2, '0') +\n ':' +\n Math.floor(nbSeconds - hours * 3600 - minutes * 60)\n .toString()\n .padStart(2, '0')\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'sortByField',\n pure: false,\n})\nexport class SortByFieldPipe implements PipeTransform {\n transform(data: Array, field: string): Array {\n if (!Array.isArray(data)) {\n return data;\n }\n\n return data.sort((a: any, b: any) => {\n if (a[field] < b[field]) {\n return -1;\n } else if (a[field] > b[field]) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { JobcardItem, WorkshopUser } from 'src/app/models/model/models';\r\nimport { WorkshopUserDto } from 'src/api/djc-admin-service';\r\n\r\n@Pipe({\r\n name: 'combineTechnicians',\r\n})\r\nexport class CombineTechniciansPipe implements PipeTransform {\r\n transform(\r\n jobcardItem: JobcardItem[],\r\n workshopUser: WorkshopUser[] | WorkshopUserDto[]\r\n ): string[] {\r\n let techname: string[] = [];\r\n workshopUser?.forEach((user) => {\r\n jobcardItem?.forEach((jcItem) => {\r\n jcItem?.technicians?.forEach((tech) => {\r\n if (\r\n tech.workshopUserId === user.id &&\r\n !techname.includes(user.displayedName)\r\n ) {\r\n techname = [...techname, user.displayedName];\r\n }\r\n });\r\n });\r\n });\r\n return techname;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Pipe({\n name: 'truncate',\n})\nexport class TruncatePipe implements PipeTransform {\n transform(value: any, args?: any[]): Array | string {\n if (environment.isIveco) {\n const businessLimit = 20;\n const limit = args?.length > 0 ? parseInt(args[0], 10) : businessLimit;\n const trail = args?.length > 1 ? args[1] : '...';\n if (Array.isArray(value)) {\n const result: Array = [];\n value.forEach((name) => {\n result.push(\n name && name.length > limit ? name.substring(0, limit) + trail : name\n );\n });\n return result;\n } else {\n return value && value.length > limit ? value.substring(0, limit) + trail : value;\n }\n } else {\n return value;\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { WorkshopUserUnavailability } from 'src/app/models/model/models';\n\n@Pipe({\n name: 'unavailability',\n})\nexport class UnavailabilityPipe implements PipeTransform {\n transform(value: string): string {\n switch (value) {\n case WorkshopUserUnavailability.TypeEnum.Admin:\n return $localize`Administration`;\n case WorkshopUserUnavailability.TypeEnum.Holiday:\n return $localize`Holiday`;\n case WorkshopUserUnavailability.TypeEnum.Sickness:\n return $localize`Sickness`;\n case WorkshopUserUnavailability.TypeEnum.Training:\n return $localize`Training`;\n }\n return null;\n }\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\n\n@Pipe({\n name: 'workshopCurrency',\n})\nexport class WorkshopCurrencyPipe implements PipeTransform {\n currencyCode: string;\n constructor(\n private workshopService: WorkshopAdminService,\n private currencyPipe: CurrencyPipe\n ) {}\n\n transform(value: string | number): Observable {\n return this.workshopService.getWorkshop().pipe(\n map((workshop) => {\n if (workshop.currencyCode) {\n return this.currencyPipe.transform(value, workshop.currencyCode);\n }\n return null;\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { WorkshopUsersService } from 'src/app/core/workshop-user/workshop-user.service';\n\n@Pipe({\n name: 'workshopUserName',\n})\nexport class WorkshopUserNamePipe implements PipeTransform {\n constructor(private workshopUsersService: WorkshopUsersService) {}\n\n transform(workshopUserId: string): Observable {\n return this.workshopUsersService\n .getWorkshopUserById(workshopUserId)\n .pipe(\n map(\n (workshopUser) => workshopUser.firstName + ' ' + workshopUser.lastName\n )\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnInit,\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\n\n@Component({\n selector: 'jc-reception-delevery-date-modal',\n templateUrl: './reception-delivery-date-modal.component.html',\n styleUrls: ['./reception-delivery-date-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ReceptionDeliveryDateModalComponent implements OnInit {\n @Input() title: string;\n dateGroup = { receptionDate: '', deliveryDate: '' };\n minDeliveryDate: Date;\n maxReceptionDate: any;\n\n constructor(\n public activeModal: NgbActiveModal,\n private fb: FormBuilder,\n private cdRef: ChangeDetectorRef,\n private ngbModal: NgbModal\n ) {}\n ngOnInit(): void {\n this.setMinDeliveryDate();\n this.maxReceptionDate = JSON.parse(\n JSON.stringify(this.dateGroup.receptionDate)\n );\n }\n receptionDateChanged() {\n if (\n moment(this.dateGroup.receptionDate).isAfter(moment(this.minDeliveryDate))\n ) {\n this.setMinDeliveryDate();\n } else if (\n moment(this.dateGroup.receptionDate).isBefore(\n moment(this.minDeliveryDate),\n 'day'\n )\n ) {\n this.minDeliveryDate = new Date(this.dateGroup.receptionDate);\n this.minDeliveryDate = moment(this.minDeliveryDate)\n .add(1, 'hours')\n .toDate();\n }\n }\n setMinDeliveryDate() {\n if (this.dateGroup.receptionDate) {\n this.minDeliveryDate = new Date(this.dateGroup.receptionDate);\n this.minDeliveryDate = moment(this.minDeliveryDate)\n .add(1, 'hours')\n .toDate();\n this.dateGroup.deliveryDate = this.minDeliveryDate.toISOString();\n }\n }\n submit() {\n if (\n moment(this.dateGroup.receptionDate).isSame(\n moment(this.maxReceptionDate),\n 'day'\n )\n ) {\n this.activeModal.close(this.dateGroup);\n } else {\n const modalRef = this.ngbModal.open(ConfirmModalComponent);\n modalRef.componentInstance.title = $localize`Confirm`;\n modalRef.componentInstance.message = $localize`Do you want to proceed with the new Reception date?`;\n modalRef.componentInstance.action = $localize`Yes`;\n modalRef.componentInstance.cancelAction = $localize`No`;\n modalRef.result.then(\n (confirm: any) => {\n this.activeModal.close(this.dateGroup);\n this.cdRef.markForCheck();\n },\n () => {\n //Handle cancel\n this.dateGroup.receptionDate = JSON.parse(\n JSON.stringify(this.maxReceptionDate)\n );\n this.cdRef.markForCheck();\n }\n );\n }\n }\n}\n","
    \n

    {{ title }}

    \n \n ×\n \n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n Cancel\n \n \n Save\n \n
    \n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n} from '@angular/core';\nimport { Util } from '../../core/util/util';\n\nexport type ItemSelected = T & {\n selected?: boolean;\n};\n\n@Component({\n selector: 'jc-select-multiple',\n templateUrl: './select-multiple.component.html',\n styleUrls: ['./select-multiple.component.scss'],\n})\nexport class SelectMultipleComponent implements OnChanges, OnInit {\n @Input() dropdownClass: string;\n @Input() list: ItemSelected[];\n @Input() itemTitle: string;\n @Input() minCheckedBox: number;\n @Output() listChange: EventEmitter = new EventEmitter<\n ItemSelected[]\n >();\n @Output()\n currentChangeItem: EventEmitter = new EventEmitter();\n id: string;\n title: string;\n checkedBox: number;\n ngOnInit() {\n this.id = Util.getId();\n }\n\n ngOnChanges() {\n this.generateTitle();\n }\n\n generateTitle() {\n this.checkedBox = this.list?.filter((item) => item.selected).length;\n this.title = this.list\n ?.filter((item) => item.selected)\n .map((item) => item[this.itemTitle])\n .join('; ');\n }\n\n checkboxChange(item: ItemSelected) {\n this.generateTitle();\n this.listChange.emit(this.list.filter((item) => item.selected));\n this.currentChangeItem.emit(item);\n }\n}\n","
    \n \n {{ title }}\n \n \n \n \n {{ item[itemTitle] }}\n
    \n \n\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport {\n NgbAccordionModule,\n NgbButtonsModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbPopoverModule,\n NgbTimepickerModule,\n NgbTooltipModule,\n NgbTypeaheadModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { NgJoinPipeModule, NgMapPipeModule } from 'angular-pipes';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { HttpClientJsonpModule } from '@angular/common/http';\nimport { AddNotificationModalComponent } from '../notification/add-notification/add-notification-modal.component';\nimport { NotificationComponent } from '../notification/notification.component';\nimport { ActivitiesComponent } from './activities/activities.component';\nimport { ActivityHeaderComponent } from './activity-header/activity-header.component';\nimport { AddAttachmentModalComponent } from './attachments-modal/add-attachment-modal/add-attachment-modal.component';\nimport { AppointmentStatusComponent } from './appointment-status/appointment-status.component';\nimport { AzureStorageService } from './azure-storage/azure-storage.service';\nimport { BackToTopComponent } from './back-to-top/back-to-top.component';\nimport { CardCollapseComponent } from './card-collapse/card-collapse.component';\nimport { CardComponent } from './card/card.component';\nimport { CheckboxIndeterminateDirective } from './checkbox-indeterminate/checkbox-indeterminate.directive';\nimport { ChecklistDetailsModalComponent } from './checklist-details-modal/checklist-details-modal.component';\nimport { ChecklistTemplateComponent } from './checklist-template/checklist-template.component';\nimport { ClientVerbalAgreementModalComponent } from './client-verbal-agreement-modal/client-verbal-agreement-modal.component';\nimport { ConfirmModalComponent } from './confirm-modal/confirm-modal.component';\nimport { DatePickerModalComponent } from './date-picker-modal/date-picker-modal.component';\nimport { DateTimePickerModalComponent } from './date-time-picker-modal/date-time-picker-modal.component';\nimport { DateTimePickerComponent } from './date-time-picker/date-time-picker.component';\nimport { DatePickerComponent } from './date-picker/date-picker.component';\nimport { DeferActivityModalComponent } from './defer-activity-modal/defer-activity-modal.component';\nimport { DeleteAppointmentModalComponent } from './delete-appointment-modal/delete-appointment-modal.component';\nimport { AttachmentsModalComponent } from './attachments-modal/attachments-modal.component';\nimport { DmsIndicatorComponent } from './dms-indicator/dms-indicator.component';\nimport { DropdownActionComponent } from './dropdown-action/dropdown-action.component';\nimport { DurationPickerComponent } from './duration-picker/duration-picker.component';\nimport { EditFieldModalComponent } from './edit-field-modal/edit-field-modal.component';\nimport { EditMaintenanceModalComponent } from './edit-maintenance-modal/edit-maintenance-modal.component';\nimport { KitPartDetailsModalComponent } from './edit-maintenance-modal/kit-part-details-modal/kit-part-details-modal.component';\nimport { AddPartComponent } from './edit-operation-modal/add-part/add-part.component';\nimport { EditOperationModalComponent } from './edit-operation-modal/edit-operation-modal.component';\nimport { EditQuestionsModalComponent } from './edit-questions-modal/edit-questions-modal.component';\nimport { EditWorkshopModalComponent } from './edit-workshop-modal/edit-workshop-modal.component';\nimport { HasPermissionsDirective } from './has-permissions/has-permissions.directive';\nimport { HeaderComponent } from './header/header.component';\nimport { IsIvecoDirective } from './is-iveco/is-iveco.directive';\nimport { KitDetailsModalComponent } from './kit-details-modal/kit-details-modal.component';\nimport { LoadingScreenComponent } from './loading-screen/loading-screen.component';\nimport { OperationStatusComponent } from './operation-status/operation-status.component';\nimport { DateRangePipe } from './pipes/date-range.pipe';\nimport { LanguagePipe } from './pipes/language.pipe';\nimport { MeasurementUnitsPipe } from './pipes/measurement-units.pipe';\nimport { MinutesPipe } from './pipes/minutes.pipe';\nimport { ReplaceIfEmptyPipe } from './pipes/replace-if-empty.pipe';\nimport { SecondsPipe } from './pipes/seconds.pipe';\nimport { SortByFieldPipe } from './pipes/sort-by-field.pipe';\nimport { SelectMultipleComponent } from './select-multiple/select-multiple.component';\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { SortableDirective } from './sortable/sortable.directive';\nimport { TravelModalComponent } from './travel-modal/travel-modal.component';\nimport { UserCommentComponent } from './user-comment/user-comment.component';\nimport { VehicleCourtesyDetailsModalComponent } from './vehicle-courtesy-details-modal/vehicle-courtesy-details-modal.component';\nimport { WorkshopLogoComponent } from './workshop-logo/workshop-logo.component';\nimport { UnavailabilityPipe } from './pipes/unavailability.pipe';\nimport { AuditComponent } from './audit/audit.component';\nimport { TravelEditModalComponent } from './travel-modal/travel-edit-modal/travel-edit-modal.component';\nimport { WorkshopUserNamePipe } from './pipes/workshop-user-name.pipe';\nimport { ClockedTimeModalComponent } from './clocked-time-modal/clocked-time-modal.component';\nimport { ClockedTimeEditModalComponent } from './clocked-time-modal/clocked-time-edit-modal/clocked-time-edit-modal.component';\nimport { JobcardItemStatusPipe } from './pipes/jobcard-item-status.pipe';\nimport { ClockedTimeDeleteModalComponent } from './clocked-time-modal/clocked-time-delete-modal/clocked-time-delete-modal.component';\nimport { TravelDeleteModalComponent } from './travel-modal/travel-delete-modal/travel-delete-modal.component';\nimport { WorkshopCurrencyPipe } from './pipes/workshop-currency.pipe';\nimport { TravelMapDisplayComponent } from './travel-modal/travel-map-display/travel-map-display.component';\nimport { OnHoldIconComponent } from './on-hold-icon/on-hold-icon.component';\nimport { SuperseededPartModalComponent } from './edit-operation-modal/superseeded-part-modal/superseeded-part-modal.component';\nimport { OnHoldReasonModalComponent } from './dropdown-action/on-hold-reason-modal/on-hold-reason-modal.component';\nimport { DisplayChecklistJobcardComponent } from './display-checklist-jobcard/display-checklist-jobcard.component';\nimport { WorkshopBayOccupancyComponent } from './workshop-bay-occupancy/workshop-bay-occupancy.component';\nimport { WorkshopBayActivityComponent } from './workshop-bay-activity/workshop-bay-activity.component';\nimport { JobcardItemComponent } from './workshop-bay-activity/jobcard-item/jobcard-item.component';\nimport { EditJobcardItemModalComponent } from './workshop-bay-activity/edit-jobcard-item-modal/edit-jobcard-item-modal.component';\nimport { DmsOrderJobOrderPipe } from './pipes/dms-order-job-order.pipe';\nimport { ClockModalComponent } from './clock-modal/clock-modal.component';\nimport { WorkshopAppointmentListComponent } from './workshop-bay-occupancy/workshop-appointment-list/workshop-appointment-list.component';\nimport { ChangeStatusModalComponent } from './change-status-modal/change-status-modal.component';\nimport { WarningModalComponent } from './warning-modal/warning-modal.component';\nimport { LockedIconComponent } from './locked-icon/locked-icon.component';\nimport { DisplayChecklistModalComponent } from './display-checklist-modal/display-checklist-modal.component';\nimport { MPValidatePipe } from './pipes/mp-coupon-validate.pipe';\nimport { TravelDetailsModalComponent } from './travel-modal/travel-details-modal/travel-details-modal.component';\nimport { BacklogListComponent } from './backlogs/backlog-list.component';\nimport { CombineTechniciansPipe } from './pipes/technicians-pipe';\nimport { ReceptionDeliveryDateModalComponent } from './reception-delivery-date-modal/reception-delivery-date-modal.component';\nimport { SrtPartAssosiatedModalComponent } from './edit-operation-modal/srt-part-assosiated-modal/srt-part-assosiated-modal.component';\nimport { SrtPartConfirmModalComponent } from './edit-operation-modal/srt-part-assosiated-modal/srt-part-confirm-modal/srt-part-confirm-modal.component';\nimport { GenerateEtimUrlPipe } from './pipes/generate-etim-url.pipe';\nimport { EpartModalComponent } from './epart-modal/epart-modal.component';\nimport { HasPartAssignDirective } from './directives/has-part-assign.directive';\nimport { PartsAssignmentModalComponent } from './parts-assignment-modal/parts-assignment-modal.component';\n\nimport { FeedbackModalComponent } from './feedback-modal/feedback-modal.component';\nimport { EtimModalComponent } from './etim-modal/etim-modal.component';\nimport { IuLinksModalComponent } from './iu-links-modal/iu-links-modal.component';\nimport { SplitMinimizeComponent } from './split-minimize/split-minimize.component';\nimport { SetScrollViewDirective } from './directives/set-scroll-view.directive';\nimport { DmsLogsNotificationModalComponent } from './dms-logs-notification-modal/dms-logs-notification-modal.component';\nimport { FilterSubPaymentTypePipe } from './pipes/filter-sub-payment-type.pipe';\nimport { CommonFilterPipe } from './pipes/common-filter.pipe';\nimport { OccupancyBannerComponent } from './occupancy-banner/occupancy-banner.component';\nimport { CreateAppointmentButtonComponent } from './create-appointment-button/create-appointment-button.component';\nimport { HoursPipe } from './pipes/hours.pipe';\nimport { EditMaintenanceActivityModalComponent } from './edit-maintenance-activity-modal/edit-maintenance-activity-modal.component';\nimport { TruncatePipe } from './pipes/truncate.pipe';\nimport { IsTrailPipe } from './pipes/is-trail.pipe';\nimport { ClockingLogsModalComponent } from './clocking-logs-modal/clocking-logs-modal.component';\nimport { ClockingLogsTableComponent } from './clocking-logs-modal/clocking-logs-table/clocking-logs-table.component';\nimport { DmsErrorToastrModalComponent } from './dropdown-action/dms-error-toastr-modal/dms-error-toastr-modal.component';\nimport { NewActivitiesComponent } from './new-activities/new-activities.component';\nimport { NewDeferActivityModalComponent } from './new-defer-activity-modal/new-defer-activity-modal.component';\n\n@NgModule({\n declarations: [\n HeaderComponent,\n ConfirmModalComponent,\n DateTimePickerComponent,\n DatePickerComponent,\n LoadingScreenComponent,\n CardComponent,\n CardCollapseComponent,\n CardComponent,\n MinutesPipe,\n DurationPickerComponent,\n SidebarComponent,\n LanguagePipe,\n SortableDirective,\n BackToTopComponent,\n ReplaceIfEmptyPipe,\n WorkshopLogoComponent,\n DmsIndicatorComponent,\n ActivityHeaderComponent,\n AppointmentStatusComponent,\n DateRangePipe,\n SecondsPipe,\n SortByFieldPipe,\n OperationStatusComponent,\n AddAttachmentModalComponent,\n NotificationComponent,\n AddNotificationModalComponent,\n TravelModalComponent,\n DeleteAppointmentModalComponent,\n ActivitiesComponent,\n NewActivitiesComponent,\n DeferActivityModalComponent,\n NewDeferActivityModalComponent,\n EditOperationModalComponent,\n AddPartComponent,\n ClientVerbalAgreementModalComponent,\n EditWorkshopModalComponent,\n CheckboxIndeterminateDirective,\n IsIvecoDirective,\n KitDetailsModalComponent,\n EditQuestionsModalComponent,\n DropdownActionComponent,\n UserCommentComponent,\n MeasurementUnitsPipe,\n SelectMultipleComponent,\n AttachmentsModalComponent,\n EditMaintenanceModalComponent,\n EditFieldModalComponent,\n VehicleCourtesyDetailsModalComponent,\n DatePickerModalComponent,\n DateTimePickerModalComponent,\n ChecklistDetailsModalComponent,\n ChecklistTemplateComponent,\n HasPermissionsDirective,\n KitPartDetailsModalComponent,\n UnavailabilityPipe,\n AuditComponent,\n WorkshopUserNamePipe,\n TravelEditModalComponent,\n ClockedTimeModalComponent,\n ClockedTimeEditModalComponent,\n JobcardItemStatusPipe,\n ClockedTimeDeleteModalComponent,\n TravelDeleteModalComponent,\n WorkshopCurrencyPipe,\n TravelMapDisplayComponent,\n OnHoldIconComponent,\n SuperseededPartModalComponent,\n OnHoldReasonModalComponent,\n DisplayChecklistJobcardComponent,\n WorkshopBayOccupancyComponent,\n WorkshopBayActivityComponent,\n JobcardItemComponent,\n EditJobcardItemModalComponent,\n DmsOrderJobOrderPipe,\n ClockModalComponent,\n WorkshopAppointmentListComponent,\n ChangeStatusModalComponent,\n WarningModalComponent,\n LockedIconComponent,\n DisplayChecklistModalComponent,\n MPValidatePipe,\n TravelDetailsModalComponent,\n BacklogListComponent,\n CombineTechniciansPipe,\n ReceptionDeliveryDateModalComponent,\n SrtPartAssosiatedModalComponent,\n SrtPartConfirmModalComponent,\n GenerateEtimUrlPipe,\n EpartModalComponent,\n PartsAssignmentModalComponent,\n HasPartAssignDirective,\n FeedbackModalComponent,\n EtimModalComponent,\n IuLinksModalComponent,\n SplitMinimizeComponent,\n SetScrollViewDirective,\n DmsLogsNotificationModalComponent,\n FilterSubPaymentTypePipe,\n CommonFilterPipe,\n OccupancyBannerComponent,\n CreateAppointmentButtonComponent,\n HoursPipe,\n EditMaintenanceActivityModalComponent,\n TruncatePipe,\n IsTrailPipe,\n ClockingLogsModalComponent,\n ClockingLogsTableComponent,\n DmsErrorToastrModalComponent,\n ],\n imports: [\n CommonModule,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n NgbButtonsModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbPopoverModule,\n NgbModalModule,\n NgbTimepickerModule,\n NgbTooltipModule,\n NgbNavModule,\n NgbTypeaheadModule,\n InfiniteScrollModule,\n DragDropModule,\n NgMapPipeModule,\n NgJoinPipeModule,\n GoogleMapsModule,\n HttpClientJsonpModule,\n ],\n exports: [\n FeedbackModalComponent,\n ActivityHeaderComponent,\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n NgbAccordionModule,\n NgbButtonsModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbPopoverModule,\n NgbTimepickerModule,\n NgbNavModule,\n InfiniteScrollModule,\n NgbTooltipModule,\n NgbTypeaheadModule,\n HeaderComponent,\n DateTimePickerComponent,\n DatePickerComponent,\n LoadingScreenComponent,\n CardCollapseComponent,\n CardComponent,\n MinutesPipe,\n DurationPickerComponent,\n SidebarComponent,\n LanguagePipe,\n SortableDirective,\n BackToTopComponent,\n ReplaceIfEmptyPipe,\n WorkshopLogoComponent,\n AppointmentStatusComponent,\n DateRangePipe,\n SecondsPipe,\n SortByFieldPipe,\n OperationStatusComponent,\n AddAttachmentModalComponent,\n TravelModalComponent,\n ActivitiesComponent,\n NewActivitiesComponent,\n DeferActivityModalComponent,\n NewDeferActivityModalComponent,\n EditOperationModalComponent,\n AddPartComponent,\n ClientVerbalAgreementModalComponent,\n EditWorkshopModalComponent,\n CheckboxIndeterminateDirective,\n IsIvecoDirective,\n KitDetailsModalComponent,\n EditQuestionsModalComponent,\n DropdownActionComponent,\n UserCommentComponent,\n SelectMultipleComponent,\n MeasurementUnitsPipe,\n AttachmentsModalComponent,\n EditFieldModalComponent,\n ChecklistTemplateComponent,\n KitPartDetailsModalComponent,\n VehicleCourtesyDetailsModalComponent,\n HasPermissionsDirective,\n UnavailabilityPipe,\n JobcardItemStatusPipe,\n WorkshopUserNamePipe,\n WorkshopCurrencyPipe,\n TravelMapDisplayComponent,\n OnHoldIconComponent,\n DisplayChecklistJobcardComponent,\n WorkshopBayOccupancyComponent,\n WorkshopBayActivityComponent,\n JobcardItemComponent,\n EditJobcardItemModalComponent,\n LockedIconComponent,\n MPValidatePipe,\n BacklogListComponent,\n CombineTechniciansPipe,\n ReceptionDeliveryDateModalComponent,\n GoogleMapsModule,\n HttpClientJsonpModule,\n GenerateEtimUrlPipe,\n EpartModalComponent,\n HasPartAssignDirective,\n SplitMinimizeComponent,\n SetScrollViewDirective,\n FilterSubPaymentTypePipe,\n CommonFilterPipe,\n OccupancyBannerComponent,\n CreateAppointmentButtonComponent,\n HoursPipe,\n TruncatePipe,\n IsTrailPipe,\n ],\n providers: [\n AzureStorageService,\n SortByFieldPipe,\n MinutesPipe,\n SecondsPipe,\n UnavailabilityPipe,\n JobcardItemStatusPipe,\n WorkshopCurrencyPipe,\n DmsOrderJobOrderPipe,\n MPValidatePipe,\n CombineTechniciansPipe,\n GenerateEtimUrlPipe,\n FilterSubPaymentTypePipe,\n CommonFilterPipe,\n HoursPipe,\n ],\n})\nexport class SharedModule {}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { environment } from 'src/environments/environment';\n\nexport interface SidebarItem {\n id: string;\n text: string;\n link?: string;\n}\n\n@Component({\n selector: 'jc-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss'],\n animations: [\n trigger('openClose', [\n state(\n 'open',\n style({\n width: '250px',\n marginLeft: '0',\n })\n ),\n state(\n 'closed',\n style({\n width: '250px',\n marginLeft: '-250px',\n })\n ),\n transition('open => closed', [animate('0.2s ease-in')]),\n transition('closed => open', [animate('0.2s ease-out')]),\n ]),\n ],\n})\nexport class SidebarComponent implements OnInit {\n @Input() items: SidebarItem[];\n @Input() activeItemId: SidebarItem['id'];\n @Output() itemChange = new EventEmitter();\n open = true;\n environment = environment;\n constructor(private router: Router, private activatedRoute: ActivatedRoute) {}\n\n ngOnInit(): void {\n if (!this.activeItemId && this.items?.length > 0) {\n this.activeItemId = this.items[0].id;\n this.items\n .filter((item) => item.link)\n .forEach((item) => {\n if (window.location.href.indexOf(item.id) > -1) {\n this.activeItemId = item.id;\n }\n });\n }\n }\n\n itemClick(item: SidebarItem) {\n this.activeItemId = item.id;\n this.itemChange.emit(item);\n }\n\n selectChange() {\n const itemSelected = this.items.find(\n (item) => item.id === this.activeItemId\n );\n if (itemSelected.link) {\n this.router.navigate([itemSelected.link], {\n relativeTo: this.activatedRoute,\n });\n }\n this.itemChange.emit(itemSelected);\n }\n}\n","\n \n \n \n \n \n \n \n
    \n
    \n \n
    {{ item.text }}
    \n \n \n
    {{ item.text }}
    \n \n
    \n
    \n \n \n \n \n\n
    \n \n
    \n\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\n\nexport interface SortEvent {\n column: any;\n direction: 'asc' | 'desc' | '';\n}\n\n@Directive({\n selector: '[jcSortable]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[class.asc]': 'direction === \"asc\"',\n '[class.desc]': 'direction === \"desc\"',\n '(click)': 'rotate()',\n },\n})\nexport class SortableDirective {\n @Input() jcSortable = '';\n @Input() direction: '' | 'asc' | 'desc' = '';\n @Output() sort = new EventEmitter();\n\n rotate() {\n const rotateFn: { [key: string]: '' | 'asc' | 'desc' } = {\n asc: 'desc',\n desc: 'asc',\n '': 'asc',\n };\n this.direction = rotateFn[this.direction];\n this.sort.emit({ column: this.jcSortable, direction: this.direction });\n }\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { JobcardItem, JobcardItemStatus } from 'src/app/models/model/models';\nimport { WorkspaceTimeService } from '../../workspace/workspace-main-planning/workspace-time/workspace-time.service';\nimport { JobcardItemSplit } from '../../workspace/workspace-main-planning/workspace-time/workspace-day-range/workspace-day-range.component';\nimport { JobcardItemDto } from 'src/api/djc-workitem-service';\n\n@Component({\n selector: 'jc-split-minimize',\n templateUrl: './split-minimize.component.html',\n styleUrls: ['./split-minimize.component.scss'],\n})\nexport class SplitMinimizeComponent implements OnInit {\n @Output() maximizeSplitEvent = new EventEmitter();\n @Output() closeSplitEvent = new EventEmitter();\n\n constructor(public workspaceTimeService: WorkspaceTimeService) {}\n\n ngOnInit(): void {}\n //TODO(Matteo) change type old JobcardItemStatus.StatusEnum\n getLastJobcardItemStatus(\n jobcardItem: JobcardItemDto\n ): string {\n // Supposing statuses are sorted by date/time DESC\n return jobcardItem.jobcardItemStatus?.find(\n (itemStatus) => !itemStatus.deleted\n )?.status;\n }\n\n maximizeSplitModal(jobcardItem: any) {\n this.maximizeSplitEvent.emit(jobcardItem);\n }\n closeSplitModal(jobcardItem: JobcardItemSplit) {\n this.closeSplitEvent.emit(jobcardItem);\n }\n}\n","\n \n
    \n \n {{ minimizeModalArr.appointmentSplit.customerCompany?.displayedName }}\n - {{ minimizeModalArr.name }}\n \n
    \n
    \n
    \n \n Allowed Time: \n {{ minimizeModalArr?.estimatedDuration | minutes }}\n \n
    \n \n
    \n \n
    \n","import { Component } from '@angular/core';\nimport { JobcardTravel } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { JobcardTravelDto } from 'src/api/djc-workitem-service/model/models';\n\n@Component({\n templateUrl: './travel-delete-modal.component.html',\n styleUrls: ['./travel-delete-modal.component.scss'],\n})\nexport class TravelDeleteModalComponent {\n travel: JobcardTravelDto;\n reasons: JobcardTravel.ReasonEnum[] = [\n JobcardTravel.ReasonEnum.HelpingAnotherTechnician,\n JobcardTravel.ReasonEnum.TechnicalErrors,\n JobcardTravel.ReasonEnum.ForgotRecordTravel,\n JobcardTravel.ReasonEnum.ForgotStartStop,\n JobcardTravel.ReasonEnum.Discount,\n JobcardTravel.ReasonEnum.Other,\n ];\n reasonEnum = JobcardTravel.ReasonEnum;\n\n constructor(public activeModal: NgbActiveModal) {}\n\n reasonChange() {\n if (\n this.travel.reason !== JobcardTravel.ReasonEnum.Other &&\n this.travel.reason !== JobcardTravel.ReasonEnum.HelpingAnotherTechnician\n ) {\n this.travel.otherReason = '';\n }\n }\n\n onSubmit() {\n this.travel.deleted = true;\n this.activeModal.close(this.travel);\n }\n}\n","
    \n

    Delete Travel

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n \n \n \n
    \n \n
    \n \n Cancel\n \n \n Delete\n \n
    \n
    \n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { WorkshopUserTravelPosition } from 'src/app/models/model/models';\r\nimport { JobcardTravel } from 'src/app/models/model/models';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { GoogleWebService } from '../../googleMap-service/google-web.service';\r\nimport { TravelMapDisplayComponent } from '../travel-map-display/travel-map-display.component';\r\n\r\nexport interface EstimateTravel extends JobcardTravel {\r\n estimateTravelPosition?: WorkshopUserTravelPosition[];\r\n}\r\n\r\n@Component({\r\n selector: 'jc-travel-details-modal',\r\n templateUrl: './travel-details-modal.component.html',\r\n styleUrls: ['./travel-details-modal.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TravelDetailsModalComponent implements OnInit {\r\n travel: EstimateTravel;\r\n loadingTravelToDisplay = false;\r\n loadingActualTravelToDisplay = false;\r\n travelFromShowCoordinatesEnum = JobcardTravel.TravelFromShowCoordinatesEnum;\r\n travelToShowCoordinatesEnum = JobcardTravel.TravelToShowCoordinatesEnum;\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal,\r\n private ngbModal: NgbModal,\r\n private cdRef: ChangeDetectorRef,\r\n private toastrService: ToastrService,\r\n private googleService: GoogleWebService\r\n ) {}\r\n\r\n ngOnInit() {\r\n //\r\n }\r\n\r\n onClose() {\r\n this.activeModal.close();\r\n }\r\n /**\r\n * Open the Map view if geocode available\r\n */\r\n openMapView() {\r\n this.loadingTravelToDisplay = true;\r\n this.cdRef.markForCheck();\r\n this.googleService\r\n .getEstimatePositionBasedOnAddress(this.travel)\r\n .then((result: any) => {\r\n this.loadingTravelToDisplay = false;\r\n if (result && result.estimateTravelPosition?.length) {\r\n this.travel.estimateTravelPosition = result.estimateTravelPosition;\r\n this.cdRef.markForCheck();\r\n this.openMapViewModel(true);\r\n }\r\n this.cdRef.markForCheck();\r\n });\r\n }\r\n\r\n openMapViewModel(isEstimateTravel = false) {\r\n const modalRef = this.ngbModal.open(TravelMapDisplayComponent, {\r\n backdrop: 'static',\r\n size: 'lg',\r\n });\r\n modalRef.componentInstance.travel = this.travel;\r\n modalRef.componentInstance.enableModel = true;\r\n modalRef.componentInstance.isEstimateTravel = isEstimateTravel;\r\n modalRef.result.then(\r\n (travel) => {\r\n //\r\n },\r\n () => {\r\n // close or Cancel the model\r\n }\r\n );\r\n this.cdRef.markForCheck();\r\n }\r\n}\r\n","
    \r\n

    \r\n {{ travel.name }}\r\n Travels\r\n

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Travel from
    \r\n
    \r\n \r\n

    \r\n {{ travel?.travelFromAddressLine1 || '' }}\r\n

    \r\n

    \r\n {{ travel?.travelFromAddressLine2 || '' }}\r\n

    \r\n

    \r\n {{ travel?.travelFromAddressLine3 || '' }}\r\n

    \r\n

    \r\n {{ travel?.travelFromAddressLine4 || '' }}\r\n

    \r\n

    \r\n {{ travel?.travelFromPostalCode || '' }}\r\n

    \r\n \r\n \r\n

    \r\n Latitude: {{ travel?.travelFromLatitude || '' }}\r\n

    \r\n

    \r\n Longitude: {{ travel?.travelFromLongitude || '' }}\r\n

    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    Travel to
    \r\n \r\n

    {{ travel?.travelToAddressLine1 || '' }}

    \r\n

    {{ travel?.travelToAddressLine2 || '' }}

    \r\n

    {{ travel?.travelToAddressLine3 || '' }}

    \r\n

    {{ travel?.travelToAddressLine4 || '' }}

    \r\n

    {{ travel?.travelToPostalCode || '' }}

    \r\n
    \r\n \r\n

    \r\n Latitude: {{ travel?.travelToLatitude || '' }}\r\n

    \r\n

    \r\n Longitude: {{ travel?.travelToLongitude || '' }}\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    Estimated travel distance
    \r\n

    \r\n {{ (travel?.estimatedDistance | measurementUnits) || '' }}\r\n

    \r\n
    \r\n
    \r\n
    Estimated travel time (HH:MM)
    \r\n

    \r\n \r\n

      \r\n
    • \r\n {{ estDuration }}\r\n
    • \r\n
    \r\n \r\n

    \r\n
    \r\n
    \r\n \r\n View Estimated Travel Route\r\n \r\n \r\n \r\n \r\n Loading...\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Actual travel distance
    \r\n

    \r\n {{ (travel?.distance | measurementUnits) || '' }}\r\n

    \r\n
    \r\n
    \r\n
    Actual travel time (HH:MM)
    \r\n

    \r\n \r\n

      \r\n
    • \r\n {{ actDuration }}\r\n
    • \r\n
    \r\n \r\n

    \r\n
    \r\n
    \r\n \r\n View Actual Route\r\n \r\n \r\n \r\n \r\n Loading...\r\n
    \r\n \r\n
    \r\n \r\n \r\n\r\n\r\n
    \r\n \r\n Close\r\n \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\nimport { JobcardItemTechnician, JobcardTravel } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'jc-travel-edit-modal',\n templateUrl: './travel-edit-modal.component.html',\n styleUrls: ['./travel-edit-modal.component.scss'],\n})\nexport class TravelEditModalComponent implements OnInit {\n travel: JobcardTravel;\n duration: number;\n action: 'add' | 'edit' = 'add';\n reasons: JobcardTravel.ReasonEnum[] = [\n JobcardTravel.ReasonEnum.HelpingAnotherTechnician,\n JobcardTravel.ReasonEnum.TechnicalErrors,\n JobcardTravel.ReasonEnum.ForgotRecordTravel,\n JobcardTravel.ReasonEnum.ForgotStartStop,\n JobcardTravel.ReasonEnum.Discount,\n JobcardTravel.ReasonEnum.Other,\n ];\n reasonEnum = JobcardTravel.ReasonEnum;\n technicians: JobcardItemTechnician[] = [];\n\n constructor(public activeModal: NgbActiveModal) {}\n\n ngOnInit(): void {\n if (this.travel?.id) {\n this.action = 'edit';\n if (this.travel.duration) {\n this.duration = this.travel.duration / 60;\n }\n } else {\n this.travel = { id: -1 };\n this.action = 'add';\n }\n }\n\n reasonChange() {\n if (\n this.travel.reason !== JobcardTravel.ReasonEnum.Other &&\n this.travel.reason !== JobcardTravel.ReasonEnum.HelpingAnotherTechnician\n ) {\n this.travel.otherReason = '';\n }\n }\n\n onSubmit() {\n this.travel.duration = this.duration * 60;\n this.activeModal.close(this.travel);\n }\n}\n","
    \n

    \n Add Travel\n Edit Travel\n

    \n \n ×\n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n {{ technician.workshopUserId | workshopUserName | async }}\n \n \n
    \n
    \n \n
    \n \n
    \n
    {{ null | measurementUnits }}
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n \n \n \n
    \n \n
    \n \n Cancel\n \n \n Add\n Edit\n \n
    \n
    \n","import { MapDirectionsService } from '@angular/google-maps';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { JobcardTravel, WorkshopUserTravelPosition } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GoogleWebService } from '../../googleMap-service/google-web.service';\nimport { JobcardTravelDto, WorkshopUserTravelPositionDto } from 'src/api/djc-workitem-service';\n\nexport interface EstimateTravel extends JobcardTravelDto {\n estimateTravelPosition?: WorkshopUserTravelPosition[];\n}\n\nexport interface MapDirectionsResponse {\n status: google.maps.DirectionsStatus;\n result?: google.maps.DirectionsResult;\n}\n\n@Component({\n selector: 'jc-travel-map-display',\n templateUrl: './travel-map-display.component.html',\n styleUrls: ['./travel-map-display.component.scss'],\n})\nexport class TravelMapDisplayComponent implements OnInit {\n @Input() travel: EstimateTravel;\n @Output() closed = new EventEmitter();\n positions: WorkshopUserTravelPositionDto[];\n noPositionsToDisplay = false;\n enableModel = false;\n isEstimateTravel = false;\n apiLoaded: Observable;\n directionsResults$: Observable;\n options: google.maps.MapOptions = {\n zoom: 4,\n clickableIcons: false,\n streetViewControl: false,\n };\n private mapPositions: WorkshopUserTravelPositionDto[];\n\n constructor(\n public activeModal: NgbActiveModal,\n private mapDirectionsService: MapDirectionsService,\n private googleWebService: GoogleWebService\n ) {\n this.apiLoaded = this.googleWebService.isApiLoaded$;\n }\n\n ngOnInit() {\n // Check if open estimate travel\n if (this.isEstimateTravel) {\n this.mapPositions = this.travel.estimateTravelPosition?.filter(\n (pos) => pos.latitude && pos.longitude\n );\n this.positions = this.mapPositions;\n } else {\n this.positions = this.travel.positions.sort(\n (p1, p2) =>\n new Date(p1.positionDate).getTime() -\n new Date(p2.positionDate).getTime()\n );\n this.mapPositions = this.positions.filter(\n (pos) => pos.latitude && pos.longitude\n );\n }\n if (this.mapPositions?.length) {\n this.mapPositions[0].positionType = 'START';\n this.mapPositions[this.mapPositions.length - 1].positionType = 'STOP';\n }\n this.updateMapRoute();\n }\n\n updateMapRoute() {\n const positionLength = this.mapPositions?.length;\n // Route path request\n const request: google.maps.DirectionsRequest = {\n destination: {\n lat: this.mapPositions[positionLength - 1].latitude,\n lng: this.mapPositions[positionLength - 1].longitude,\n },\n origin: {\n lat: this.mapPositions[0].latitude,\n lng: this.mapPositions[0].longitude,\n },\n waypoints: this.getWayPointsPosition(),\n travelMode: 'DRIVING' as google.maps.TravelMode,\n };\n // Lazy loading runder the route path using route service\n this.directionsResults$ = this.mapDirectionsService\n .route(request)\n .pipe(map((response) => response.result));\n }\n\n //This function used to add the multiple way path point\n getWayPointsPosition(): google.maps.DirectionsWaypoint[] {\n const wavePoints: google.maps.DirectionsWaypoint[] = [];\n if (this.mapPositions?.length > 2) {\n const tempMapPositions = JSON.parse(JSON.stringify(this.mapPositions));\n tempMapPositions.shift(); // removes first element\n tempMapPositions.pop(); // removes last element\n tempMapPositions?.forEach((element: any, index: number) => {\n const position: google.maps.DirectionsWaypoint = {\n location: new google.maps.LatLng(element.latitude, element.longitude),\n stopover: false,\n };\n wavePoints.splice(index, 0, position);\n });\n }\n return wavePoints;\n }\n\n closeMap() {\n this.closed.next(null);\n }\n onClose() {\n this.activeModal.close();\n }\n}\n","
    \n

    \n Estimate Travel route\n Actual Travel route\n

    \n \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    Positions
    \n
    \n
    \n
    \n
    \n {{ position.positionDate | date: 'y-MM-d, h:mm' }}:\n
    \n \n Travel from\n Travel to\n
    \n
    \n Latitude:  {{ position.latitude }}\n
    \n
    \n Longitude:  {{ position.longitude }}\n
    \n
    \n Status: \n {{ position.deviceStatus }}\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n Close\n \n
    \n","import { Component, QueryList, ViewChildren } from '@angular/core';\nimport { JobcardItemTechnician, JobcardTravel } from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Util } from 'src/app/core/util/util';\nimport { JobcardItemTechnicianDto, JobcardTravelDto } from 'src/api/djc-workitem-service/model/models';\nimport { SortableDirective, SortEvent } from '../sortable/sortable.directive';\nimport { TravelDeleteModalComponent } from './travel-delete-modal/travel-delete-modal.component';\nimport { TravelDetailsModalComponent } from './travel-details-modal/travel-details-modal.component';\nimport { TravelEditModalComponent } from './travel-edit-modal/travel-edit-modal.component';\n\n@Component({\n templateUrl: './travel-modal.component.html',\n styleUrls: ['./travel-modal.component.scss'],\n})\nexport class TravelModalComponent {\n @ViewChildren(SortableDirective) headers: QueryList;\n travels: JobcardTravelDto[];\n technicians: JobcardItemTechnicianDto[] = [];\n travelToDisplay: JobcardTravelDto = null;\n travelToList = false;\n estimateToList = false;\n private travelsChanged = false;\n\n constructor(\n private activeModal: NgbActiveModal,\n private ngbModal: NgbModal\n ) {}\n\n addTravel() {\n const modalRef = this.ngbModal.open(TravelEditModalComponent);\n modalRef.componentInstance.technicians = this.technicians;\n modalRef.result.then((travel) => {\n this.travels.push(travel);\n this.travelsChanged = true;\n });\n }\n\n editTravel(travel: JobcardTravelDto) {\n const modalRef = this.ngbModal.open(TravelEditModalComponent);\n modalRef.componentInstance.travel = { ...travel };\n modalRef.componentInstance.technicians = this.technicians;\n modalRef.result.then((travelEdited) => {\n this.travels.splice(this.travels.indexOf(travel), 1, travelEdited);\n this.travelsChanged = true;\n });\n }\n\n visualizeTravelOnMap(travel: JobcardTravelDto) {\n if (this.travelToDisplay) {\n this.onMapClosed();\n } else {\n this.travelToDisplay = travel;\n }\n }\n\n onMapClosed(): void {\n this.travelToDisplay = null;\n }\n\n deleteTravel(travel: JobcardTravelDto) {\n if (travel.id !== -1) {\n const modalRef = this.ngbModal.open(TravelDeleteModalComponent);\n const travelDelete = modalRef.componentInstance as TravelDeleteModalComponent;\n travelDelete.travel = { ...travel };\n modalRef.result.then((travelDeleted) => {\n this.travels.splice(this.travels.indexOf(travel), 1, travelDeleted);\n this.travelsChanged = true;\n });\n } else {\n this.travels.splice(this.travels.indexOf(travel), 1);\n this.travelsChanged = true;\n }\n }\n\n undeleteTravel(travel: JobcardTravelDto) {\n travel.deleted = false;\n this.travelsChanged = true;\n }\n\n save() {\n if (this.travelsChanged) {\n this.activeModal.close(this.travels);\n } else {\n this.activeModal.close();\n }\n }\n\n onSort(sortEvent: SortEvent) {\n this.headers.forEach((header) => {\n if (header.jcSortable !== sortEvent.column) {\n header.direction = '';\n }\n });\n Util.sortTable(this.travels, sortEvent);\n }\n\n openTravelDetail(travel: JobcardTravelDto) {\n const modalRef = this.ngbModal.open(TravelDetailsModalComponent, {\n backdrop: 'static',\n size: 'lg',\n });\n modalRef.componentInstance.travel = JSON.parse(JSON.stringify(travel));\n }\n}\n","
    \n

    Travels

    \n \n
    \n
    \n \n \n \n \n \n Technician\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n Travel description\n \n Travel name \n \n Distance \n \n Estimated Travel distance\n \n \n Duration \n \n Estimated Travel time\n \n
    {{ travel.name || '-' }}\n {{ travel.workshopUserId | workshopUserName | async }}\n \n {{\n (estimateToList && travel.estimatedDistance) || travel.distance\n | measurementUnits\n }}\n \n {{\n estimateToList\n ? (travel?.estimatedDuration | minutes)\n : (travel?.duration | seconds)\n }}\n \n \n \n \n \n \n\n 0 && !travelToList\n \"\n class=\"btn btn-sm btn-icon btn-outline-primary border-0\"\n ngbTooltip=\"Visualize Travel\"\n i18n-ngbTooltip\n (click)=\"visualizeTravelOnMap(travel)\"\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n\n \n
    \n \n
    \n
    \n\n
    \n \n Close\n \n
    \n","import { Component, OnInit } from '@angular/core';\n// import {\n// JobcardItemService,\n// UpdateJobcardItemRequestParams,\n// } from '@api-jobcard';\nimport { JobcardItem } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { environment } from 'src/environments/environment';\nimport { JobcardItemService, PartialUpdateJobcardItemRequestParams, UpdateJobcardItemRequestParams, UpdateJobcardItemsRequestParams } from 'src/api/djc-booking-service';\nimport { JobcardItemDto } from 'src/api/djc-admin-service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { Util } from 'src/app/core/util/util';\n\n@Component({\n selector: 'jc-user-comment',\n templateUrl: './user-comment.component.html',\n styleUrls: ['./user-comment.component.scss'],\n})\nexport class UserCommentComponent implements OnInit {\n jobcardItem: JobcardItemDto;\n updatedJobcardItem: JobcardItemDto;\n // isEditAvailable = is warranty writer user's role or service writer or admin\n isEditAvailable: boolean;\n readonly env = environment;\n alertMessage: string;\n constructor(\n public activeModal: NgbActiveModal,\n private jobcardItemService: JobcardItemService,\n private userService: UserAdminService\n ) {}\n\n ngOnInit() {\n this.updatedJobcardItem = { ...this.jobcardItem };\n this.alertMessage = Util.stringFormat(\n $localize`Field can be max [0] characters long.`,\n 1000\n );\n }\n\n cancel() {\n this.activeModal.dismiss();\n }\n onSubmit() {\n // cas où le jobcardItem est en cours de creation et ne disposant pas encore d'id\n this.jobcardItem.cause =\n this.updatedJobcardItem.cause?.length > 0\n ? this.updatedJobcardItem.cause\n : undefined;\n this.jobcardItem.correction =\n this.updatedJobcardItem.correction?.length > 0\n ? this.updatedJobcardItem.correction\n : undefined;\n this.jobcardItem.internalNotes =\n this.updatedJobcardItem.internalNotes?.length > 0\n ? this.updatedJobcardItem.internalNotes\n : undefined;\n this.jobcardItem.generalNote =\n this.updatedJobcardItem.generalNote?.length > 0\n ? this.updatedJobcardItem.generalNote\n : undefined;\n\n if (!this.jobcardItem.id || this.jobcardItem.id === undefined) {\n this.activeModal.close();\n } else {\n const updateJobcardItemRequestParams: UpdateJobcardItemRequestParams = {\n id: this.jobcardItem.id,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n jobcardItemDto: this.jobcardItem,\n };\n this.jobcardItemService.updateJobcardItem(updateJobcardItemRequestParams)\n .subscribe();\n this.activeModal.close();\n }\n }\n}\n","
    \n

    Comment

    \n \n ×\n \n
    \n\n
    \n
    \n
    \n
    \n Complaint\n \n
    \n {{alertMessage}}\n
    \n {{ updatedJobcardItem.generalNote?.length }}/{{ 1000 }}\n
    \n \n 0/1000\n \n
    \n
    \n
    \n Cause\n \n
    \n {{alertMessage}}\n
    \n {{ updatedJobcardItem.cause?.length }}/{{ 1000 }}\n
    \n \n 0/1000\n \n
    \n
    \n
    \n Correction\n \n
    \n {{alertMessage}}\n
    \n {{ updatedJobcardItem.correction?.length }}/{{ 1000 }}\n
    \n \n 0/1000\n \n
    \n
    \n\n
    \n \n \n
    \n {{alertMessage}}\n
    \n {{ updatedJobcardItem.internalNotes?.length }}/{{ 1000 }}\n
    \n \n 0/1000\n \n
    \n
    \n
    \n
    \n \n Cancel\n \n \n Save\n \n
    \n
    \n
    \n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport {\n Brand,\n Model,\n Series,\n Vehicle,\n VehicleCourtesy,\n WorkshopUser,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbTypeahead } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable, of, Subject } from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n switchMap,\n tap,\n} from 'rxjs/operators';\nimport { BrandDto, CreateVehicleCourtesyRequestParams, ModelDto, UpdateVehicleCourtesyByIdRequestParams, VehicleCourtesyDto, VehicleCourtesyService } from 'src/api/djc-admin-service';\nimport { BrandService, GetBrandsRequestParams, GetModelsRequestParams, ModelService } from 'src/api/djc-booking-service';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { environment } from 'src/environments/environment';\n\ninterface PlaceholderLabels {\n plate: string;\n vin: string;\n brand: string;\n model: string;\n mileage: string;\n status: string;\n note: string;\n}\n\n@Component({\n selector: 'jc-vehicle-courtesy-details-modal',\n templateUrl: './vehicle-courtesy-details-modal.component.html',\n styleUrls: ['./vehicle-courtesy-details-modal.component.scss'],\n})\nexport class VehicleCourtesyDetailsModalComponent implements OnInit {\n @ViewChild('instance', { static: true }) instance: NgbTypeahead;\n\n vehicleCourtesy: VehicleCourtesyDto = null;\n editable = true;\n workshopId: number;\n plateFocus$ = new Subject();\n vinFocus$ = new Subject();\n brandFocus$ = new Subject();\n modelFocus$ = new Subject();\n seriesFocus$ = new Subject();\n click$ = new Subject();\n\n status: string;\n vehicle: Vehicle;\n courtesyVehicles: VehicleCourtesyDto[] = [];\n\n listVehicle: Vehicle[] = [];\n brands: BrandDto[] = [];\n models: ModelDto[] = [];\n // series: SeriesDto[] = [];\n series: any[] = [];\n filteredListBrands: BrandDto[] = [];\n filteredListModels: ModelDto[] = [];\n filteredListVehicles: Vehicle[] = [];\n filteredListCourtesyVehicles: VehicleCourtesyDto[] = [];\n // filteredListSeries: SeriesDto[] = [];\n filteredListSeries: any[] = [];\n searchingBrand = false;\n searchingModel = false;\n action: 'add' | 'edit' | 'view' = 'view';\n environment = environment;\n placeholders: PlaceholderLabels;\n user: WorkshopUser;\n\n constructor(\n private elRef: ElementRef,\n public activeModal: NgbActiveModal,\n private vehicleCourtesyService: VehicleCourtesyService,\n private toastrService: ToastrService,\n private brandService: BrandService,\n private modelService: ModelService,\n private userService: UserService\n ) {\n userService.getUser().subscribe((user) => {\n this.user = user;});\n }\n\n ngOnInit(): void {\n if (environment.isIveco) {\n this.placeholders = {\n plate: $localize`The vehicle plate`,\n vin: $localize`The vehicle VIN`,\n brand: $localize`The vehicle brand`,\n model: $localize`The vehicle model`,\n mileage: $localize`The vehicle mileage`,\n status: $localize`The vehicle status`,\n note: $localize`The vehicle notes`,\n };\n } else {\n this.placeholders = {\n plate: $localize`The machine plate`,\n vin: $localize`The machine PIN`,\n brand: $localize`The machine brand`,\n model: $localize`The machine model`,\n mileage: $localize`The machine mileage`,\n status: $localize`The machine status`,\n note: $localize`The machine notes`,\n };\n }\n\n if (this.action === 'add') {\n this.vehicleCourtesy = {\n id: -1,\n status: '1',\n workshop: { id: this.workshopId, name: '' },\n appointments: [],\n };\n } else {\n if (this.vehicleCourtesy && this.vehicleCourtesy?.status) {\n this.status =\n this.vehicleCourtesy.status === '1' ? 'Active' : 'Soft Deleted';\n }\n }\n\n this.filteredListCourtesyVehicles = this.courtesyVehicles;\n this.filteredListVehicles = this.listVehicle;\n this.filteredListBrands = this.brands;\n this.filteredListModels = this.models;\n this.filteredListSeries = this.series;\n }\n\n // The input focus\n\n plateFocus(event: any) {\n this.plateFocus$.next(event.target.value);\n }\n\n vinFocus(event: any) {\n this.vinFocus$.next(event.target.value);\n }\n\n modelFocus(event: any) {\n this.modelFocus$.next(event.target.value);\n }\n\n brandFocus(event: any) {\n this.brandFocus$.next(event.target.value);\n }\n\n seriesFocus(event: any) {\n this.seriesFocus$.next(event.target.value);\n }\n\n // The input values\n\n inputFormatVehicleSeriesListValue(value: any) {\n return value.name;\n }\n resultFormatVehicleSeriesListValue(value: any) {\n return value.name;\n }\n\n inputFormatBrandListValue(value: any) {\n return value.name;\n }\n resultFormatBrandListValue(value: any) {\n return value.name;\n }\n\n inputFormatModelListValue(value: any) {\n return value.name;\n }\n resultFormatModelListValue(value: any) {\n return value.name;\n }\n\n uniqueArray(data: any[]): any[] {\n const resArr: any[] = [];\n data.forEach((d) => {\n const i = resArr.findIndex((x) => x.name === d.name);\n if (i <= -1) {\n resArr.push({ id: d.id, name: d.name });\n }\n });\n return resArr;\n }\n emptyFields() {\n this.vehicleCourtesy.brand = null;\n this.vehicleCourtesy.model = null;\n this.vehicleCourtesy.plate = '';\n this.vehicleCourtesy.vin = '';\n }\n\n itemVehicleBrandSelected(data: string) {\n if (\n !this.vehicleCourtesy.brand?.id ||\n this.vehicleCourtesy.brand.id === -1\n ) {\n this.vehicleCourtesy.brand = { id: -1, name: data };\n this.filteredListCourtesyVehicles = this.courtesyVehicles;\n this.filteredListModels = this.models;\n this.filteredListBrands = this.brands;\n } else {\n this.filteredListCourtesyVehicles = this.courtesyVehicles.filter(\n (v) =>\n v.brand !== undefined && v.brand.id === this.vehicleCourtesy.brand.id\n );\n this.filteredListModels = [];\n this.filteredListCourtesyVehicles.forEach((v) => {\n this.filteredListModels.push(v.model);\n });\n }\n }\n\n itemVehicleModelSelected(data: string) {\n if (\n !this.vehicleCourtesy.model?.id ||\n this.vehicleCourtesy.model.id === -1\n ) {\n this.vehicleCourtesy.model = { id: -1, name: data };\n this.filteredListCourtesyVehicles = this.courtesyVehicles;\n this.filteredListModels = this.models;\n this.filteredListBrands = this.brands;\n } else {\n const modelList = this.models.filter(\n (m) => m !== undefined && m === this.vehicleCourtesy.model\n );\n\n this.filteredListBrands = [];\n modelList.forEach((m) => {\n this.filteredListBrands.push(m.brand);\n });\n }\n }\n\n searchBrand = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n tap(() => (this.searchingBrand = true)),\n switchMap((term) => {\n if (term.length < 3) {\n return of([]);\n }\n term = term.toUpperCase();\n const params: GetBrandsRequestParams = {\n name: term,\n noLoader: true,\n page: 0,\n size: 50,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n };\n return this.brandService\n .getBrands(params)\n .pipe(catchError(() => of([])));\n }),\n tap(() => (this.searchingBrand = false))\n );\n\n searchModel = (text$: Observable) =>\n text$.pipe(\n debounceTime(200),\n distinctUntilChanged(),\n tap(() => (this.searchingModel = true)),\n switchMap((term) => {\n if (term.length < 3) {\n return of([]);\n }\n term = term.toUpperCase();\n const params: GetModelsRequestParams = {\n brandId:\n this.vehicleCourtesy.brand?.id === -1\n ? null\n : this.vehicleCourtesy?.brand?.id,\n name: term,\n noLoader: true,\n page: 0,\n size: 50,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n };\n return this.modelService\n .getModels(params)\n .pipe(catchError(() => of([])));\n }),\n tap(() => (this.searchingModel = false))\n );\n\n alreadyExists(vehicleCourtesy: VehicleCourtesyDto): boolean {\n if (this.action === 'add') {\n if (this.environment.isIveco) {\n return !!this.filteredListCourtesyVehicles.find(\n (cc) =>\n cc.plate?.toLowerCase() === vehicleCourtesy.plate?.toLowerCase()\n );\n } else {\n return !!this.filteredListCourtesyVehicles.find(\n (cc) => cc.vin?.toLowerCase() === vehicleCourtesy.vin?.toLowerCase()\n );\n }\n } else {\n // Edit\n if (this.environment.isIveco) {\n return (\n vehicleCourtesy.plate?.toLowerCase() !==\n this.vehicleCourtesy?.plate?.toLowerCase() &&\n !!this.filteredListCourtesyVehicles.find(\n (cc) =>\n cc.plate?.toLowerCase() === vehicleCourtesy.plate?.toLowerCase()\n )\n );\n } else {\n return (\n vehicleCourtesy.vin?.toLowerCase() !==\n this.vehicleCourtesy?.vin?.toLowerCase() &&\n !!this.filteredListCourtesyVehicles.find(\n (cc) => cc.vin?.toLowerCase() === vehicleCourtesy.vin?.toLowerCase()\n )\n );\n }\n }\n }\n\n // Submit vehicle\n submit() {\n if (this.action === 'add') {\n const params: CreateVehicleCourtesyRequestParams = {\n vehicleCourtesyDto: this.vehicleCourtesy,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n };\n\n this.vehicleCourtesyService.createVehicleCourtesy(params).subscribe(\n (v) => {\n this.activeModal.close(v);\n },\n (err) => {\n if (err.status === 417) {\n this.toastrService.error(\n $localize`Error creating Courtesy Vehicle: VIN already exists in database`\n );\n }\n }\n );\n } else {\n this.vehicleCourtesy.workshop = { id: this.workshopId, name: '' };\n const params: UpdateVehicleCourtesyByIdRequestParams = {\n id: this.vehicleCourtesy.id,\n vehicleCourtesyDto: this.vehicleCourtesy,\n workshopId: this.user.workshopId,\n authorization: this.userService.accessToken,\n };\n\n this.vehicleCourtesyService\n .updateVehicleCourtesyById(params)\n .subscribe((v) => {\n this.activeModal.close(v);\n });\n }\n }\n\n scrollToItem() {\n const elements = this.elRef.nativeElement.querySelectorAll('.active');\n if (elements?.length > 0) {\n elements[0].scrollIntoView();\n }\n }\n}\n","
    \n

    \n Courtesy Vehicle Details\n

    \n \n Courtesy Machine Details\n \n

    \n Add Courtesy Vehicle\n

    \n

    \n Add Courtesy Machine\n

    \n

    \n Edit Courtesy Vehicle\n

    \n \n Edit Courtesy Machine\n \n \n ×\n \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n This Plate already exists.\n
    \n
    \n
    \n \n \n *\n *\n \n \n This PIN already exists.\n
    \n
    \n
    \n \n -1 &&\n vehicleCourtesy.brand?.name &&\n editable\n }\"\n class=\"form-control dropdown-menu-scrollable\"\n type=\"text\"\n name=\"brand\"\n id=\"brand\"\n placeholder=\"{{ placeholders.brand }}\"\n [(ngModel)]=\"vehicleCourtesy.brand\"\n (ngModelChange)=\"itemVehicleBrandSelected($event)\"\n [ngbTypeahead]=\"searchBrand\"\n (keydown.ArrowDown)=\"scrollToItem()\"\n (keydown.ArrowUp)=\"scrollToItem()\"\n (focus)=\"brandFocus($event)\"\n [resultFormatter]=\"resultFormatBrandListValue\"\n [inputFormatter]=\"inputFormatBrandListValue\"\n #instance=\"ngbTypeahead\"\n />\n
    \n
    \n \n -1 &&\n vehicleCourtesy?.model?.name &&\n editable\n }\"\n class=\"form-control dropdown-menu-scrollable\"\n type=\"text\"\n name=\"model\"\n id=\"model\"\n placeholder=\"{{ placeholders.model }}\"\n [(ngModel)]=\"vehicleCourtesy.model\"\n (ngModelChange)=\"itemVehicleModelSelected($event)\"\n [ngbTypeahead]=\"searchModel\"\n (keydown.ArrowDown)=\"scrollToItem()\"\n (keydown.ArrowUp)=\"scrollToItem()\"\n (focus)=\"modelFocus($event)\"\n [resultFormatter]=\"resultFormatModelListValue\"\n [inputFormatter]=\"inputFormatModelListValue\"\n #instance=\"ngbTypeahead\"\n />\n
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n
    \n \n \n
    \n \n Cancel\n \n\n \n Add\n \n \n Save\n \n
    \n
    \n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { JobcardItem } from 'src/app/models/model/models';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'jc-warning-modal',\r\n templateUrl: './warning-modal.component.html',\r\n styleUrls: ['./warning-modal.component.scss'],\r\n})\r\nexport class WarningModalComponent implements OnInit {\r\n @Input() jobcardItem: JobcardItem;\r\n\r\n constructor(public activeModal: NgbActiveModal) {}\r\n ngOnInit(): void {\r\n //\r\n }\r\n\r\n onSubmit() {\r\n this.activeModal.close(this.jobcardItem);\r\n }\r\n\r\n cancel() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","
    \r\n

    \r\n Warning\r\n

    \r\n \r\n ×\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n

    This Checklist has been started. Are you sure you want to change it?\r\n Please note all the checks performed will be deleted.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n","import { Component, OnInit } from '@angular/core';\nimport {\n JobcardItem,\n JobcardItemSpell,\n JobcardItemStatus,\n WorkshopBay,\n WorkshopUser,\n} from 'src/app/models/model/models';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { AppointmentGrid } from 'src/app/planning/planning-day-range/planning-day-range.component';\nimport { environment } from 'src/environments/environment';\nimport { Observable, of } from 'rxjs';\nimport { JobcardItemDto } from 'src/api/djc-workitem-service';\nimport { ConfirmModalComponent } from '../../confirm-modal/confirm-modal.component';\nimport { JobcardItemDisplay } from '../workshop-bay-activity.component';\n\nexport interface SpellOverlap {\n overlap: 'before' | 'after' | 'none';\n startDates?: moment.Moment;\n endDates?: moment.Moment;\n}\n\nexport interface EditSpellModelResponse {\n jobcardItem: JobcardItemDisplay;\n overlap?: SpellOverlap;\n appointment?: AppointmentGrid;\n}\n\n@Component({\n selector: 'jc-edit-jobcard-item-modal',\n templateUrl: './edit-jobcard-item-modal.component.html',\n styleUrls: ['./edit-jobcard-item-modal.component.scss'],\n})\nexport class EditJobcardItemModalComponent implements OnInit {\n isDisabled = false;\n appointment: AppointmentGrid;\n activity: JobcardItemDisplay;\n dateSelected: Date;\n workshopBays: WorkshopBay[];\n activityStatusEnum = JobcardItemStatus.StatusEnum;\n workshopUsers: WorkshopUser[];\n statusEnum = JobcardItemStatus.StatusEnum;\n techniciansDuration: number;\n environment = environment;\n trueObserable = of(true);\n falseObserable = of(false);\n constructor(\n public activeModal: NgbActiveModal,\n private modalService: NgbModal\n ) {}\n\n ngOnInit(): void {\n this.dateSelected = new Date(this.activity.startDate);\n this.activity?.jobcardItemSpells.sort((a, b) => {\n if (a.weight < b.weight) {\n return -1;\n } else if (a.weight > b.weight) {\n return 1;\n } else {\n return 0;\n }\n });\n if (!environment.isIveco) {\n this.refreshTechniciansDuration(true);\n }\n }\n\n updateValue() {\n this.activity.startDate = this.dateSelected.toISOString();\n }\n\n addSpell() {\n this.activity.jobcardItemSpells.push({\n workshopBayId: undefined,\n estimatedDuration: 0,\n weight: this.activity.jobcardItemSpells.length + 1,\n startDate: this.appointment.receptionDate,\n technicians: [],\n });\n this.updateFlag();\n }\n\n removeSpell(spell: JobcardItemSpell) {\n this.activity.jobcardItemSpells = this.activity?.jobcardItemSpells?.filter(\n (itemSpell) => (spell.weight !== itemSpell.weight ? itemSpell : '')\n );\n this.activity?.jobcardItemSpells?.forEach((itemSpell, index) => {\n itemSpell.weight = index + 1;\n });\n this.updateFlag();\n }\n\n addTechnician(spell: JobcardItemSpell) {\n let techId: string;\n if (spell.technicians.length > 0) {\n techId = spell.technicians[spell.technicians.length - 1].workshopUserId;\n } else {\n techId = undefined;\n }\n spell.technicians.push({\n workshopUserId: techId,\n startDate: this.appointment.receptionDate,\n estimatedDuration: 0,\n });\n this.updateFlag();\n }\n\n removeTechnician(spell: JobcardItemSpell, index: number) {\n spell.technicians.splice(index, 1);\n this.refreshTechniciansDuration();\n this.updateFlag();\n }\n\n refreshTechniciansDuration(initial = false) {\n let duration = 0;\n this.activity.jobcardItemSpells[0].technicians.forEach((technician) => {\n if (technician.estimatedDuration) {\n duration += technician.estimatedDuration;\n }\n });\n this.techniciansDuration = duration;\n if (!initial) {\n this.updateFlag();\n }\n }\n\n updateFlag() {\n this.activity.isChangesActivity = true;\n }\n\n emitUpdate() {\n let totalTime = 0;\n if (environment.isIveco) {\n this.activity.jobcardItemSpells.forEach((spell) => {\n totalTime = totalTime + spell.estimatedDuration;\n if (moment(spell.startDate).isBefore(this.activity.startDate)) {\n this.activity.startDate = spell.startDate;\n }\n });\n this.activeModelAction(totalTime);\n } else {\n // For AG\n this.spellDateOverLapping().subscribe((spellRes: SpellOverlap) => {\n let isAfterDeliveryDate = false;\n let isBeforeReceptionDate = false;\n let message = '';\n let actionText = '';\n if (spellRes?.overlap == 'after') {\n isAfterDeliveryDate = true;\n message = $localize`This time is after the agreed delivery date of the machine,
    please ensure the customer is updated.`;\n actionText = $localize`Proceed and amend delivery date`;\n } else if (spellRes?.overlap == 'before') {\n isBeforeReceptionDate = true;\n message = $localize`This time is before the reception date of the machine,
    are you sure you want to schedule this activity here?`;\n actionText = $localize`Proceed and amend reception date`;\n }\n if (isAfterDeliveryDate || isBeforeReceptionDate) {\n const modalRef = this.modalService.open(ConfirmModalComponent, {\n windowClass: 'workspace-drag-confirm-modal',\n });\n modalRef.componentInstance.title = $localize`Warning`;\n modalRef.componentInstance.message = message;\n modalRef.componentInstance.action = actionText;\n modalRef.componentInstance.cancelAction = $localize`Cancel`;\n\n modalRef.result.then(\n (confirmRes) => {\n if (confirmRes) {\n totalTime = this.techniciansDuration;\n this.activeModelAction(totalTime, spellRes);\n }\n },\n () => {\n // hanndle dismiss\n }\n );\n } else {\n // normal follow...\n totalTime = this.techniciansDuration;\n this.activeModelAction(totalTime);\n }\n });\n }\n }\n\n activeModelAction(totalTime: number, spellOverlap?: SpellOverlap) {\n if (totalTime !== this.activity.estimatedDuration) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n modalRef.componentInstance.title = $localize`Confirm`;\n modalRef.componentInstance.message = $localize`Activity planned time is lower/greater than the allocated time. Do you want to continue anyway?`;\n modalRef.componentInstance.action = $localize`Yes`;\n modalRef.componentInstance.cancelAction = $localize`No`;\n modalRef.result.then(\n () => {\n if (environment.isIveco) {\n this.activity.estimatedDuration = totalTime;\n }\n const clsResponse: EditSpellModelResponse = {\n jobcardItem: this.activity,\n overlap: spellOverlap,\n };\n this.activeModal.close(clsResponse);\n },\n () => {\n // hanndle dismiss\n }\n );\n } else {\n const clsResponse: EditSpellModelResponse = {\n jobcardItem: this.activity,\n overlap: spellOverlap,\n };\n this.activeModal.close(clsResponse);\n }\n }\n\n spellDateOverLapping(): Observable {\n return new Observable((obj) => {\n const startDates: moment.Moment[] = [];\n const endDates: moment.Moment[] = [];\n this.activity?.jobcardItemSpells?.forEach((spell) => {\n spell.technicians?.forEach((tech) => {\n if (tech?.startDate) {\n startDates.push(moment(tech.startDate));\n endDates.push(\n moment(tech.startDate).add(tech.estimatedDuration, 'minutes')\n );\n }\n });\n });\n if (startDates.length > 0 && endDates.length > 0) {\n if (\n moment\n .min(startDates)\n .isBefore(moment(this.appointment.receptionDate), 'minutes')\n ) {\n // Date/time assigned before the reception date\n obj.next({ overlap: 'before', startDates: moment.min(startDates) });\n } else if (\n moment\n .max(endDates)\n .isAfter(moment(this.appointment.deliveryDate), 'minutes')\n ) {\n // Date/time assigned after the delivery date\n obj.next({ overlap: 'after', endDates: moment.max(endDates) });\n } else {\n // There is no ovelapping reception/delivery date\n obj.next({ overlap: 'none' });\n }\n } else {\n // There is no ovelapping reception/delivery date\n obj.next({ overlap: 'none' });\n }\n });\n }\n\n minimizeModal() {\n const status: any = { isMinimize: true, activity: this.activity };\n this.activeModal.dismiss(status);\n }\n}\n","
    \n
    \n
    \n

    \n {{ activity.name }}\n

    \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n ×\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n \n \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n 1\">\n
    \n
    \n Spell \n {{ spell.weight }}\n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n\n \n \n
    \n \n \n \n \n Unassigned\n \n \n {{ workshopBay.name }}\n \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n Unassigned\n \n \n {{ workshopUser.firstName }}\n {{ workshopUser.lastName }}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n \n \n\n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n\n \n \n
    \n
    \n
    \n \n
    \n
    \n \n Planned Time: \n {{ techniciansDuration | minutes }}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n Cancel\n \n \n Save\n \n
    \n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DmsLogControllerService, GetDmsLogsRequestParams } from 'src/api/djc-dms-service/api/dmsLogController.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { PageDmsLog } from 'src/api/djc-dms-service/model/pageDmsLog';\n\nimport {\n Appointment,\n AppointmentStatus,\n DmsLog,\n JobcardItemStatus,\n WorkshopBay,\n} from 'src/app/models/model/models';\nimport { NgbDateStruct, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { environment } from 'src/environments/environment';\nimport { AppointmentService } from 'src/app/appointment/appointment.service';\nimport { WorkshopBayDto } from 'src/api/djc-admin-service';\nimport { DmsLogsNotificationModalComponent } from '../../dms-logs-notification-modal/dms-logs-notification-modal.component';\nimport {\n EditJobcardItemModalComponent,\n EditSpellModelResponse,\n} from '../edit-jobcard-item-modal/edit-jobcard-item-modal.component';\nimport { JobcardItemDisplay } from '../workshop-bay-activity.component';\nimport { WorkshopBayService } from 'src/api/djc-booking-service/api/workshopBay.service';\n\n@Component({\n selector: 'jc-jobcard-item',\n templateUrl: './jobcard-item.component.html',\n styleUrls: ['./jobcard-item.component.scss'],\n})\nexport class JobcardItemComponent implements OnInit, AfterViewInit {\n @ViewChild('jobcarditemRef') jobcardItem: ElementRef; // Bugfix 232765: Reference of jobcard item for general notes popover placement\n //TODO(Matteo) change type remove any old type AppointmentGrid\n @Input() appointment: any;\n @Input() view: 'planning' | 'booking' = 'planning';\n @Input() activity: JobcardItemDisplay;\n @Input() workshopBays: WorkshopBayDto[];\n @Input() date: string | Date;\n @Input() dateString: string;\n @Input() isDisabled = false;\n @Output() updateActivity: EventEmitter = new EventEmitter();\n workshopBayName: string;\n remoteWorkshopBayId: number;\n bayType: string;\n activityStatusEnum = JobcardItemStatus.StatusEnum;\n environment = environment;\n filterBy: string;\n filterValue: number;\n lastFilter: string;\n startDate: NgbDateStruct;\n endDate: NgbDateStruct;\n logs: PageDmsLog;\n appointmentLeftOrRight: string; // Bugfix 232765: General notes popover placement value\n workshopId: number;\n constructor(\n private modalService: NgbModal,\n @Inject(DmsLogControllerService) private dmsService: DmsLogControllerService,\n private router: Router,\n private workshopBayService: WorkshopBayService,\n // US 156447: Add appointment service property for getLastClockedOutDateTime function\n private appointmentService: AppointmentService,\n private userService: UserAdminService\n ) {\n this.userService.getUser().subscribe((user) => {\n this.workshopId = user.workshopId;\n });\n }\n\n ngOnInit(): void {\n if (this.view === 'planning' && this.appointment) {\n if (!environment.isIveco) {\n if (!this.workshopBays) {\n this.workshopBayService.getWorkshopBaysByWorkshopId({\n isActive: true,\n noLoader: true,\n workshopId: this.workshopId,\n authorization: this.userService.accessToken,\n }).subscribe((workshopBays) => {\n workshopBays.forEach((bay) => {\n if (bay.id === this.appointment?.workshopBayId) {\n this.bayType = bay.type;\n }\n });\n });\n } else {\n this.workshopBays.forEach((bay) => {\n if (bay.id === this.appointment?.workshopBayId) {\n this.bayType = bay.type;\n }\n });\n }\n }\n }\n\n const splitBy = '/';\n if (this.appointment?.priorityType?.icon && null !== this.appointment?.priorityType?.icon) {\n const splittedTespxt = this.appointment.priorityType?.icon?.split(splitBy);\n try {\n if (null !== splittedTespxt[2] && undefined !== splittedTespxt[2]) {\n this.appointment.priorityType.icon =\n 'assets/bootstrap-icons.svg#' +\n splittedTespxt[2].replace('.svg', '');\n }\n } catch (error) {\n console.log('error', error);\n }\n }\n }\n\n /* Bugfix 232765: Added this lifecycle hook function for knowing where to place general notes tooltip. Since jobcard\n item is under ngIf, its offsetLeft CSS property cannot be retrieved from template directly, hence the usage of a\n @ViewChild property. Depending on the offsetLeft CSS property, appointmentLeftOrRight property will be set to the\n value which must be set for the general notes popover placement. */\n ngAfterViewInit() {\n this.appointmentLeftOrRight =\n this.jobcardItem?.nativeElement.offsetLeft < 500 &&\n this.jobcardItem?.nativeElement.clientWidth < 400\n ? 'right'\n : 'left';\n }\n\n stopPropagation(event: Event) {\n event.stopPropagation();\n }\n\n openPlanningAppointment() {\n if (\n this.appointment.status.status !==\n AppointmentStatus.StatusEnum.WorkfileValidated &&\n this.appointment.status.status !== AppointmentStatus.StatusEnum.Delivered\n ) {\n this.router.navigateByUrl(`/appointment/${this.appointment.id}`);\n }\n }\n\n openBookingAppointment(activity: JobcardItemDisplay) {\n const modalRef = this.modalService.open(EditJobcardItemModalComponent, {\n size: 'lg',\n backdrop: 'static',\n });\n modalRef.componentInstance.appointment = this.appointment;\n modalRef.componentInstance.isDisabled = this.isDisabled;\n modalRef.componentInstance.activity = JSON.parse(JSON.stringify(activity));\n modalRef.componentInstance.workshopBays = this.workshopBays;\n modalRef.result.then((modified: EditSpellModelResponse) => {\n this.activity = modified?.jobcardItem;\n this.updateActivity.emit(this.activity);\n });\n }\n openDmsNotificationModal(appointmentId: number) {\n this.filterBy = 'appointmentId';\n this.filterValue = appointmentId;\n const params: GetDmsLogsRequestParams = {\n authorization: this.userService.accessToken,\n workshopId: this.appointment?.workshopId,\n filterBy: !this.filterValue ? undefined : this.filterBy,\n filterValue: this.filterValue?.toString(),\n startDate: !this.startDate\n ? undefined\n : moment({\n year: this.startDate.year,\n month: this.startDate.month - 1,\n date: this.startDate.day,\n }).format('YYYY-MM-DD'),\n endDate: !this.endDate\n ? undefined\n : moment({\n year: this.endDate.year,\n month: this.endDate.month - 1,\n date: this.endDate.day,\n }).format('YYYY-MM-DD'),\n };\n this.dmsService?.getDmsLogs(params).subscribe((logs) => {\n this.logs = logs;\n // this.logs.sort(\n // (a, b) => moment(b.logDate).unix() - moment(a.logDate).unix()\n // );\n const modalRef = this.modalService?.open(\n DmsLogsNotificationModalComponent,\n {\n size: 'xl',\n }\n );\n modalRef.componentInstance.logData = this.logs.content;\n modalRef.componentInstance.dmsOrderNumber = this.appointment?.jobcard?.dmsJobOrder;\n modalRef.componentInstance.appointmentId = appointmentId;\n modalRef.componentInstance.totalElements = logs.totalElements;\n });\n }\n\n /**\n * Function allowing to get last clocked out date and time so this can be displayed in on hold icon of related\n * appointment.\n * @param appointment: Appointment from which to get last clocked out date.\n * @returns: Last clocked out date and time.\n */\n getLastClockedOutDateTime(appointment: Appointment): string {\n return this.appointmentService.getLastClockedOutDateTime(appointment);\n }\n}\n","\n\n \n
  • \n {{ appointment.customerNeed }}\n
  • \n \n
    \n\n
    \n \n \n General Notes\n \n \n \n \n \n Workfile Details\n \n \n Workspace\n \n
    \n
    \n\n
    \n \n \n Booking ID: {{ appointment.id }}\n
    \n
    \n \n DMS Order Number / Job Order Number:\n \n DMS ID: {{ appointment.jobcard.dmsJobOrder }}\n \n /\n {{ appointment.jobcard.dmsToStrClaim }}\n
    \n
    \n \n Activity: \n {{ appointment.jobcardItem.name }}\n
    \n
    \n \n Customer ID: \n {{ appointment.customerCompany.id }}\n
    \n
    \n \n Customer Name: \n {{ appointment.customerCompany.displayedName }}\n
    \n ({{ appointment?.cpdAlternateContact?.customerName }})\n
    \n
    \n \n Start Date: \n {{ appointment.jobcardItemSpell.startDate | date: 'short' }}\n
    \n
    \n \n Duration: \n {{\n appointment.jobcardItemSpell.estimatedDuration | minutes\n }}\n
    \n
    \n \n Vehicle: \n {{ appointment?.vehicle?.plate }}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n

    \n On Hold Reason: \n
    \n {{ appointment.onHoldReason.description }}\n

    \n
    \n On Hold\n

    \n Last Clocked Date/Time: \n
    \n {{ getLastClockedOutDateTime(appointment) }}\n

    \n
    \n
    \n \n \n \n \n \n
    \n
    \n 0 &&\n (appointment?.jobcardItem?.jobcardItemStatus[0]?.status ===\n activityStatusEnum.Todo ||\n appointment?.jobcardItem?.jobcardItemStatus[0]?.status ===\n activityStatusEnum.InProgress ||\n appointment?.jobcardItem?.jobcardItemStatus[0]?.status ===\n activityStatusEnum.Pending ||\n appointment?.jobcardItem?.jobcardItemStatus[0]?.status ===\n activityStatusEnum.New)\n \"\n (dragstart)=\"t.close()\"\n #jobcarditemRef\n >\n \n \n \n \n \n
    \n
    \n \n \n \n \n \n {{ appointment.jobcardItem.name }}\n
    \n
    \n
    \n
    \n {{ appointment.customerCompany.id }}\n
    \n
    \n  | {{ appointment.customerCompany.displayedName }}\n ({{ appointment?.cpdAlternateContact?.customerName }})\n
    \n
    \n
    \n
    \n
    \n {{ appointment?.jobcardItemSpell?.startDate | date: 'short' }}\n
    \n
    \n  |\n {{ appointment?.jobcardItemSpell?.estimatedDuration | minutes }}\n
    \n
    \n
    \n
    \n {{ appointment?.vehicle?.plate }}\n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n\n\n\n 0 &&\n (activity.jobcardItemStatus[0]?.status === activityStatusEnum.Todo ||\n activity.jobcardItemStatus[0]?.status ===\n activityStatusEnum.InProgress ||\n activity.jobcardItemStatus[0]?.status === activityStatusEnum.Pending ||\n activity.jobcardItemStatus[0]?.status === activityStatusEnum.New)\n \"\n [draggable]=\"\n activity.jobcardItemStatus?.length > 0 &&\n (activity.jobcardItemStatus[0]?.status === activityStatusEnum.Todo ||\n activity.jobcardItemStatus[0]?.status ===\n activityStatusEnum.InProgress ||\n activity.jobcardItemStatus[0]?.status === activityStatusEnum.Pending ||\n activity.jobcardItemStatus[0]?.status === activityStatusEnum.New)\n \"\n >\n \n \n \n \n \n
    \n {{ activity.name | truncate }}\n
    \n
    \n {{ activity.description | truncate }}\n
    \n
    \n {{ activity.spellActivity.estimatedDuration | minutes }}\n
    \n \n
    \n","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n EventEmitter,\n LOCALE_ID,\n Inject,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n AppointmentStatus,\n JobcardItemTechnician,\n OpeningDayPeriods,\n} from 'src/app/models/model/models';\nimport {\n JobcardItemSpell,\n JobcardItemStatus,\n WorkshopUser,\n} from 'src/app/models/model/models';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport * as moment from 'moment';\nimport { zip } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { WorkshopBayGrid } from 'src/app/appointment/booking/booking.component';\nimport { UserService } from 'src/app/core/user/user.service';\nimport { Util } from 'src/app/core/util/util';\nimport { WorkshopService } from 'src/app/core/workshop/workshop.service';\nimport {\n AppointmentGrid,\n PlanningDayRangeComponent,\n} from 'src/app/planning/planning-day-range/planning-day-range.component';\nimport { WorkspaceTimeService } from 'src/app/workspace/workspace-main-planning/workspace-time/workspace-time.service';\nimport { environment } from 'src/environments/environment';\nimport { ConfirmModalComponent } from '../confirm-modal/confirm-modal.component';\nimport { WorkshopBayDto } from 'src/api/djc-admin-service/model/workshopBayDto';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { JobcardItemDto, JobcardItemSpellDto, WorkshopUserDto } from 'src/api/djc-workitem-service';\nimport { AppointmentsService, RetriveAppointmentsBookingPageRequestParams } from 'src/api/djc-booking-service';\n\nexport interface JobcardItemSpellDisplay extends JobcardItemSpellDto {\n line?: number;\n colStart?: number;\n colEnd?: number;\n workshopBayId?: number;\n endDate?: string;\n index?: number;\n}\n\nexport interface JobcardItemDisplay extends JobcardItemDto {\n workshopBayId?: number;\n endDate?: string;\n spellActivity?: JobcardItemSpellDisplay;\n customerId?: number;\n customerName?: string;\n vehicle?: string;\n appointmentId?: number;\n appointmentStatus?: AppointmentStatus.StatusEnum;\n callNavigate?: boolean;\n isChangesActivity?: boolean;\n}\n\ninterface DropZone {\n line?: number;\n colStart?: number;\n colEnd?: number;\n workshopBayId?: number;\n}\n\n@Component({\n selector: 'jc-workshop-bay-activity',\n templateUrl: './workshop-bay-activity.component.html',\n styleUrls: ['./workshop-bay-activity.component.scss'],\n})\nexport class WorkshopBayActivityComponent\n extends PlanningDayRangeComponent\n implements OnInit, OnChanges {\n @Input() appointment: AppointmentGrid;\n @Input() workshopBays: WorkshopBayDto[];\n @Input() workshopBaysGrid: WorkshopBayGrid[];\n @Input() user: WorkshopUserDto;\n @Input() bayUtilStartDate: Date;\n @Input() workingWeekdays: string[];\n @Input() isDisabled = false;\n @Output() updatedAppointment: EventEmitter = new EventEmitter();\n @Output() updateDeliveryRange: EventEmitter = new EventEmitter();\n dropZone: DropZone;\n activityStatusEnum = JobcardItemStatus.StatusEnum;\n dragActivity: JobcardItemDisplay;\n dragSpell: JobcardItemSpellDisplay;\n periodStart: string;\n periodEnd: string;\n isSameDate: boolean;\n periods: OpeningDayPeriods;\n workshopId: number;\n isTechUnAvailable = false;\n userId: string;\n appointmentId: number;\n startDateAppt: string;\n endDateAppt: string;\n technicianEndDate: Date;\n technicianStartDate: Date;\n\n constructor(\n protected router: Router,\n protected ngbModal: NgbModal,\n private modalService: NgbModal,\n protected workshopService: WorkshopAdminService,\n private workspaceTimeService: WorkspaceTimeService,\n public appointmentsService: AppointmentsService,\n private userService: UserAdminService,\n @Inject(LOCALE_ID) protected locale: string\n ) {\n super(router, ngbModal, workshopService, locale);\n }\n\n ngOnInit() {\n this.appointmentId = this.appointment.id;\n this.userService.getUser().subscribe((user) => {\n if (user) {\n this.userId = user.id;\n this.workshopId = user.workshopId;\n }\n });\n this.workshopService.getWorkshopPeriods().subscribe((periods) => {\n this.periods = periods[0];\n this.periodStart = periods[0].start;\n this.periodEnd = periods[0].end;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.startDate || changes.endDate || changes.bayUtilStartDate) {\n this.isSameDate = moment(this.startDate).isSame(\n moment(this.bayUtilStartDate),\n 'days'\n );\n this.initCols();\n this.generateGrid();\n } else if (changes.appointment || changes.workshopBays) {\n this.generateGrid();\n }\n }\n\n generateGrid() {\n this.workshopBaysGrid.forEach((workshopBay) => {\n workshopBay.activities = [];\n });\n this.appointment?.jobcard?.jobcardItems.forEach(\n (item: JobcardItemDisplay) => {\n item?.jobcardItemSpells?.forEach((spell: JobcardItemSpellDisplay) => {\n this.workshopBaysGrid.forEach((workshopBay) => {\n if (\n (spell.workshopBayId === workshopBay.id ||\n (!spell.workshopBayId && workshopBay.id === undefined)) &&\n ((spell.startDate &&\n moment(spell.startDate).isSameOrAfter(\n moment(this.startDate),\n 'days'\n ) &&\n moment(spell.startDate).isSameOrBefore(\n moment(this.endDate),\n 'days'\n )) ||\n !spell.startDate)\n ) {\n if (!item.deferred) {\n const activity: JobcardItemDisplay = { ...item };\n activity.spellActivity = {};\n if (!spell?.startDate) {\n spell.startDate = this.appointment.receptionDate;\n }\n spell.endDate = this.workspaceTimeService\n .setEndDateOnWeek(\n spell.startDate,\n spell.estimatedDuration,\n this.periods\n )\n .toISOString();\n spell.index = workshopBay.activities.length + 1;\n spell.line = 0;\n activity.spellActivity = spell;\n workshopBay.activities.push(activity);\n }\n }\n });\n });\n }\n );\n let offsetLines = 0;\n this.workshopBaysGrid.forEach((workshopBay) => {\n let appointmentLine = 0;\n workshopBay?.activities?.forEach((activity) => {\n activity.spellActivity.colStart = this.dateToCol(\n new Date(activity.spellActivity.startDate)\n );\n activity.spellActivity.colEnd = this.dateToCol(\n new Date(activity.spellActivity.endDate)\n );\n //Hide activities for out of date range\n if (\n activity.spellActivity.colStart === Infinity ||\n activity.spellActivity.colStart === 0\n ) {\n activity.spellActivity.colStart = -1;\n }\n if (\n activity.spellActivity.colEnd === Infinity ||\n activity.spellActivity.colEnd === 0\n ) {\n activity.spellActivity.colEnd = -1;\n }\n let appointmentAdded = false;\n for (let l = 0; l <= appointmentLine; l++) {\n const lineAppointments = workshopBay.activities.filter(\n (a) => activity.spellActivity.index !== a.spellActivity.index\n );\n if (!this.isActivityConflict(activity, lineAppointments)) {\n activity.spellActivity.line = l;\n appointmentAdded = true;\n break;\n }\n }\n if (!appointmentAdded) {\n appointmentLine++;\n activity.spellActivity.line = appointmentLine;\n }\n });\n workshopBay.lines = appointmentLine + 2;\n workshopBay.offsetLines = offsetLines;\n offsetLines += workshopBay.lines;\n });\n //Set reception and delivery date range based on activities update - useful during init of booking screen to avoid inaccurate delivery date\n let activityStartDates: any[] = [];\n this.appointment.jobcard.jobcardItems.forEach(\n (item: JobcardItemDisplay) => {\n activityStartDates.push(new Date(item.startDate));\n activityStartDates.push(new Date(item.endDate));\n }\n );\n activityStartDates = activityStartDates.sort((a, b) => a - b);\n /*\n if (activityStartDates[0] && moment(activityStartDates[0]).isValid()) {\n this.appointment.receptionDate = moment(activityStartDates[0])\n .set({\n hour: new Date(this.periodStart).getHours(),\n minute: new Date(this.periodStart).getMinutes(),\n })\n .toISOString();\n this.appointment.deliveryDate = moment(\n activityStartDates[activityStartDates.length - 1]\n )\n .set({\n hour: new Date(this.periodEnd).getHours(),\n minute: new Date(this.periodEnd).getMinutes(),\n })\n .toISOString();\n }*/\n }\n\n isActivityConflict(\n orgActivity: JobcardItemDisplay,\n lineActivities: JobcardItemDisplay[]\n ): boolean {\n let conflict = false;\n lineActivities.forEach((activity) => {\n if (\n (orgActivity.spellActivity.colStart >=\n activity.spellActivity.colStart &&\n orgActivity.spellActivity.colStart < activity.spellActivity.colEnd) ||\n (orgActivity.spellActivity.colEnd > activity.spellActivity.colStart &&\n orgActivity.spellActivity.colEnd <= activity.spellActivity.colEnd) ||\n (activity.spellActivity.colStart >=\n orgActivity.spellActivity.colStart &&\n activity.spellActivity.colEnd <= orgActivity.spellActivity.colEnd) ||\n orgActivity.spellActivity.colStart === activity.spellActivity.colEnd\n ) {\n conflict = true;\n }\n });\n return conflict;\n }\n\n selectedItem(\n e: DragEvent,\n activity: JobcardItemDisplay,\n workshopBay?: WorkshopBayDto\n ) {\n if (!this.disabled) {\n setTimeout(() => {\n if (\n (activity.jobcardItemStatus[0]?.status ===\n this.activityStatusEnum.Todo ||\n activity.jobcardItemStatus[0]?.status ===\n this.activityStatusEnum.InProgress ||\n activity.jobcardItemStatus[0]?.status ===\n this.activityStatusEnum.Pending ||\n activity.jobcardItemStatus[0]?.status ===\n this.activityStatusEnum.New) &&\n (!workshopBay ||\n // Check if IDs are set (sometimes can be one null and the other undefined)\n (activity?.spellActivity?.workshopBayId &&\n workshopBay.id &&\n activity?.spellActivity?.workshopBayId === workshopBay.id) ||\n (!activity?.spellActivity?.workshopBayId && !workshopBay.id))\n ) {\n (e.target as HTMLElement).parentElement.parentElement.style.zIndex =\n '11';\n this.dragActivity = activity;\n this.dragSpell = activity.spellActivity;\n }\n }, 100);\n }\n }\n\n dragenter(x: number, y: number) {\n if (!this.isDisabled) {\n const workshopBay = this.workshopBaysGrid[y - 1];\n const colEnd = x + this.dragSpell.colEnd - this.dragSpell.colStart + 1;\n this.dropZone = {\n line: workshopBay.offsetLines + workshopBay.lines,\n colStart: x,\n colEnd,\n workshopBayId: workshopBay.id,\n };\n }\n }\n\n // in following method we will check whether the technician is occupied in someother appointments on partiular day.\n checkAppointments(\n startDateAppt: string,\n endDateAppt: string,\n techniciansComming: JobcardItemTechnician[]\n ) {\n return new Promise((resolve) => {\n const params2: RetriveAppointmentsBookingPageRequestParams = {\n startDate: startDateAppt,\n endDate: endDateAppt,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n this.appointmentsService\n .retriveAppointmentsBookingPage(params2)\n .subscribe((appointments) => {\n if (appointments.length === 0) {\n resolve(null);\n } else {\n const notAvailableTech: any[] = [];\n appointments.forEach((appointment: AppointmentGrid) => {\n appointment?.jobcard?.jobcardItems?.every((jobcardItem) => {\n jobcardItem?.jobcardItemSpells?.forEach((spell) => {\n // Check each spell technication avail\n spell?.technicians?.forEach((appointmenttech) => {\n if (\n techniciansComming?.length > 0 &&\n appointmenttech.spellLinkId !==\n techniciansComming[0].spellLinkId\n ) {\n this.technicianStartDate = new Date(\n moment(appointmenttech.startDate).format(\n 'YYYY-MM-DDTHH:mm:ss'\n )\n );\n this.technicianEndDate = moment(appointmenttech.startDate)\n .add(appointmenttech.estimatedDuration, 'minutes')\n .toDate();\n const tempAvailTech = techniciansComming.find(\n (te: any) =>\n (te.workshopUserId = appointmenttech.workshopUserId)\n );\n let techStart;\n let techEnd;\n if (tempAvailTech) {\n techStart = new Date(\n moment(tempAvailTech.startDate).format(\n 'YYYY-MM-DDTHH:mm:ss'\n )\n );\n if (tempAvailTech?.estimatedDuration) {\n techEnd = moment(tempAvailTech.startDate)\n .add(tempAvailTech.estimatedDuration, 'minutes')\n .toDate();\n } else {\n techEnd = JSON.parse(JSON.stringify(techStart));\n }\n }\n\n if (\n tempAvailTech &&\n this.technicianStartDate &&\n this.technicianEndDate &&\n (moment(techStart).isSame(this.technicianStartDate) ||\n moment(techEnd).isSame(this.technicianEndDate) ||\n (moment(techStart).isAfter(\n moment(this.technicianStartDate)\n ) &&\n moment(techStart).isBefore(\n moment(this.technicianEndDate)\n )) ||\n (moment(techStart).isAfter(\n this.technicianStartDate\n ) &&\n moment(techStart).isBefore(\n this.technicianEndDate\n )) ||\n (moment(techEnd).isAfter(this.technicianStartDate) &&\n moment(techEnd).isBefore(this.technicianEndDate)) ||\n (moment(techEnd).isAfter(\n moment(this.technicianStartDate)\n ) &&\n moment(techEnd).isBefore(\n moment(this.technicianEndDate)\n )))\n ) {\n if (\n !notAvailableTech.find(\n (te: any) =>\n (te.workshopUserId = tempAvailTech.workshopUserId)\n )\n ) {\n notAvailableTech.push(tempAvailTech);\n }\n }\n }\n });\n });\n if (notAvailableTech.length === techniciansComming.length) {\n return false;\n }\n return true;\n });\n });\n resolve(notAvailableTech);\n }\n });\n });\n }\n\n replaceActivity(event: JobcardItemDisplay) {\n if (environment.isIveco) {\n const availableTech: any[] = [];\n const isTechShiftAvailable: JobcardItemTechnician[] = [];\n let startDateAppt: any;\n let endDateAppt: any;\n event.jobcardItemSpells.forEach((spell: JobcardItemSpellDisplay) => {\n spell?.technicians?.forEach((technicianOnActivty) => {\n technicianOnActivty.startDate = spell.startDate;\n const startDate = new Date(\n moment(technicianOnActivty.startDate).format('YYYY-MM-DDTHH:mm:ss')\n );\n const endDate = moment(startDate)\n .add(technicianOnActivty.estimatedDuration, 'minutes')\n .toDate();\n\n // startDateAppt and endDateAppt are those date on which we are dragging the activity on booking page.\n startDateAppt = moment(startDate).format('YYYY-MM-DD');\n endDateAppt = moment(endDate).format('YYYY-MM-DD');\n // happensDuringUnavailableTime this call call will tell whether user shift is productive or not on particular day\n // if happensDuringUnavailableTime return true then techician is not avaible on shift , if false then technician is on shift\n\n // const params = JSON.parse(JSON.stringify())\n availableTech.push(\n this.workspaceTimeService.happensDuringUnavailableTime(\n startDate,\n this.technicianEndDate,\n technicianOnActivty.workshopUserId,\n technicianOnActivty.estimatedDuration\n )\n );\n // false value mean shift is available , true mean shift is not available\n isTechShiftAvailable.push(technicianOnActivty);\n });\n });\n\n if (!availableTech.length) {\n // if tech is not available then directly show the pop up\n this.openTechAvailpopup([], event);\n }\n zip(...availableTech)\n .pipe(\n tap((available: any) => {\n console.log('tech zip () available', available);\n const notAvaiableTech: any[] = [];\n const responseTech: any[] = [];\n available?.forEach((techAvailable: boolean, index: number) => {\n const tech: JobcardItemTechnician = JSON.parse(\n JSON.stringify(isTechShiftAvailable[index])\n );\n tech.available = techAvailable;\n responseTech.push(tech);\n if (!techAvailable) {\n notAvaiableTech.push(JSON.parse(JSON.stringify(tech)));\n }\n });\n if (available.length && available.indexOf(true) >= 0) {\n // if User shift is available then we would check whether user is busy with some other appointment on particular day or not.\n this.checkAppointments(\n startDateAppt,\n endDateAppt,\n notAvaiableTech\n ).then((res: any) => {\n if (res?.length) {\n responseTech.map((tech: JobcardItemTechnician) => {\n const findTech = res.find(\n (techd: JobcardItemTechnician) =>\n techd.workshopUserId === tech.workshopUserId\n );\n if (findTech) {\n tech.available = true;\n }\n });\n this.openTechAvailpopup(responseTech, event);\n } else {\n this.openTechAvailpopup(responseTech, event);\n }\n });\n } else {\n this.openTechAvailpopup(responseTech, event);\n }\n })\n )\n .subscribe(() => {\n /* Nothing to do */\n });\n this.updateDeliveryRange.emit();\n } else {\n this.replaceActivitydump(event);\n }\n }\n\n openTechAvailpopup(\n availTech: JobcardItemTechnician[],\n event: JobcardItemDisplay\n ) {\n // if allocated technician is not available on particular day then we will show the warning message.\n // if tech.avaialbe is true then technician is not free or not avialable.\n // if tech.avaialbe is false then technician is free or avialable.\n if (\n availTech.length &&\n availTech.find((tech: JobcardItemTechnician) => tech.available === false)\n ) {\n const modalRef = this.modalService.open(ConfirmModalComponent);\n const confirmModal = modalRef.componentInstance as ConfirmModalComponent;\n confirmModal.title = $localize`Confirmation`;\n confirmModal.message = $localize`A technician allocated to this activity is unavailable at the new time. Would you like to keep this allocation with the same technician? If you select \"no\", the activity/spell will become unassigned. Please review the appointment within the workspace.`;\n confirmModal.action = $localize`Yes`;\n confirmModal.cancelAction = $localize`No`;\n modalRef.result.then(\n () => {\n // this.checkAppointments(startDateAppt,endDateAppt, startDate, notAvaiableTech);\n this.replaceActivitydump(event);\n },\n () => {\n const removeTech = availTech.filter(\n (techrem: JobcardItemTechnician) => techrem.available\n );\n\n if (removeTech?.length) {\n removeTech.forEach((techrem: JobcardItemTechnician) => {\n event?.jobcardItemSpells.forEach((spell: any) => {\n const removeIndex = spell.technicians.findIndex(\n (techrm: JobcardItemTechnician) =>\n techrm.workshopUserId === techrem.workshopUserId\n );\n if (removeIndex > -1) {\n // removing technician from dragged event if user click no on pop message\n spell?.technicians.splice(removeIndex, 1);\n }\n });\n });\n this.replaceActivitydump(event);\n } else {\n this.replaceActivitydump(event);\n }\n this.replaceActivitydump(event);\n }\n );\n } else {\n this.replaceActivitydump(event);\n }\n }\n\n replaceActivitydump(event: JobcardItemDisplay) {\n event.jobcardItemSpells.forEach((spell: JobcardItemSpellDisplay) => {\n spell.endDate = this.workspaceTimeService\n .setEndDateOnWeek(\n spell.startDate,\n spell.estimatedDuration,\n this.periods\n )\n .toISOString();\n if (spell.workshopBayId) {\n const bay = this.workshopBays.find(\n (wBay) => wBay.id === spell.workshopBayId\n );\n if (!this.appointment.id && bay && bay?.leadTechnician) {\n spell.technicians.push({\n workshopUserId: bay?.leadTechnician,\n startDate: spell.startDate,\n estimatedDuration: spell.estimatedDuration,\n });\n }\n }\n });\n this.appointment.jobcard.jobcardItems.splice(\n this.appointment.jobcard.jobcardItems.findIndex(\n (i) => i.weight === event.weight\n ),\n 1,\n event\n );\n //Set reception and delivery date range based on activities update\n let activityStartDates: any[] = [];\n this.appointment.jobcard.jobcardItems.forEach(\n (item: JobcardItemDisplay) => {\n item.jobcardItemSpells?.forEach(\n (spell: JobcardItemSpellDisplay, index) => {\n if (index === 0 && spell.workshopBayId) {\n item.workshopBayId = spell.workshopBayId;\n }\n spell.endDate = this.workspaceTimeService\n .setEndDateOnWeek(\n spell.startDate,\n spell.estimatedDuration,\n this.periods\n )\n .toISOString();\n activityStartDates.push(moment(spell.startDate));\n activityStartDates.push(moment(spell.endDate));\n }\n );\n }\n );\n activityStartDates = activityStartDates.sort((a, b) => a - b);\n\n if (\n activityStartDates[0] &&\n moment(activityStartDates[0]).isValid() &&\n moment(activityStartDates[0]).isBefore(\n moment(this.appointment.receptionDate),\n 'minutes'\n )\n ) {\n this.appointment.receptionDate = activityStartDates[0];\n }\n if (\n activityStartDates[activityStartDates.length - 1] &&\n moment(activityStartDates[activityStartDates.length - 1]).isValid() &&\n moment(activityStartDates[activityStartDates.length - 1]).isAfter(\n moment(this.appointment.deliveryDate),\n 'minutes'\n )\n ) {\n this.appointment.deliveryDate =\n activityStartDates[activityStartDates.length - 1];\n }\n //Recalculate jobcard estimated duration based on latest updates in jobcardItem.estimatedDuration\n this.appointment.jobcard.estimatedDuration = 0;\n this.appointment.jobcard.jobcardItems.forEach((jobcardItem) => {\n jobcardItem.estimatedDuration = 0;\n jobcardItem?.jobcardItemSpells?.forEach((spell) => {\n jobcardItem.estimatedDuration =\n jobcardItem.estimatedDuration + spell.estimatedDuration;\n });\n this.appointment.jobcard.estimatedDuration =\n this.appointment.jobcard.estimatedDuration +\n jobcardItem.estimatedDuration;\n });\n this.updatedAppointment.emit(this.appointment);\n this.updateDeliveryRange.emit();\n this.generateGrid();\n }\n\n updateItem(event: DragEvent, activity: JobcardItemDisplay) {\n if (this.dropZone) {\n if (\n this.dropZone.colStart !== activity.spellActivity.colStart ||\n this.dropZone.colEnd !== activity.spellActivity.colEnd ||\n this.dropZone.workshopBayId !== activity.spellActivity.workshopBayId\n ) {\n activity?.jobcardItemSpells?.forEach(\n (itemSpell: JobcardItemSpellDisplay, index) => {\n if (itemSpell.weight === activity.spellActivity.weight) {\n itemSpell.startDate = this.colToDate(\n this.dropZone.colStart,\n new Date(itemSpell.startDate)\n ).toISOString();\n itemSpell.endDate = this.colToDate(\n this.dropZone.colEnd - 1,\n new Date(itemSpell.endDate)\n ).toISOString();\n itemSpell.workshopBayId = this.dropZone.workshopBayId;\n if (index === 0) {\n activity.workshopBayId = this.dropZone.workshopBayId;\n }\n }\n }\n );\n\n this.replaceActivity(activity);\n this.dropZone = null;\n this.dragActivity = null;\n this.dragSpell = null;\n } else {\n this.dropZone = null;\n this.dragActivity = null;\n this.dragSpell = null;\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected confirm(_appointment: AppointmentGrid) {\n if (this.dropZone) {\n this.dragActivity = null;\n this.dragSpell = null;\n }\n }\n\n protected initCols() {\n this.days = [];\n const startDate = new Date(this.startDate);\n const endDate = new Date(this.endDate);\n const deltaDays =\n moment([\n endDate.getFullYear(),\n endDate.getMonth(),\n endDate.getDate(),\n ]).diff(\n moment([\n startDate.getFullYear(),\n startDate.getMonth(),\n startDate.getDate(),\n ]),\n 'days'\n ) + 1;\n this.shortFormat = deltaDays > 10;\n this.gridTemplateColumns = 'auto';\n // const date = moment(this.startDate).add(-1, 'days');\n let date = startDate;\n while (date <= endDate) {\n if (\n this.workingWeekdays.includes(\n Util.weekdayToEnum(moment(date).weekday(), this.locale)\n )\n ) {\n this.days.push({\n date,\n dateString: moment(date).format('YYYY-MM-DDTHH:mm:ss'),\n notWorked: this.weekdaysWorked.indexOf(moment(date).weekday()) === -1,\n });\n this.gridTemplateColumns += ` minmax(0, 1fr)`;\n }\n date = moment(date).add(1, 'days').toDate();\n }\n }\n\n private setEndDate(startDate: string, duration: number) {\n if (!duration) {\n duration = 15;\n }\n const bayDuration = moment(this.periodEnd)\n .set('seconds', 0)\n .set('millisecond', 0)\n .diff(\n moment(this.periodStart).set('seconds', 0).set('millisecond', 0),\n 'minutes'\n );\n const start = new Date(startDate);\n const currentDayAvailableDuration = moment(start)\n .set({\n hour: new Date(this.periodEnd).getHours(),\n minute: new Date(this.periodEnd).getMinutes(),\n seconds: 0,\n millisecond: 0,\n })\n .diff(\n moment(startDate).set('seconds', 0).set('millisecond', 0),\n 'minutes'\n );\n let end: Date = new Date(startDate);\n\n if (duration < currentDayAvailableDuration) {\n end = new Date(startDate);\n } else if (duration > currentDayAvailableDuration) {\n end = moment(startDate)\n .add(Math.floor(duration / bayDuration), 'day')\n .toDate();\n }\n return end?.toISOString();\n }\n}\n","
    \n \n \n {{\n day.date | date: 'd'\n }}\n {{\n day.date | date: 'E d'\n }}\n
    \n \n
    Unassigned
    \n
    {{ workshopBay.name }}
    \n \n \n = 0.85 &&\n !workshopBay.occupancies[ix]?.noTechnician &&\n !workshopBay.occupancies[ix]?.notWorked,\n 'bg-warning-opacity-5':\n workshopBay.occupancies &&\n workshopBay.occupancies[ix]?.value >= 0.5 &&\n workshopBay.occupancies[ix]?.value < 0.85 &&\n !workshopBay.occupancies[ix]?.noTechnician &&\n !workshopBay.occupancies[ix]?.notWorked,\n 'bg-success-opacity-5':\n workshopBay.occupancies &&\n workshopBay.occupancies[ix]?.value < 0.5 &&\n !workshopBay.occupancies[ix]?.noTechnician &&\n !workshopBay.occupancies[ix]?.notWorked\n }\"\n *ngFor=\"let workshopBay of workshopBaysGrid\"\n [ngStyle]=\"{\n 'grid-row-start': 2 + workshopBay.offsetLines,\n 'grid-row-end': 2 + workshopBay.offsetLines + workshopBay.lines,\n 'grid-column-start': 2 + ix\n }\"\n >\n \n \n 0 &&\n (activity?.jobcardItemStatus[0]?.status === activityStatusEnum.Todo ||\n activity?.jobcardItemStatus[0]?.status ===\n activityStatusEnum.InProgress ||\n activity?.jobcardItemStatus[0]?.status ===\n activityStatusEnum.Pending ||\n activity?.jobcardItemStatus[0]?.status === activityStatusEnum.New)\n \"\n [draggable]=\"\n activity?.jobcardItemStatus?.length > 0 &&\n (activity?.jobcardItemStatus[0]?.status === activityStatusEnum.Todo ||\n activity?.jobcardItemStatus[0]?.status ===\n activityStatusEnum.InProgress ||\n activity?.jobcardItemStatus[0]?.status ===\n activityStatusEnum.Pending ||\n activity?.jobcardItemStatus[0]?.status === activityStatusEnum.New)\n \"\n (dragstart)=\"selectedItem($event, activity, workshopBay)\"\n (dragend)=\"updateItem($event, activity)\"\n >\n \n \n \n \n \n \n \n \n \n \n\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n LOCALE_ID,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport {\n Appointment,\n AppointmentStatus,\n JobcardItem,\n JobcardItemStatus,\n WorkshopBay,\n} from 'src/app/models/model/models';\nimport { Util } from 'src/app/core/util/util';\nimport {\n SortableDirective,\n SortEvent,\n} from '../../sortable/sortable.directive';\nimport { AppointmentDto } from 'src/api/djc-workitem-service';\nimport { WorkshopBayDto } from 'src/api/djc-admin-service';\n\ninterface AppointmentDisplayed extends AppointmentDto {\n apptBayName?: string;\n totalPlannedHrs?: number;\n totalActualHrs?: number;\n totalOfficialHrs?: number;\n arrivalTime?: string;\n isSelected?: boolean;\n}\n\n@Component({\n selector: 'jc-workshop-appointment-list',\n templateUrl: './workshop-appointment-list.component.html',\n styleUrls: ['./workshop-appointment-list.component.scss'],\n})\nexport class WorkshopAppointmentListComponent implements OnChanges {\n @ViewChildren(SortableDirective) headers: QueryList;\n @Input() appointments: AppointmentDto[];\n @Input() workshopBays: WorkshopBayDto[];\n @Input() date: string;\n @Output()\n highlightAppointment: EventEmitter = new EventEmitter();\n appointmentDisplayed: AppointmentDisplayed[];\n select = false;\n statusEnum = AppointmentStatus.StatusEnum;\n\n constructor(\n private elRef: ElementRef,\n protected router: Router,\n protected ngbModal: NgbModal,\n @Inject(LOCALE_ID) protected locale: string\n ) {}\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.appointments || changes.workshopBays) {\n this.generateTable();\n }\n }\n\n generateTable() {\n this.appointmentDisplayed = [];\n this?.appointments.forEach((appointment: AppointmentDisplayed) => {\n appointment.totalPlannedHrs = 0;\n appointment.totalOfficialHrs = 0;\n appointment.totalActualHrs = 0;\n if (appointment.actualReceptionDate) {\n appointment.arrivalTime = appointment.actualReceptionDate;\n } else {\n appointment.arrivalTime = appointment.receptionDate;\n }\n if (appointment.workshopBayId) {\n appointment.apptBayName = this.workshopBays.filter(\n (val) => val.id === appointment.workshopBayId\n )[0].name;\n }\n appointment?.jobcard?.jobcardItems.forEach((item) => {\n if (!item?.deferred) {\n appointment.totalPlannedHrs += item?.estimatedDuration;\n appointment.totalOfficialHrs += item?.officialTime;\n }\n if (item.jobcardItemStatus) {\n item.jobcardItemStatus\n .filter(\n (itemStatus) =>\n itemStatus.status !== JobcardItemStatus.StatusEnum.New &&\n itemStatus.status !== JobcardItemStatus.StatusEnum.Todo\n )\n .filter((itemStatus) => !itemStatus.deleted)\n .forEach((itemStatus) => {\n if (\n itemStatus.duration !== null &&\n itemStatus.duration !== undefined\n ) {\n appointment.totalActualHrs += itemStatus.duration;\n }\n });\n }\n });\n appointment.totalActualHrs = appointment.totalActualHrs / 60;\n this.appointmentDisplayed.push(appointment);\n });\n this.elRef.nativeElement.scrollIntoView();\n }\n\n getName(jobcardItem: JobcardItem): string {\n return jobcardItem.name;\n }\n\n onSort(sortEvent: SortEvent) {\n this.headers.forEach((header) => {\n if (header.jcSortable !== sortEvent.column) {\n header.direction = '';\n }\n });\n Util.sortTable(this.appointmentDisplayed, sortEvent);\n }\n\n highlight(appointment: AppointmentDisplayed) {\n this.appointmentDisplayed.forEach((app) => {\n if (app.id === appointment.id) {\n app.isSelected = true;\n } else {\n app.isSelected = false;\n }\n });\n this.highlightAppointment.emit(appointment.id);\n }\n}\n","\n \n \n \n \n Arrival Date / Time\n (Planned/ Actual)\n \n \n Delivery Date / Time\n (Planned/ Actual)\n \n Repair Status\n Customer Status\n Default Bay\n Activity Details\n Allowed Time (Hrs)\n Total Actual (Hrs)\n Total Offical (Hrs)\n Replacement vehicle\n On hold Status\n \n \n \n \n \n \n \n {{ appointment.receptionDate | date: 'short' }}\n \n \n {{ appointment.actualReceptionDate | date: 'short' }}\n \n \n \n \n {{ appointment.deliveryDate | date: 'short' }}\n \n \n {{ appointment.actualDeliveryDate | date: 'short' }}\n \n \n \n \n \n \n \n Open\n Warn\n Blocked\n \n \n {{ appointment.apptBayName }}\n \n \n Customer: {{ appointment.customerCompany.displayedName }}\n
    \n
    \n \n \n Vehicle: \n {{\n appointment.vehicle.plate\n }}\n {{ appointment.vehicle.vin }}\n
    \n
    \n Booking ID: {{ appointment.id }}\n
    \n \n DMS Order / Job Order: {{ appointment.jobcard.dmsJobOrder }}\n \n /\n {{ appointment.jobcard.dmsToStrClaim }}\n
    \n
    \n \n Activities: \n \n \n {{ activitiesNames }}\n \n \n
    \n \n {{ appointment.totalPlannedHrs | minutes }}\n {{ appointment.totalActualHrs | minutes }}\n {{ appointment.officialTime | minutes }}\n \n \n \n \n \n \n \n \n \n \n \n \n On Hold Reason: \n {{ appointment.onHoldReason.description }}\n \n On Hold\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n
    \n No appointments available for the selected cell.\n
    \n","import {\n Component,\n EventEmitter,\n Inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { PlanningDayRangeComponent } from 'src/app/planning/planning-day-range/planning-day-range.component';\nimport { getLocaleFirstDayOfWeek } from '@angular/common';\nimport {\n OpeningDayPeriods,\n} from 'src/app/models/model/models';\nimport { Subject } from 'rxjs';\nimport { WorkshopBayGrid } from 'src/app/appointment/booking/booking.component';\nimport { WorkspaceTimeService } from 'src/app/workspace/workspace-main-planning/workspace-time/workspace-time.service';\nimport { Util } from 'src/app/core/util/util';\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { AppointmentDto, AppointmentForWorkfileRequestParams, AppointmentsService, JobcardItemDto, JobcardItemSpellDto } from 'src/api/djc-workitem-service';\nimport { ActivityReportService, RetriveActivityDayReportRequestParams } from 'src/api/djc-report-service/api/activityReport.service';\nimport { ActivityReportDayDto, ActivityReportDto } from 'src/api/djc-report-service';\nimport { JobcardItemDisplay } from '../workshop-bay-activity/workshop-bay-activity.component';\n\nexport interface BayOccupancy {\n reports?: ActivityReportDto[];\n value?: number;\n remainingWork?: number;\n activities?: number;\n colStart?: number;\n colEnd?: number;\n dateString?: string;\n noTechnician?: boolean;\n notWorked?: boolean;\n utilizationValue?: number;\n}\n\ninterface Highlighter {\n row?: number;\n colStart?: number;\n colEnd?: number;\n}\n\n@Component({\n selector: 'jc-workshop-bay-occupancy',\n templateUrl: './workshop-bay-occupancy.component.html',\n styleUrls: ['./workshop-bay-occupancy.component.scss'],\n})\nexport class WorkshopBayOccupancyComponent\n extends PlanningDayRangeComponent\n implements OnInit, OnChanges {\n // TODO(Marco)WorkshopBay\n @Input() workshopBays: any[];\n @Input() update: Subject;\n @Input() booking = false;\n @Input() workshopBaysGrid: WorkshopBayGrid[];\n //TODO(Matteo) change type old Appointment\n @Input() newApp: any;\n @Input() oldApp: any;\n @Input() workingWeekdays: string[];\n @Input() displayMode: string;\n @Output() emitUncoveredActivities: EventEmitter<\n JobcardItemDto[]\n > = new EventEmitter();\n reportDays: ActivityReportDayDto[];\n displayAppointments: boolean;\n selectedAppointment: AppointmentDto;\n highlightSelections: Highlighter[] = [];\n periods: OpeningDayPeriods;\n spellType: 'filter' | 'all';\n dateString: string;\n workshopId: number;\n\n constructor(\n protected router: Router,\n protected ngbModal: NgbModal,\n protected workshopService: WorkshopAdminService,\n protected activityReportService: ActivityReportService,\n private appointmentService: AppointmentsService,\n private userService: UserAdminService,\n private workspaceTimeService: WorkspaceTimeService,\n @Inject(LOCALE_ID) protected locale: string\n ) {\n super(router, ngbModal, workshopService, locale);\n }\n\n ngOnInit(): void {\n this.dateString = moment(this.date).format('YYYY-MM-DD');\n this.workshopService.getWorkshop().subscribe((workshop) => {\n this.workspaceTimeService.workingWeekdays = [];\n workshop.openingDays.forEach((day) => {\n if (day.periods && day.periods.length > 0) {\n const weekday = Util.enumToWeekday(day.weekday);\n this.weekdaysWorked.push(weekday);\n this.workspaceTimeService.workingWeekdays.push(day.weekday);\n }\n });\n });\n\n if (this.update != null) {\n this.update.subscribe((apps) => {\n this.initCols();\n this.initBays();\n this.newApp = apps.newApp;\n this.oldApp = apps.oldApp;\n this.calculateOccupancy(this.reportDays, apps.newApp, apps.oldApp);\n });\n }\n this.workshopService.getWorkshopPeriods().subscribe((periods) => {\n this.periods = periods[0];\n });\n }\n\n reloadButton() {\n this.generateGrid();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.date || changes.weekdaysWorked) {\n this.initCols();\n this.initBays();\n this.generateGrid(this.newApp, this.oldApp);\n if (!this.booking && this.selectedAppointment) {\n this.highlightCells(this.selectedAppointment.id);\n } else {\n this.appointments = [];\n this.highlightSelections = [];\n }\n }\n }\n\n initBays() {\n let offsetLines = 0;\n if (!this.workshopBaysGrid) {\n this.workshopBaysGrid = JSON.parse(JSON.stringify(this.workshopBays));\n }\n\n this.workshopBaysGrid.forEach((bay) => {\n if (bay.id) {\n bay.occupancies = [];\n let numCol = 0;\n let date = this.startDate;\n while (date <= this.endDate) {\n if (\n this.workingWeekdays.includes(\n Util.weekdayToEnum(moment(date).weekday(), this.locale)\n )\n ) {\n if (!this.booking) {\n bay.lines = 2;\n bay.offsetLines = 2;\n }\n bay.bayUtiloffsetLines = offsetLines;\n offsetLines += 2;\n bay.occupancies.push({\n reports: [],\n colStart: numCol + 1,\n colEnd: numCol + 2,\n value: 0,\n remainingWork: 0,\n activities: 0,\n notWorked: false,\n noTechnician: bay.technicians?.length === 0,\n dateString: moment(date).format('YYYY-MM-DD'),\n });\n numCol++;\n }\n date = moment(date).add(1, 'days').toDate();\n }\n }\n });\n }\n generateGrid(newApp: AppointmentDto = null, oldApp: AppointmentDto = null) {\n if (this.workshopBays) {\n this.initBays();\n this.userService.getUser().subscribe((user) => {\n const params: RetriveActivityDayReportRequestParams = {\n fromDate: moment(this.startDate).format('YYYY-MM-DD'),\n toDate: moment(this.endDate).format('YYYY-MM-DD'),\n workshopId: user.workshopId,\n authorization: this.userService.accessToken,\n };\n this.activityReportService\n .retriveActivityDayReport(params)\n .subscribe((reports) => {\n // Check if day worked\n this.reportDays = reports.filter((report) =>\n this.workingWeekdays.includes(\n Util.weekdayToEnum(moment(report.day).weekday(), this.locale)\n )\n );\n this.calculateOccupancy(this.reportDays, newApp, oldApp);\n });\n });\n }\n }\n\n calculateOccupancy(\n reportDays: ActivityReportDayDto[],\n newApp: AppointmentDto = null,\n oldApp: AppointmentDto = null\n ) {\n const reports = JSON.parse(JSON.stringify(reportDays));\n reports.forEach((reportDay: ActivityReportDayDto) => {\n const day = this.days.find((arDay) =>\n moment(arDay.date).isSame(moment(reportDay.day), 'day')\n );\n if (day) {\n reportDay.reports\n .filter((r) => !r.workshopUserId)\n .forEach((report) => {\n const bay = this.workshopBaysGrid.find((b) =>\n report.workshopBayIds?.includes(b.id)\n );\n if (bay) {\n if (!bay.occupancies) {\n bay.occupancies = [];\n }\n const occupancy = bay.occupancies?.find(\n (o) => o.colStart === this.days.indexOf(day) + 1\n );\n if (occupancy) {\n if (\n occupancy.reports\n .map((r) => r.workshopBayIds)\n .indexOf(report.workshopBayIds) < 0\n ) {\n occupancy.reports.push(report);\n }\n }\n }\n });\n }\n });\n\n this.workshopBaysGrid.forEach((bay) => {\n if (bay.id) {\n bay.occupancies?.forEach((occupancy) => {\n occupancy.value = 0;\n if (occupancy.reports?.length > 0) {\n occupancy.reports.forEach((report) => {\n if (\n !isNaN(report.hoursAvailable) &&\n !isNaN(report.hoursPlanned) &&\n report.hoursAvailable > 0\n ) {\n let nbCurrentActivities: number = this.manageTimeFromApp(\n 'add',\n newApp,\n occupancy,\n report\n );\n nbCurrentActivities -= this.manageTimeFromApp(\n 'reduce',\n oldApp,\n occupancy,\n report\n );\n occupancy.activities = isNaN(report.nbActivities)\n ? 0 + nbCurrentActivities\n : report.nbActivities + nbCurrentActivities;\n\n occupancy.value += report.hoursPlanned / report.hoursAvailable;\n occupancy.utilizationValue =\n occupancy.value / occupancy.reports.length;\n /* To show the actual value of working unit .\n even if negative value comes display the same value */\n // 1hr = 10WU\n occupancy.remainingWork +=\n (report.hoursAvailable *\n (bay.maximumUtilisation\n ? bay.maximumUtilisation / 100\n : 1) -\n report.hoursPlanned) /\n 60 /\n 6;\n }\n });\n occupancy.value =\n occupancy.value /\n occupancy.reports.length /\n (bay.maximumUtilisation ? bay.maximumUtilisation / 100 : 1);\n\n occupancy.remainingWork = Math.round(occupancy.remainingWork);\n if (occupancy.value === 0 && occupancy.remainingWork === 0) {\n occupancy.notWorked = true;\n }\n }\n });\n }\n });\n }\n\n /**\n * Calculate the number of activities added to the bay occupancy.\n * And adjust the percentage and remaining Working units.\n *\n * @param type : add or reduce (to ad time or reduce time from the origin)\n * @param appointment : appointment\n * @param occupancy : occupancy object\n * @param report : report object\n * @returns : number of activities to add to the report\n */\n manageTimeFromApp(\n type: 'add' | 'reduce',\n appointment: AppointmentDto,\n occupancy: BayOccupancy,\n report: ActivityReportDto\n ): number {\n const spells: JobcardItemSpellDto[] = [];\n const items: JobcardItemDto[] = [];\n\n appointment?.jobcard.jobcardItems.forEach((item) => {\n item.jobcardItemSpells?.forEach((spell) => {\n if (\n moment(spell.startDate).isSame(\n moment(occupancy.dateString),\n 'days'\n ) &&\n report.workshopBayIds.includes(spell.workshopBayId)\n ) {\n spells.push({ ...spell });\n if (items.map((it) => it.id).indexOf(item.id) === -1) {\n items.push(item);\n }\n }\n });\n });\n\n if (spells?.length > 0) {\n if (type === 'reduce') {\n const sum = spells\n .filter((spell) => !isNaN(spell.estimatedDuration))\n .map((spell) => spell.estimatedDuration)\n .reduce((newSum, current) => newSum + current * 60, 0);\n report.hoursPlanned -= sum;\n } else {\n const sum = spells\n .filter((spell) => !isNaN(spell.estimatedDuration))\n .map((spell) => spell.estimatedDuration)\n .reduce((newSum, current) => newSum + current * 60, 0);\n report.hoursPlanned += sum;\n }\n }\n\n return items ? items.length : 0;\n }\n\n displayContents(\n type: 'filter' | 'all',\n workshopBay?: WorkshopBayGrid,\n occupancy?: BayOccupancy,\n selectedDate?: string\n ) {\n this.spellType = type;\n if (!this.booking) {\n let date = occupancy ? occupancy.dateString : selectedDate;\n this.userService.getUser().subscribe((user) => {\n const params: AppointmentForWorkfileRequestParams = {\n view: 'planning',\n startDate: date,\n endDate: date,\n applicationToken: this.userService.newToken,\n authorization: this.userService.accessToken,\n };\n this.appointmentService\n .appointmentForWorkfile(params)\n .subscribe((appointments: any[]) => {\n this.emitUncoveredActivities.emit([]);\n this.appointments = [];\n this.highlightSelections = [];\n if (type === 'filter') {\n this.highlightSelections.push({\n row: workshopBay.bayUtiloffsetLines,\n colStart: occupancy.colStart,\n colEnd: occupancy.colStart,\n });\n\n date = moment(date)\n .set({\n hour: 0,\n minute: 0,\n seconds: 0,\n millisecond: 0,\n })\n .toISOString();\n } else {\n this.highlightSelections.push({\n colStart: this.dateToColOnSelectedRange(new Date(selectedDate)),\n colEnd: this.dateToColOnSelectedRange(new Date(selectedDate)),\n });\n }\n\n appointments?.forEach((appointment) => {\n const activityBays: number[] = [];\n let valid = false;\n appointment?.jobcard?.jobcardItems.forEach(\n (item: JobcardItemDisplay, index: number) => {\n item.jobcardItemSpells?.forEach((spell) => {\n if (spell.technicians?.length > 0) {\n for (let i = 0; i < spell.technicians?.length; i++) {\n const tech = spell.technicians[i];\n if (\n this.isSpellInSelectedDateAndBay(\n item,\n spell,\n date,\n tech.startDate ? tech.startDate : spell.startDate,\n tech.estimatedDuration\n ? tech.estimatedDuration\n : spell.estimatedDuration\n )\n ) {\n if (type === 'filter') {\n activityBays.push(spell.workshopBayId);\n } else {\n valid = true;\n }\n }\n }\n } else {\n if (\n this.isSpellInSelectedDateAndBay(\n item,\n spell,\n date,\n spell.startDate,\n spell.estimatedDuration\n )\n ) {\n if (type === 'filter') {\n activityBays.push(spell.workshopBayId);\n } else {\n valid = true;\n }\n }\n }\n });\n\n if (index === appointment?.jobcard?.jobcardItems.length - 1) {\n if (type === 'filter') {\n if (activityBays.includes(workshopBay.id)) {\n this.appointments.push(appointment);\n }\n } else {\n if (valid) {\n this.appointments.push(appointment);\n }\n }\n }\n }\n );\n });\n\n this.displayAppointments = true;\n //this.viewChildren.scrollIntoView();\n });\n });\n }\n }\n\n isSpellInSelectedDateAndBay(\n item: JobcardItemDisplay,\n spell: JobcardItemSpellDto,\n date: string,\n start: string,\n estimatedDuration: number\n ) {\n const end = start\n ? this.workspaceTimeService.setEndDateOnWeek(\n start,\n estimatedDuration,\n this.periods\n )\n : undefined;\n if (end) {\n item.endDate = end.toISOString();\n const endDate = moment(item.endDate)\n .set({\n hour: 0,\n minute: 0,\n seconds: 0,\n millisecond: 0,\n })\n .toISOString();\n\n const startDate = moment(start)\n .set({\n hour: 0,\n minute: 0,\n seconds: 0,\n millisecond: 0,\n })\n .toISOString();\n\n if (\n spell.workshopBayId &&\n (moment(startDate).isSame(moment(date)) ||\n moment(endDate).isSame(moment(date)) ||\n (moment(date).isSameOrBefore(moment(endDate)) &&\n moment(date).isSameOrAfter(moment(startDate))))\n ) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n highlightCells(event: number) {\n this.selectedAppointment = this.appointments.filter(\n (app) => app.id === event\n )[0];\n if (this.selectedAppointment) {\n this.highlightSelections = [];\n const nonHighlightedItems: JobcardItemDto[] = [];\n this.selectedAppointment?.jobcard?.jobcardItems?.forEach(\n (item, index) => {\n item.jobcardItemSpells.forEach((spell) => {\n let row = this.workshopBaysGrid.filter(\n (bay) => bay.id === spell.workshopBayId\n )[0]?.bayUtiloffsetLines;\n if (row === undefined) {\n row = -1;\n }\n if (spell.technicians?.length > 0) {\n spell.technicians?.forEach((tech) => {\n let colStart = this.dateToColOnSelectedRange(\n new Date(tech.startDate)\n );\n const colEnd = this.dateToColOnSelectedRange(\n this.workspaceTimeService.setEndDateOnWeek(\n tech.startDate,\n tech.estimatedDuration,\n this.periods\n )\n );\n if (\n colStart === Infinity ||\n colStart === 0 ||\n colEnd === Infinity ||\n colEnd === 0\n ) {\n nonHighlightedItems.push(item);\n if (colStart === 0 && colEnd > 0) {\n colStart = 1;\n }\n }\n this.highlightSelections.push({ row, colStart, colEnd });\n if (\n index ===\n this.selectedAppointment?.jobcard?.jobcardItems.length - 1\n ) {\n this.emitUncoveredActivities.emit(nonHighlightedItems);\n }\n });\n } else {\n let colStart = this.dateToColOnSelectedRange(\n new Date(spell.startDate)\n );\n const colEnd = this.dateToColOnSelectedRange(\n this.workspaceTimeService.setEndDateOnWeek(\n spell.startDate,\n spell.estimatedDuration,\n this.periods\n )\n );\n if (\n colStart === Infinity ||\n colStart === 0 ||\n colEnd === Infinity ||\n colEnd === 0\n ) {\n nonHighlightedItems.push(item);\n if (colStart === 0 && colEnd > 0) {\n colStart = 1;\n }\n }\n this.highlightSelections.push({ row, colStart, colEnd });\n if (\n index ===\n this.selectedAppointment?.jobcard?.jobcardItems.length - 1\n ) {\n this.emitUncoveredActivities.emit(nonHighlightedItems);\n }\n }\n });\n }\n );\n }\n }\n\n protected confirm() {\n /* Nothing to do. */\n }\n\n protected initCols() {\n this.days = [];\n const startDate = new Date(this.startDate);\n const endDate = new Date(this.endDate);\n const deltaDays =\n moment([\n endDate.getFullYear(),\n endDate.getMonth(),\n endDate.getDate(),\n ]).diff(\n moment([\n startDate.getFullYear(),\n startDate.getMonth(),\n startDate.getDate(),\n ]),\n 'days'\n ) + 1;\n this.shortFormat = deltaDays > 10;\n this.gridTemplateColumns = 'auto';\n // const date = moment(this.startDate).add(-1, 'days');\n let date = startDate;\n while (date <= endDate) {\n if (\n this.workingWeekdays.includes(\n Util.weekdayToEnum(moment(date).weekday(), this.locale)\n )\n ) {\n this.days.push({\n date,\n dateString: moment(date).format('YYYY-MM-DD'),\n notWorked:\n this.weekdaysWorked.indexOf(\n getLocaleFirstDayOfWeek(this.locale) === 1\n ? moment(date).add(1, 'days').weekday()\n : moment(date).weekday()\n ) === -1,\n });\n this.gridTemplateColumns += ` minmax(0, 1fr)`;\n }\n date = moment(date).add(1, 'days').toDate();\n }\n }\n\n private dateToColOnSelectedRange(\n date: Date,\n startDate = this.startDate\n ): number {\n let col = moment(date).diff(\n moment(startDate)\n .set('hour', 0)\n .set('minute', 0)\n .set('second', 0)\n .set('millisecond', 0),\n 'day'\n );\n let nonWorkingDays = 0;\n for (\n const d = new Date(startDate);\n d.getDate() <= new Date(date).getDate();\n d.setDate(d.getDate() + 1)\n ) {\n if (\n !this.workingWeekdays.includes(\n Util.weekdayToEnum(moment(d).weekday(), this.locale)\n )\n ) {\n nonWorkingDays++;\n }\n }\n col = col - nonWorkingDays;\n if (col < 0 || date < startDate) {\n return 0;\n } else if (col + 1 > this.days.length) {\n return Infinity;\n }\n return col + 1;\n }\n}\n","
    \n
    \n \n \n \n
    Green: Available
    \n
    Yellow: Limited capacity
    \n
    Red: Near or over capacity
    \n
    Grey: Unproductive shift
    \n
    \n \n \n \n \n \n
    \n \n \n {{\n day.date | date: 'd'\n }}\n {{\n day.date | date: 'E d'\n }}\n \n \n \n \n \n \n
    \n \n
    {{ workshopBay.name }}
    \n \n\n \n \n \n \n = 0.85 &&\n !occupancy.noTechnician &&\n !occupancy.notWorked,\n 'bg-warning':\n occupancy.value >= 0.5 &&\n occupancy.value < 0.85 &&\n !occupancy.noTechnician &&\n !occupancy.notWorked,\n 'bg-success':\n occupancy.value < 0.5 &&\n !occupancy.noTechnician &&\n !occupancy.notWorked\n }\"\n class=\"m-1 rounded text-center text-white cursor-pointer user-select-none\"\n [style.z-index]=\"0\"\n (click)=\"displayContents('filter', workshopBay, occupancy, null)\"\n >\n \n
    \n {{ occupancy.remainingWork }} WU\n
    \n {{ occupancy.activities }}\n Activities\n \n
    \n \n \n = occupancy.colStart ||\n selected.colStart === occupancy.colStart) &&\n !(occupancy.colStart < selected.colStart)\n : occupancy.colStart === selected.colStart\n \"\n class=\"m-1 rounded\"\n >\n \n \n \n \n\n
    \n \n
    \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AzureService, GetAzureSasTokenRequestParams } from 'src/api/djc-admin-service/api/azure.service';\nimport { UserAdminService } from 'src/app/core/user/user-admin.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'jc-workshop-logo',\n templateUrl: './workshop-logo.component.html',\n styleUrls: ['./workshop-logo.component.scss'],\n})\nexport class WorkshopLogoComponent implements OnInit {\n @Input() src: string;\n @Input() update: Subject;\n path: string;\n token: string;\n\n constructor(private azureService: AzureService, private userService: UserAdminService) {}\n\n ngOnInit() {\n this.getAzurePath();\n if (this.update != null) {\n this.update.subscribe((path) => {\n // This will be logged every time the subject.next is called.\n this.path = path;\n });\n }\n }\n\n getAzurePath() {\n const params: GetAzureSasTokenRequestParams = {\n authorization: this.userService.accessToken,\n };\n this.azureService.getAzureSasToken(params).subscribe((token) => {\n this.path = this.src + '?' + token.key;\n });\n }\n}\n","\"Workshop\n\n \n \n \n
    No logo found
    \n
    \n","import { Component } from '@angular/core';\nimport { Appointment, Jobcard } from 'src/app/models/model/models';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { environment } from 'src/environments/environment';\n@Component({\n selector: 'jc-appointment-finalize-modal',\n templateUrl: './appointment-finalize-modal.component.html',\n styleUrls: ['./appointment-finalize-modal.component.scss'],\n})\nexport class AppointmentFinalizeModalComponent {\n appointment: Appointment;\n orderTypes = Jobcard.DmsOrderTypeEnum;\n environment = environment;\n validationConfirmed = false;\n msg: string;\n label: string;\n message: string;\n readyToInvoiceDocumentStatus = false;\n constructor(public activeModal: NgbActiveModal) {}\n}\n","
    \n

    Confirmation

    \n \n ×\n \n
    \n
    \n
    {{ msg }}
    \n
    \n \n \n
    \n \n \n \n
    \n\n
    \n \n Cancel\n \n \n OK\n \n \n OK\n \n
    \n","import { Injectable } from '@angular/core';\nimport { AppointmentStatus } from 'src/app/models/model/models';\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WorkfileService {\n searchFilter = '';\n appointmentStatusKeyFilter: 'all' | AppointmentStatus.StatusEnum = 'all';\n fromDate: NgbDate | null;\n endDate: NgbDate | null;\n workshopBayIdFilter: 'all' | number = 'all';\n workshopUserIdFilter: 'all' | string = 'all';\n unitDownValue: 'all' | 'Active' | 'Down' = 'all';\n}\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\r\nimport { RouterStateSnapshot } from '@angular/router';\r\nimport {\r\n JobcardItemTechnician,\r\n OpeningDayPeriods,\r\n} from 'src/app/models/model/models';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as Moment from 'moment';\r\nimport { DateRange, extendMoment } from 'moment-range';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { Util } from 'src/app/core/util/util';\r\nimport { WorkshopAdminService } from 'src/app/core/workshop/workshop-admin.service';\r\nimport { WorkshopUsersAdminService } from 'src/app/core/workshop-user-admin/workshop-user-admin.service';\r\nimport { AppointmentDto, JobcardDto, JobcardItemDto, JobcardItemSpellDto } from 'src/api/djc-workitem-service';\r\nimport { WorkshopUserDto } from 'src/api/djc-admin-service';\r\nimport { AppointmentGrid } from '../../../planning/planning-day/planning-day.component';\r\n\r\nconst moment = extendMoment(Moment);\r\n\r\ninterface DropZone {\r\n line?: number;\r\n colStart?: number;\r\n colEnd?: number;\r\n workshopUserId?: string;\r\n}\r\n\r\ninterface JobcardItemSplit extends JobcardItemDto {\r\n appointmentSplit?: AppointmentDto;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WorkspaceTimeService {\r\n periods?: OpeningDayPeriods;\r\n workingWeekdays: string[];\r\n endDates: any[] = [];\r\n\r\n jobcardItemArray: JobcardItemSplit[] = [];\r\n nextState: RouterStateSnapshot = null;\r\n\r\n workspaceJobcardSubject: any = new Subject();\r\n workspaceJobcardSaveSubject: any = new Subject();\r\n getMaximizeJobcard = this.workspaceJobcardSubject.asObservable();\r\n getSaveJobcard = this.workspaceJobcardSaveSubject.asObservable();\r\n selClockingUser = false;\r\n\r\n constructor(\r\n protected workshopService: WorkshopAdminService,\r\n private workshopUsersService: WorkshopUsersAdminService,\r\n private toastrService: ToastrService,\r\n @Inject(LOCALE_ID) protected locale: string\r\n ) {\r\n this.workshopService.getWorkshopPeriods().subscribe((periods) => {\r\n this.periods = periods[0];\r\n });\r\n }\r\n\r\n //Initially was used for day view; latest -> deprecated!\r\n setEndDate(\r\n startDate: string,\r\n duration: number,\r\n periods?: OpeningDayPeriods,\r\n date?: Date | string\r\n ) {\r\n if (!duration) {\r\n duration = 15;\r\n }\r\n if (!periods) {\r\n periods = this.periods;\r\n }\r\n const start = new Date(startDate);\r\n let end: Date = new Date(startDate);\r\n //To work on activities for multiple days and calculation of end date/time within workshop working hours\r\n const bayDuration = this.calculateBayDuration(startDate, periods);\r\n let currentDayAvailableDuration: number = moment(start)\r\n .set({\r\n hour: new Date(periods?.end).getHours(),\r\n minute: new Date(periods?.end).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n .diff(\r\n moment(startDate).set('seconds', 0).set('millisecond', 0),\r\n 'minutes'\r\n );\r\n if (new Date(start).getDate() < new Date(date).getDate()) {\r\n //Sum up all hrs consumed on previous dates\r\n const numberOfPrevDays = this.getAccurateNumberOfDays(\r\n duration,\r\n bayDuration\r\n );\r\n for (let i = 1; i < numberOfPrevDays; i++) {\r\n currentDayAvailableDuration =\r\n currentDayAvailableDuration +\r\n moment(date)\r\n .set({\r\n hour: new Date(periods?.end).getHours(),\r\n minute: new Date(periods?.end).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n .diff(\r\n moment(date).set({\r\n hour: new Date(periods?.start).getHours(),\r\n minute: new Date(periods?.start).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n }),\r\n 'minutes'\r\n );\r\n }\r\n }\r\n\r\n if (\r\n duration < currentDayAvailableDuration &&\r\n new Date(start).getDate() === new Date(date).getDate()\r\n ) {\r\n end = moment(startDate).add(duration, 'minutes').toDate();\r\n } else if (\r\n duration > currentDayAvailableDuration ||\r\n (duration < currentDayAvailableDuration &&\r\n new Date(start).getDate() !== new Date(date).getDate())\r\n ) {\r\n if (\r\n moment(startDate)\r\n .add(duration, 'minutes')\r\n .isAfter(\r\n moment(start).set({\r\n hour: new Date(periods?.end).getHours(),\r\n minute: new Date(periods?.end).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n )\r\n ) {\r\n end = moment(startDate)\r\n .add(this.getAccurateNumberOfDays(duration, bayDuration), 'day')\r\n .set({\r\n hour: new Date(periods?.start).getHours(),\r\n minute: new Date(periods?.start).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n .toDate();\r\n\r\n let remainingDuration = duration - currentDayAvailableDuration;\r\n if (duration - currentDayAvailableDuration > bayDuration) {\r\n remainingDuration =\r\n duration -\r\n currentDayAvailableDuration -\r\n Math.round(duration / bayDuration) *\r\n (duration - currentDayAvailableDuration);\r\n } else {\r\n remainingDuration = duration - currentDayAvailableDuration;\r\n }\r\n end = moment(end).add(Math.abs(remainingDuration), 'minutes').toDate();\r\n } else {\r\n end = new Date(start);\r\n }\r\n }\r\n return end;\r\n }\r\n\r\n getAccurateNumberOfDays(duration: number, bayDuration: number): number {\r\n const res = duration / bayDuration;\r\n return Math.ceil(res);\r\n }\r\n\r\n calculateBayDuration(startDate: string, periods?: OpeningDayPeriods) {\r\n return moment(startDate)\r\n .set({\r\n hour: new Date(periods?.end).getHours(),\r\n minute: new Date(periods?.end).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n .diff(\r\n moment(startDate).set({\r\n hour: new Date(periods?.start).getHours(),\r\n minute: new Date(periods?.start).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n }),\r\n 'minutes'\r\n );\r\n }\r\n\r\n setEndDateOnWeek(\r\n startDate: string,\r\n duration: number,\r\n periods?: OpeningDayPeriods\r\n ) {\r\n if (!duration) {\r\n duration = 15;\r\n }\r\n if (!periods) {\r\n periods = this.periods;\r\n }\r\n const bayDuration = this.calculateBayDuration(startDate, periods);\r\n let end = moment(startDate).add(duration, 'minutes').toDate();\r\n if (\r\n moment(end) <=\r\n moment(startDate).set({\r\n hour: new Date(periods?.end).getHours(),\r\n minute: new Date(periods?.end).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n ) {\r\n end = moment(startDate).add(duration, 'minutes').toDate();\r\n } else {\r\n let remainingHrs =\r\n duration -\r\n moment(startDate)\r\n .set({\r\n hour: new Date(periods?.end).getHours(),\r\n minute: new Date(periods?.end).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n .diff(\r\n moment(startDate).set({\r\n seconds: 0,\r\n millisecond: 0,\r\n }),\r\n 'minutes'\r\n );\r\n if (remainingHrs < bayDuration) {\r\n end = moment(startDate)\r\n .add(1, 'day')\r\n .set({\r\n hour: new Date(periods?.start).getHours(),\r\n minute: new Date(periods?.start).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n .add(Math.abs(remainingHrs), 'minutes')\r\n .toDate();\r\n } else {\r\n remainingHrs =\r\n remainingHrs -\r\n (this.getAccurateNumberOfDays(duration, bayDuration) - 1) *\r\n bayDuration;\r\n end = moment(startDate)\r\n .add(this.getAccurateNumberOfDays(duration, bayDuration), 'day')\r\n .set({\r\n hour: new Date(periods?.start).getHours(),\r\n minute: new Date(periods?.start).getMinutes(),\r\n seconds: 0,\r\n millisecond: 0,\r\n })\r\n .add(remainingHrs, 'minutes')\r\n .toDate();\r\n }\r\n }\r\n if (moment(new Date(end)).isAfter(moment(new Date(startDate)), 'days')) {\r\n let nonWorkingDays = 0;\r\n const d = moment(new Date(startDate));\r\n const p = moment(new Date(end));\r\n while (d.isSameOrBefore(p)) {\r\n if (\r\n !this.workingWeekdays?.includes(\r\n Util.weekdayToEnum(moment(p).weekday(), this.locale)\r\n )\r\n ) {\r\n nonWorkingDays++;\r\n p.add(1, 'days');\r\n }\r\n d.add(1, 'days');\r\n }\r\n if (nonWorkingDays === 0) {\r\n return end;\r\n } else {\r\n return moment(end).add(nonWorkingDays, 'day').toDate();\r\n }\r\n } else {\r\n return end;\r\n }\r\n }\r\n\r\n techHasDuplicatedUnscheduled(\r\n appointment: AppointmentGrid,\r\n dropZone: DropZone,\r\n workshopUsers: WorkshopUserDto[]\r\n ): boolean {\r\n // prevent unscheduled activity duplicates\r\n if (dropZone?.colStart == null) {\r\n // here we use == to test for both undefined and null\r\n // no colStart means we are dropping on technician jobcard\r\n let unscheduledOccurrence = 0;\r\n appointment?.jobcard?.jobcardItems?.forEach((jobItem) => {\r\n if (jobItem.id === appointment?.jobcardItem?.id) {\r\n jobItem.jobcardItemSpells.forEach((spell) => {\r\n if (spell.id === appointment?.jobcardItemSpell?.id) {\r\n unscheduledOccurrence = this.getTechUnscheduledAssignment(\r\n dropZone?.workshopUserId,\r\n spell\r\n );\r\n }\r\n });\r\n }\r\n });\r\n if (unscheduledOccurrence > 0) {\r\n // if the technician already had this unscheduled activity before the save\r\n // retrieve workshopUser first name and last name for the warning popup message\r\n let workshopUserFullName = '';\r\n workshopUsers.forEach((user) => {\r\n if (user.id === dropZone?.workshopUserId) {\r\n workshopUserFullName = user.firstName + ' ' + user.lastName;\r\n }\r\n });\r\n this.toastrService.error(\r\n Util.stringFormat(\r\n $localize`[0] is already assigned to this unscheduled activity [1]. To remove it from the calendar, select the 3 dots and click Remove.`,\r\n workshopUserFullName,\r\n appointment.jobcardItem.name\r\n )\r\n );\r\n return true; // prevent the save\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n techsHaveDuplicatedUnscheduled(appointment: AppointmentDto): boolean {\r\n let techsHaveDuplicated = false;\r\n appointment?.jobcard?.jobcardItems?.forEach((jobItem) => {\r\n const techUnscheduledMap = new Map();\r\n jobItem?.jobcardItemSpells?.forEach((spell) => {\r\n spell?.technicians?.forEach((tech) => {\r\n if (!techUnscheduledMap.has(tech.workshopUserId)) {\r\n techUnscheduledMap.set(\r\n tech.workshopUserId,\r\n this.getTechUnscheduledAssignment(tech.workshopUserId, spell)\r\n );\r\n }\r\n });\r\n });\r\n for (const entry of techUnscheduledMap.entries()) {\r\n if (entry[1] > 1) {\r\n this.toastrService.error(\r\n $localize`At least one technician is already allocated to one or more unscheduled activities. Please correct current selection.`\r\n );\r\n techsHaveDuplicated = true;\r\n }\r\n }\r\n });\r\n return techsHaveDuplicated;\r\n }\r\n\r\n removeFromBookingAssignment(removed: AppointmentGrid) {\r\n // identify on which jobcardItem and which technician assigment the removal occurred\r\n const associatedJobItemName = removed.jobcardItem.name;\r\n const associatedJobItemId = removed.jobcardItem.tempJId;\r\n const removedWorkshopUserId = removed.technician.workshopUserId;\r\n // remove the assignment from the appointment data\r\n removed.jobcard.jobcardItems.forEach((jobItem) => {\r\n // parse jobcardItems until we find the associated jobcardItem\r\n if (\r\n jobItem.name === associatedJobItemName ||\r\n (!jobItem?.id && jobItem.tempJId === associatedJobItemId)\r\n ) {\r\n jobItem.jobcardItemSpells.forEach((spell) => {\r\n let removeIndex = 0;\r\n spell.technicians.forEach((tech) => {\r\n // parse technicians assignments until we find the removed one\r\n if (tech.workshopUserId === removedWorkshopUserId) {\r\n spell.technicians.splice(removeIndex, 1);\r\n }\r\n removeIndex++;\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n removeAssignment(removed: AppointmentGrid) {\r\n // identify on which jobcardItem and which technician assigment the removal occurred\r\n const associatedJobItemId = removed.jobcardItem.id;\r\n const associatedSpell = removed.jobcardItemSpell.id;\r\n const removedAssignmentId = removed.technician.linkId;\r\n // remove the assignment from the appointment data\r\n if (associatedJobItemId) {\r\n removed.jobcard.jobcardItems.forEach((jobItem) => {\r\n // parse jobcardItems until we find the associated jobcardItem\r\n if (jobItem.id === associatedJobItemId) {\r\n jobItem.jobcardItemSpells.forEach((spell) => {\r\n if (spell.id === associatedSpell) {\r\n let removeIndex = 0;\r\n spell.technicians.forEach((tech) => {\r\n // parse technicians assignments until we find the removed one\r\n if (tech.linkId === removedAssignmentId) {\r\n spell.technicians.splice(removeIndex, 1);\r\n }\r\n removeIndex++;\r\n });\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.removeFromBookingAssignment(removed);\r\n }\r\n }\r\n\r\n checkSpellTimeCompatibility(appointment: AppointmentDto) {\r\n let violated = false;\r\n appointment?.jobcard?.jobcardItems?.forEach((jobcardItem) => {\r\n let totalSpellTime = 0;\r\n jobcardItem?.jobcardItemSpells?.forEach((spell) => {\r\n const totalDuration: number = spell?.technicians\r\n ?.map((technician) => technician?.estimatedDuration)\r\n .reduce((accumulator, duration) => accumulator + duration, 0);\r\n if (\r\n totalDuration !== spell?.estimatedDuration &&\r\n spell?.technicians?.length > 0\r\n ) {\r\n violated = true;\r\n }\r\n totalSpellTime += spell?.estimatedDuration;\r\n });\r\n if (totalSpellTime !== jobcardItem?.estimatedDuration) {\r\n violated = true;\r\n }\r\n });\r\n return violated;\r\n }\r\n\r\n recalculateAllowedTime(appointment: AppointmentDto) {\r\n appointment.jobcard.estimatedDuration = 0;\r\n appointment?.jobcard?.jobcardItems?.forEach((jobcardItem) => {\r\n jobcardItem?.jobcardItemSpells?.forEach((spell) => {\r\n if (spell?.technicians?.length > 0) {\r\n jobcardItem.estimatedDuration = 0;\r\n spell.estimatedDuration = 0;\r\n spell.technicians.forEach((tech) => {\r\n // Bug 172243: PI J UAT: Planned time lost, and activity got automatically assigned to a technician\r\n if (tech?.estimatedDuration) {\r\n spell.estimatedDuration =\r\n spell.estimatedDuration + tech.estimatedDuration;\r\n }\r\n });\r\n jobcardItem.estimatedDuration =\r\n jobcardItem.estimatedDuration + spell.estimatedDuration;\r\n }\r\n });\r\n appointment.jobcard.estimatedDuration =\r\n appointment.jobcard.estimatedDuration + jobcardItem.estimatedDuration;\r\n });\r\n return appointment;\r\n }\r\n\r\n happensDuringUnavailableTime(\r\n activityStartDate: Date,\r\n activityEndDate: Date,\r\n workshopUserId: string,\r\n estimatedDuration: number\r\n ): Promise {\r\n return new Promise((resolve) => {\r\n let notDuringProductive = false;\r\n const newRange = moment.range(\r\n moment(activityStartDate),\r\n moment(activityEndDate)\r\n );\r\n this.workshopUsersService\r\n .getEndOfItem(workshopUserId, activityStartDate, estimatedDuration)\r\n .subscribe((end) => {\r\n // end : true ending of this spell\r\n let currentDate = activityStartDate;\r\n let hasOverlappedProductiveTime = false;\r\n do {\r\n // Search until the true end of spell if it's interrupted by non productive or end shift\r\n this.workshopUsersService\r\n .userWorkTime(workshopUserId, currentDate)\r\n .subscribe((worktimes) => {\r\n worktimes.sort((a, b) => a.range.start.diff(b.range.start));\r\n worktimes.forEach((worktime) => {\r\n if (\r\n hasOverlappedProductiveTime ||\r\n (worktime.range.overlaps(newRange) &&\r\n worktime.type === 'productive')\r\n ) {\r\n // Keep in mind if spell ever occurs during a productive shift\r\n hasOverlappedProductiveTime = true;\r\n }\r\n const intersect = worktime.range.intersect(newRange);\r\n if (\r\n (worktime.range.overlaps(newRange) &&\r\n worktime.type !== 'productive') ||\r\n (intersect != null &&\r\n intersect < newRange &&\r\n worktime.type === 'productive')\r\n ) {\r\n // if newspell occurs during non productive time OR if it overflow from a productive time (means it happens a bit during productive time => it has been stopped)\r\n notDuringProductive = true;\r\n }\r\n });\r\n currentDate = new Date(\r\n moment(currentDate)\r\n .add(1, 'day')\r\n .format('YYYY-MM-DD HH:mm:ss')\r\n );\r\n });\r\n } while (moment(currentDate).isBefore(end));\r\n if (!hasOverlappedProductiveTime) {\r\n // Use the knowlegde that if it has ever happened on a productive time or not\r\n notDuringProductive = true;\r\n }\r\n resolve(notDuringProductive);\r\n });\r\n });\r\n }\r\n\r\n checkAllActivitiesAcrossUnavailableTime(\r\n appointment: AppointmentGrid,\r\n startDate?: Date,\r\n workshopUserId?: string\r\n ) {\r\n return new Promise((resolve) => {\r\n let hasOverlappedOnce = false;\r\n const checkAllHappens: Promise[] = [];\r\n // This array of dates contains every new end date for sequencing the activities\r\n // This is a first try, because it will not take the end date after splitting the previous task\r\n const endDates: Date[] = [];\r\n appointment.jobcard.jobcardItems\r\n ?.sort((a, b) => a.weight - b.weight)\r\n ?.forEach((item) => {\r\n item.jobcardItemSpells\r\n ?.sort((a, b) => a.weight - b.weight)\r\n ?.forEach((spell) => {\r\n if (endDates?.length > 0) {\r\n startDate = endDates[endDates.length - 1];\r\n }\r\n if (\r\n spell.selected &&\r\n (!spell.technicians || spell.technicians.length === 0)\r\n ) {\r\n // jobcard-pending OR activity-pending\r\n const endActivityDate = new Date(\r\n moment(startDate)\r\n .add(spell.estimatedDuration, 'minutes')\r\n .format('YYYY-MM-DD HH:mm:ss')\r\n );\r\n checkAllHappens.push(\r\n this.happensDuringUnavailableTime(\r\n startDate,\r\n endActivityDate,\r\n workshopUserId,\r\n spell.estimatedDuration\r\n )\r\n );\r\n endDates.push(endActivityDate);\r\n } else if (spell.selected && spell.technicians) {\r\n // tech-unassigned\r\n spell.technicians.forEach((tech) => {\r\n if (endDates.length > 0) {\r\n startDate = endDates[endDates.length - 1];\r\n }\r\n const endActivityDate = new Date(\r\n moment(startDate)\r\n .add(tech.estimatedDuration, 'minutes')\r\n .format('YYYY-MM-DD HH:mm:ss')\r\n );\r\n if (workshopUserId) {\r\n checkAllHappens.push(\r\n this.happensDuringUnavailableTime(\r\n startDate,\r\n endActivityDate,\r\n workshopUserId,\r\n tech.estimatedDuration\r\n )\r\n );\r\n endDates.push(endActivityDate);\r\n }\r\n });\r\n } else {\r\n // Save button from assign task\r\n spell.technicians\r\n ?.sort(\r\n (a, b) =>\r\n new Date(a.startDate).getTime() -\r\n new Date(b.startDate).getTime()\r\n )\r\n ?.forEach((tech) => {\r\n if (\r\n tech.startDate &&\r\n tech.estimatedDuration &&\r\n tech.workshopUserId\r\n ) {\r\n const endActivityDate = new Date(\r\n moment(tech.startDate)\r\n .add(tech.estimatedDuration, 'minutes')\r\n .format('YYYY-MM-DD HH:mm:ss')\r\n );\r\n checkAllHappens.push(\r\n this.happensDuringUnavailableTime(\r\n new Date(tech.startDate),\r\n endActivityDate,\r\n tech.workshopUserId,\r\n tech.estimatedDuration\r\n )\r\n );\r\n }\r\n });\r\n }\r\n });\r\n });\r\n Promise.all(checkAllHappens).then((results) => {\r\n if (results.length > 0) {\r\n hasOverlappedOnce = results.reduce((acc, val) => acc || val);\r\n }\r\n resolve(hasOverlappedOnce);\r\n });\r\n });\r\n }\r\n\r\n splitTechnicianSpellOnWorkingHours(\r\n jobcard: JobcardDto,\r\n itemId: number,\r\n spellId: number,\r\n estimatedDuration: number,\r\n activityStartDate: Date,\r\n workshopUserId: string,\r\n isCopying: boolean,\r\n technician?: JobcardItemTechnician\r\n ) {\r\n let endDateTime: Date;\r\n return new Promise<[Date, JobcardDto]>((resolve) => {\r\n // Delete the initial tech that we will split\r\n if (technician && !isCopying) {\r\n jobcard.jobcardItems?.forEach((item) => {\r\n if (item.id === itemId) {\r\n item.jobcardItemSpells?.forEach((spell) => {\r\n if (spell.id === spellId) {\r\n spell.technicians?.splice(\r\n spell.technicians.indexOf(technician),\r\n 1\r\n );\r\n }\r\n });\r\n }\r\n });\r\n }\r\n this.workshopUsersService\r\n .getEndOfItem(workshopUserId, activityStartDate, estimatedDuration)\r\n .subscribe((end) => {\r\n let currentDate = activityStartDate;\r\n let durationLeft = estimatedDuration;\r\n let nbDays = 0;\r\n do {\r\n this.workshopUsersService\r\n .userWorkTime(workshopUserId, currentDate)\r\n .subscribe((worktimes) => {\r\n const productiveWorktimes = worktimes\r\n .filter((worktime) => worktime.type === 'productive')\r\n .sort((a, b) => a.range.start.diff(b.range.start));\r\n productiveWorktimes.forEach((worktime) => {\r\n let newRange: DateRange = null;\r\n if (worktime.range.end > moment(activityStartDate)) {\r\n // For the productive shifts that occurs during or after the activity\r\n if (\r\n worktime.range.contains(activityStartDate, {\r\n excludeStart: false,\r\n excludeEnd: false,\r\n })\r\n ) {\r\n // If activity occurs during shift\r\n // Take the time between activityStartDate and worktime.range.end (cause we know that it will be cut with unavailable time)\r\n newRange = moment.range(\r\n activityStartDate,\r\n worktime.range.end\r\n );\r\n if (newRange.duration('minutes') > estimatedDuration) {\r\n newRange = moment.range(\r\n activityStartDate,\r\n moment(activityStartDate).add(\r\n estimatedDuration,\r\n 'minutes'\r\n )\r\n );\r\n }\r\n } else if (\r\n worktime.range.start >= moment(activityStartDate) &&\r\n durationLeft > 0\r\n ) {\r\n // If shift happens after the activity and there is still duration to use\r\n if (durationLeft < worktime.range.duration('minutes')) {\r\n // If durationLeft is less that duration of range\r\n // Take worktime.range.start + durationLeft\r\n const endRange = moment(worktime.range.start).add(\r\n durationLeft,\r\n 'minutes'\r\n );\r\n newRange = moment.range(worktime.range.start, endRange);\r\n } else {\r\n // Else take the whole range\r\n newRange = worktime.range;\r\n }\r\n }\r\n }\r\n if (newRange) {\r\n // Add the new tech info to the appointment\r\n jobcard.jobcardItems.forEach((item) => {\r\n if (item.id === itemId) {\r\n item.jobcardItemSpells.forEach((spell) => {\r\n if (spell.id === spellId) {\r\n const newTech: JobcardItemTechnician = {\r\n estimatedDuration: newRange.duration('minutes'),\r\n spellLinkId: spellId,\r\n startDate: newRange.start.toISOString(),\r\n workshopUserId,\r\n linkId: undefined,\r\n };\r\n spell.technicians.push(newTech);\r\n }\r\n });\r\n }\r\n });\r\n durationLeft -= newRange.duration('minutes');\r\n endDateTime = newRange.end.toDate();\r\n }\r\n });\r\n currentDate = new Date(\r\n moment(currentDate)\r\n .add(1, 'day')\r\n .format('YYYY-MM-DD HH:mm:ss')\r\n );\r\n nbDays++;\r\n });\r\n } while (durationLeft > 0 && nbDays < 30);\r\n this.endDates.push(endDateTime);\r\n resolve([endDateTime, jobcard]);\r\n });\r\n });\r\n }\r\n\r\n setAllActivitiesAcrossUnavailabilityTime(\r\n appointment: AppointmentGrid,\r\n startDate?: Date,\r\n workshopUserId?: string\r\n ) {\r\n this.endDates = [];\r\n return new Promise<[Date, AppointmentGrid]>((resolve, reject) => {\r\n const allActivitiesSplited: Date[] = [];\r\n // This array of dates contains every new end date for sequencing the activities\r\n // This is a first try, because it will not take the end date after splitting the previous task\r\n appointment?.jobcard?.jobcardItems?.forEach((item) => {\r\n item.jobcardItemSpells?.forEach((spell) => {\r\n if (spell.selected) {\r\n if (this.endDates.length > 0) {\r\n this.endDates = this.endDates.sort((a, b) => a - b);\r\n startDate = this.endDates[this.endDates.length - 1];\r\n }\r\n if (!spell.technicians || spell.technicians.length === 0) {\r\n // From jobcard-pending OR activity-pending\r\n this.splitTechnicianSpellOnWorkingHours(\r\n appointment.jobcard,\r\n item.id,\r\n spell.id,\r\n spell.estimatedDuration,\r\n startDate,\r\n workshopUserId,\r\n false\r\n ).then(([date, jobcard]) => {\r\n if (date) {\r\n allActivitiesSplited.push(date);\r\n }\r\n if (allActivitiesSplited.length === 0) {\r\n reject();\r\n } else {\r\n Promise.all(allActivitiesSplited).then((endActivities) => {\r\n endActivities?.sort(\r\n (end1, end2) => end1.getTime() - end2.getTime()\r\n );\r\n resolve([endActivities?.pop(), appointment]);\r\n });\r\n }\r\n });\r\n } else if (spell.technicians.length > 0) {\r\n // From unassigned-tech\r\n spell.technicians.forEach((tech) => {\r\n if (this.endDates.length > 0) {\r\n startDate = this.endDates[this.endDates.length - 1];\r\n }\r\n this.splitTechnicianSpellOnWorkingHours(\r\n appointment.jobcard,\r\n item.id,\r\n spell.id,\r\n tech.estimatedDuration,\r\n startDate,\r\n workshopUserId,\r\n false,\r\n tech\r\n ).then(([date, jobcard]) => {\r\n if (date) {\r\n allActivitiesSplited.push(date);\r\n }\r\n if (allActivitiesSplited.length === 0) {\r\n reject();\r\n } else {\r\n Promise.all(allActivitiesSplited).then((endActivities) => {\r\n endActivities?.sort(\r\n (end1, end2) => end1.getTime() - end2.getTime()\r\n );\r\n resolve([endActivities?.pop(), appointment]);\r\n });\r\n }\r\n });\r\n });\r\n }\r\n } else {\r\n // From pending to assign save button\r\n spell.technicians?.forEach((tech) => {\r\n if (tech.startDate && tech.estimatedDuration) {\r\n this.splitTechnicianSpellOnWorkingHours(\r\n appointment.jobcard,\r\n item.id,\r\n spell.id,\r\n tech.estimatedDuration,\r\n new Date(tech.startDate),\r\n tech.workshopUserId,\r\n false,\r\n tech\r\n ).then(([date, jobcard]) => {\r\n if (date) {\r\n allActivitiesSplited.push(date);\r\n }\r\n if (allActivitiesSplited.length === 0) {\r\n reject();\r\n } else {\r\n Promise.all(allActivitiesSplited).then((endActivities) => {\r\n endActivities?.sort(\r\n (end1, end2) => end1.getTime() - end2.getTime()\r\n );\r\n resolve([endActivities?.pop(), appointment]);\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n setWorkspaceJobcardArray(jc: JobcardItemSplit) {\r\n this.jobcardItemArray.push(jc);\r\n }\r\n\r\n getWorkspaceJobcardArray(): Observable {\r\n return of(this.jobcardItemArray);\r\n }\r\n\r\n setMaximizeJobcard(jc: JobcardItemSplit) {\r\n this.workspaceJobcardSubject.next(jc);\r\n }\r\n\r\n setSaveJobcard(jc: JobcardItemSplit) {\r\n this.workspaceJobcardSaveSubject.next(jc);\r\n }\r\n\r\n private getTechUnscheduledAssignment(\r\n techId: string,\r\n jobcardItemSpell: JobcardItemSpellDto\r\n ): number {\r\n // return the number of unscheduled assignment for a given technician on a given activity\r\n let unscheduledOccurrence = 0;\r\n jobcardItemSpell.technicians.forEach((tech) => {\r\n if (tech.workshopUserId === techId && tech.startDate == null) {\r\n unscheduledOccurrence++;\r\n }\r\n });\r\n return unscheduledOccurrence;\r\n }\r\n\r\n setClockingUser(value: boolean){\r\n this.selClockingUser = value;\r\n }\r\n\r\n getClockingUser(){\r\n return this.selClockingUser;\r\n }\r\n}\r\n","export const environment = {\n production: false,\n env: 'dev',\n frontEndUrl: 'jobcard',\n apiBasePathJobcard: '/jobcard-api',\n apiBasePathSmartview: '/etim-api',\n mappingEtimUrl: [\n {\n jobcard: 'localhost:4200',\n etim: 'https://tidb-preprod.ivecogroup.com/etim-api',\n },\n {\n jobcard: 'digital-jobcard-dev.ivecogroup.com',\n etim: 'https://tidb-preprod.ivecogroup.com/etim-api',\n },\n {\n jobcard: 'http://frparvmivdjcweb:8082',\n etim: 'https://cnh-web.fr.capgemini.com',\n },\n ],\n websocket: '/jobcard-api/socket',\n isIveco: true,\n version: '0.2.1',\n cookie:\n 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJXMjkxMDFEIiwiZGF0YSI6eyJpZCI6IlcyOTEwMUQiLCJkbXNVc2VySWQiOiIxIiwiZmlyc3ROYW1lIjoiSmFtZXMiLCJsYXN0TmFtZSI6IkhheWVzIiwiZW1haWwiOiJhYXNoaS5tYW5kYXdhdEBjYXBnZW1pbmkuY29tIiwibGFuZ3VhZ2UiOiJFTiIsIndvcmtzaG9wSWQiOjMyMjY1OSwid29ya3Nob3BTYWxlc09yZ2FuaXphdGlvbklkIjoxMDgzNDEsInJvbGUiOnsiaWQiOjEsIm5hbWUiOiJTZXJ2aWNlIEFkdmlzb3IiLCJyb2xlQWJicmV2IjoiQURWSVNPUiJ9LCJpc0FkbWluIjp0cnVlLCJpc0FjdGl2ZSI6dHJ1ZSwidmlld3MiOiJ3b3Jrc2hvcEFnZW5kYVZpZXciLCJpc1RlY2huaWNpYW5WaWV3IjpmYWxzZSwiZGV2aWNlVG9rZW4iOiJmZlRqQmladFEwT0pESjk0cmIxNHo5OkFQQTkxYkV4RTVRbEIzYkQ3bUZ1T0p2ekpibG1xS0RqSWVDdy1HTVJTdm9hNFA2ajJFZ01HaEs3MUVVUXNhTmZUY3ZGcXlERzFpNktmMVJUSkhIdlF6MWVDbWRmUE9RUTQwdVpsTXlxdUdMV3o2N18zOEdCZkJpOTdUaFdyMjh1VEs4WkZrV1FGOHZrIiwiY2FuRWRpdEpvYmNhcmQiOmZhbHNlLCJkaXNwbGF5ZWROYW1lIjoiSmFtZXMgSGF5ZXMiLCJlZmZpY2llbmN5U3RhcnQiOjE2MDk1MTg2MDAwMDAsImVmZmljaWVuY3lMZXZlbCI6ODAsIndlZWtseUhvdXJzIjo0MC4wLCJjYW5TZWVQcmljZSI6dHJ1ZSwiY29zdFJhdGUiOiIxMjAwIiwiaXNBdXRvbWF0aWNBcHByb3ZhbCI6Inllc0ltbWVkaWF0ZUFjY2VzcyIsImlzQWN0aXZpdHlBcHByb3ZhbCI6Inllc1RvRG9TdGF0dXMiLCJ3b3Jrc2hvcEJheXMiOlt7ImlkIjo1MTIsIm5hbWUiOiJNZWNoYW5pYyBCYXkiLCJ0eXBlIjoiQmF5IiwibWF4aW11bVV0aWxpc2F0aW9uIjoxMDAsIndlaWdodCI6MCwiaXNBY3RpdmUiOnRydWV9XSwiYXNzb2NpYXRlZFdpdGhXb3Jrc2hvcCI6ZmFsc2UsImlzTWFudWFsSm9iU3RhdHVzT3ZlcnJpZGUiOnRydWV9LCJleHAiOjE2NTIyNDQ5NDksImlhdCI6MTY1MTY0MDE0OX0.vXmkFD4k8LkjLTnaPwUg2j3MGkAgioraQN2OY0Zit1--2K4PXKaMRytkwx_Ifdf58t0zVZJJW_tdBYjnvEXX2Q',\n marketId: 3,\n etim:\n 'https://welcome.iveco.com/app/express/sso?application_id=ac6f3c04-0157-49f8-b044-3d38d9696486',\n srt:\n 'https://welcome.iveco.com/app/express/sso?application_id=563ebbdc-7073-444a-91b2-44eaa4a35011',\n etimDocLink:\n 'https://stg-portal.cnh.com//DPLogin/Login.do?rurl=https://cnh-web.fr.capgemini.com:8000/etimredesign/tidbkmlink.jsp?',\n power: 'https://staging.iveco-power.com:9443/accessPower.jsp',\n eparts: '',\n azureContainer: 'jobcard',\n googleCloudApiKey: 'AIzaSyAdnDTCgskEMEC0a3QJXF-5mVNAmZFwrrI',\n assist: {\n azure: {\n container: 'dev',\n accountName: 'cmsfeedbackstorage',\n },\n },\n timeToRefreshKanbanCV: 180000,\n azureUrl: 'https://azeudjcrfstd010.blob.core.windows.net',\n matomoUrl: 'https://matomo.ivecogroup.com/cv/',\n matomoSiteId: 16,\n // msal data\n clientId: '011716b2-ead2-4fc4-be81-bc90195e8280',\n authority: 'https://login.microsoftonline.com/624cb905-2091-41e4-90b9-e768cf22851a',\n redirectUri: 'https://digital-jobcard-dev.ivecogroup.com/jobcard-auth',\n};\n","export const locales = [\r\n {\r\n id: 'en-US',\r\n measurementUnits: 'Miles',\r\n },\r\n {\r\n id: 'en-GB',\r\n measurementUnits: 'Miles',\r\n },\r\n {\r\n id: 'EN',\r\n measurementUnits: 'Miles',\r\n },\r\n {\r\n id: 'FR',\r\n measurementUnits: 'KM',\r\n },\r\n {\r\n id: 'ES',\r\n measurementUnits: 'KM',\r\n },\r\n {\r\n id: 'DE',\r\n measurementUnits: 'KM',\r\n },\r\n {\r\n id: 'IT',\r\n measurementUnits: 'KM',\r\n },\r\n {\r\n id: 'PT-BR',\r\n measurementUnits: 'KM',\r\n },\r\n {\r\n id: 'PL',\r\n measurementUnits: 'KM',\r\n },\r\n {\r\n id: 'DA',\r\n measurementUnits: 'KM',\r\n },\r\n];\r\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n if (!sessionStorage.getItem('debug')) {\n // eslint-disable-next-line\n window.console.debug = () => {};\n }\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, NgZone, Inject, PLATFORM_ID, Input, Output, Directive, ContentChildren, NgModule, Injectable } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, Observable, Subject, combineLatest } from 'rxjs';\nimport { switchMap, take, map, takeUntil } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Manages event on a Google Maps object, ensuring that events are added only when necessary. */\nimport * as ɵngcc0 from '@angular/core';\n\nconst _c0 = [\"*\"];\nclass MapEventManager {\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n /** Pending listeners that were added before the target was set. */\n this._pending = [];\n this._listeners = [];\n this._targetStream = new BehaviorSubject(undefined);\n }\n /** Clears all currently-registered event listeners. */\n _clearListeners() {\n for (const listener of this._listeners) {\n listener.remove();\n }\n this._listeners = [];\n }\n /** Gets an observable that adds an event listener to the map when a consumer subscribes to it. */\n getLazyEmitter(name) {\n return this._targetStream.pipe(switchMap(target => {\n const observable = new Observable(observer => {\n // If the target hasn't been initialized yet, cache the observer so it can be added later.\n if (!target) {\n this._pending.push({ observable, observer });\n return undefined;\n }\n const listener = target.addListener(name, (event) => {\n this._ngZone.run(() => observer.next(event));\n });\n this._listeners.push(listener);\n return () => listener.remove();\n });\n return observable;\n }));\n }\n /** Sets the current target that the manager should bind events to. */\n setTarget(target) {\n const currentTarget = this._targetStream.value;\n if (target === currentTarget) {\n return;\n }\n // Clear the listeners from the pre-existing target.\n if (currentTarget) {\n this._clearListeners();\n this._pending = [];\n }\n this._targetStream.next(target);\n // Add the listeners that were bound before the map was initialized.\n this._pending.forEach(subscriber => subscriber.observable.subscribe(subscriber.observer));\n this._pending = [];\n }\n /** Destroys the manager and clears the event listeners. */\n destroy() {\n this._clearListeners();\n this._pending = [];\n this._targetStream.complete();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** default options set to the Googleplex */\nconst DEFAULT_OPTIONS = {\n center: { lat: 37.421995, lng: -122.084092 },\n zoom: 17,\n // Note: the type conversion here isn't necessary for our CI, but it resolves a g3 failure.\n mapTypeId: 'roadmap'\n};\n/** Arbitrary default height for the map element */\nconst DEFAULT_HEIGHT = '500px';\n/** Arbitrary default width for the map element */\nconst DEFAULT_WIDTH = '500px';\n/**\n * Angular component that renders a Google Map via the Google Maps JavaScript\n * API.\n * @see https://developers.google.com/maps/documentation/javascript/reference/\n */\nclass GoogleMap {\n constructor(_elementRef, _ngZone, platformId) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n /** Height of the map. Set this to `null` if you'd like to control the height through CSS. */\n this.height = DEFAULT_HEIGHT;\n /** Width of the map. Set this to `null` if you'd like to control the width through CSS. */\n this.width = DEFAULT_WIDTH;\n this._options = DEFAULT_OPTIONS;\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.bounds_changed\n */\n this.boundsChanged = this._eventManager.getLazyEmitter('bounds_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.center_changed\n */\n this.centerChanged = this._eventManager.getLazyEmitter('center_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.click\n */\n this.mapClick = this._eventManager\n .getLazyEmitter('click');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dblclick\n */\n this.mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.drag\n */\n this.mapDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dragend\n */\n this.mapDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.dragstart\n */\n this.mapDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.heading_changed\n */\n this.headingChanged = this._eventManager.getLazyEmitter('heading_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.idle\n */\n this.idle = this._eventManager.getLazyEmitter('idle');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.maptypeid_changed\n */\n this.maptypeidChanged = this._eventManager.getLazyEmitter('maptypeid_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mousemove\n */\n this.mapMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mouseout\n */\n this.mapMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mouseover\n */\n this.mapMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/map#Map.projection_changed\n */\n this.projectionChanged = this._eventManager.getLazyEmitter('projection_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.rightclick\n */\n this.mapRightclick = this._eventManager.getLazyEmitter('rightclick');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.tilesloaded\n */\n this.tilesloaded = this._eventManager.getLazyEmitter('tilesloaded');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.tilt_changed\n */\n this.tiltChanged = this._eventManager.getLazyEmitter('tilt_changed');\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.zoom_changed\n */\n this.zoomChanged = this._eventManager.getLazyEmitter('zoom_changed');\n this._isBrowser = isPlatformBrowser(platformId);\n if (this._isBrowser) {\n const googleMapsWindow = window;\n if (!googleMapsWindow.google && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Namespace google not found, cannot construct embedded google ' +\n 'map. Please install the Google Maps JavaScript API: ' +\n 'https://developers.google.com/maps/documentation/javascript/' +\n 'tutorial#Loading_the_Maps_API');\n }\n }\n }\n set center(center) {\n this._center = center;\n }\n set zoom(zoom) {\n this._zoom = zoom;\n }\n set options(options) {\n this._options = options || DEFAULT_OPTIONS;\n }\n ngOnChanges(changes) {\n if (changes['height'] || changes['width']) {\n this._setSize();\n }\n const googleMap = this.googleMap;\n if (googleMap) {\n if (changes['options']) {\n googleMap.setOptions(this._combineOptions());\n }\n if (changes['center'] && this._center) {\n googleMap.setCenter(this._center);\n }\n // Note that the zoom can be zero.\n if (changes['zoom'] && this._zoom != null) {\n googleMap.setZoom(this._zoom);\n }\n if (changes['mapTypeId'] && this.mapTypeId) {\n googleMap.setMapTypeId(this.mapTypeId);\n }\n }\n }\n ngOnInit() {\n // It should be a noop during server-side rendering.\n if (this._isBrowser) {\n this._mapEl = this._elementRef.nativeElement.querySelector('.map-container');\n this._setSize();\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.googleMap = new google.maps.Map(this._mapEl, this._combineOptions());\n });\n this._eventManager.setTarget(this.googleMap);\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.fitBounds\n */\n fitBounds(bounds, padding) {\n this._assertInitialized();\n this.googleMap.fitBounds(bounds, padding);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panBy\n */\n panBy(x, y) {\n this._assertInitialized();\n this.googleMap.panBy(x, y);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panTo\n */\n panTo(latLng) {\n this._assertInitialized();\n this.googleMap.panTo(latLng);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.panToBounds\n */\n panToBounds(latLngBounds, padding) {\n this._assertInitialized();\n this.googleMap.panToBounds(latLngBounds, padding);\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.googleMap.getBounds() || null;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getCenter\n */\n getCenter() {\n this._assertInitialized();\n return this.googleMap.getCenter();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getClickableIcons\n */\n getClickableIcons() {\n this._assertInitialized();\n return this.googleMap.getClickableIcons();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getHeading\n */\n getHeading() {\n this._assertInitialized();\n return this.googleMap.getHeading();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getMapTypeId\n */\n getMapTypeId() {\n this._assertInitialized();\n return this.googleMap.getMapTypeId();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getProjection\n */\n getProjection() {\n this._assertInitialized();\n return this.googleMap.getProjection();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getStreetView\n */\n getStreetView() {\n this._assertInitialized();\n return this.googleMap.getStreetView();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getTilt\n */\n getTilt() {\n this._assertInitialized();\n return this.googleMap.getTilt();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.getZoom\n */\n getZoom() {\n this._assertInitialized();\n return this.googleMap.getZoom();\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.controls\n */\n get controls() {\n this._assertInitialized();\n return this.googleMap.controls;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.data\n */\n get data() {\n this._assertInitialized();\n return this.googleMap.data;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.mapTypes\n */\n get mapTypes() {\n this._assertInitialized();\n return this.googleMap.mapTypes;\n }\n /**\n * See\n * https://developers.google.com/maps/documentation/javascript/reference/map#Map.overlayMapTypes\n */\n get overlayMapTypes() {\n this._assertInitialized();\n return this.googleMap.overlayMapTypes;\n }\n _setSize() {\n if (this._mapEl) {\n const styles = this._mapEl.style;\n styles.height =\n this.height === null ? '' : (coerceCssPixelValue(this.height) || DEFAULT_HEIGHT);\n styles.width = this.width === null ? '' : (coerceCssPixelValue(this.width) || DEFAULT_WIDTH);\n }\n }\n /** Combines the center and zoom and the other map options into a single object */\n _combineOptions() {\n var _a, _b;\n const options = this._options || {};\n return Object.assign(Object.assign({}, options), { \n // It's important that we set **some** kind of `center` and `zoom`, otherwise\n // Google Maps will render a blank rectangle which looks broken.\n center: this._center || options.center || DEFAULT_OPTIONS.center, zoom: (_b = (_a = this._zoom) !== null && _a !== void 0 ? _a : options.zoom) !== null && _b !== void 0 ? _b : DEFAULT_OPTIONS.zoom, \n // Passing in an undefined `mapTypeId` seems to break tile loading\n // so make sure that we have some kind of default (see #22082).\n mapTypeId: this.mapTypeId || options.mapTypeId || DEFAULT_OPTIONS.mapTypeId });\n }\n /** Asserts that the map has been initialized. */\n _assertInitialized() {\n if (!this.googleMap && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n }\n}\nGoogleMap.ɵfac = function GoogleMap_Factory(t) { return new (t || GoogleMap)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(PLATFORM_ID)); };\nGoogleMap.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GoogleMap, selectors: [[\"google-map\"]], inputs: { height: \"height\", width: \"width\", center: \"center\", zoom: \"zoom\", options: \"options\", mapTypeId: \"mapTypeId\" }, outputs: { boundsChanged: \"boundsChanged\", centerChanged: \"centerChanged\", mapClick: \"mapClick\", mapDblclick: \"mapDblclick\", mapDrag: \"mapDrag\", mapDragend: \"mapDragend\", mapDragstart: \"mapDragstart\", headingChanged: \"headingChanged\", idle: \"idle\", maptypeidChanged: \"maptypeidChanged\", mapMousemove: \"mapMousemove\", mapMouseout: \"mapMouseout\", mapMouseover: \"mapMouseover\", projectionChanged: \"projectionChanged\", mapRightclick: \"mapRightclick\", tilesloaded: \"tilesloaded\", tiltChanged: \"tiltChanged\", zoomChanged: \"zoomChanged\" }, exportAs: [\"googleMap\"], features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, \"map-container\"]], template: function GoogleMap_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵprojection(1);\n } }, encapsulation: 2, changeDetection: 0 });\nGoogleMap.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }\n];\nGoogleMap.propDecorators = {\n height: [{ type: Input }],\n width: [{ type: Input }],\n mapTypeId: [{ type: Input }],\n center: [{ type: Input }],\n zoom: [{ type: Input }],\n options: [{ type: Input }],\n boundsChanged: [{ type: Output }],\n centerChanged: [{ type: Output }],\n mapClick: [{ type: Output }],\n mapDblclick: [{ type: Output }],\n mapDrag: [{ type: Output }],\n mapDragend: [{ type: Output }],\n mapDragstart: [{ type: Output }],\n headingChanged: [{ type: Output }],\n idle: [{ type: Output }],\n maptypeidChanged: [{ type: Output }],\n mapMousemove: [{ type: Output }],\n mapMouseout: [{ type: Output }],\n mapMouseover: [{ type: Output }],\n projectionChanged: [{ type: Output }],\n mapRightclick: [{ type: Output }],\n tilesloaded: [{ type: Output }],\n tiltChanged: [{ type: Output }],\n zoomChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GoogleMap, [{\n type: Component,\n args: [{\n selector: 'google-map',\n exportAs: 'googleMap',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '
    ',\n encapsulation: ViewEncapsulation.None\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, { height: [{\n type: Input\n }], width: [{\n type: Input\n }], boundsChanged: [{\n type: Output\n }], centerChanged: [{\n type: Output\n }], mapClick: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], mapDrag: [{\n type: Output\n }], mapDragend: [{\n type: Output\n }], mapDragstart: [{\n type: Output\n }], headingChanged: [{\n type: Output\n }], idle: [{\n type: Output\n }], maptypeidChanged: [{\n type: Output\n }], mapMousemove: [{\n type: Output\n }], mapMouseout: [{\n type: Output\n }], mapMouseover: [{\n type: Output\n }], projectionChanged: [{\n type: Output\n }], mapRightclick: [{\n type: Output\n }], tilesloaded: [{\n type: Output\n }], tiltChanged: [{\n type: Output\n }], zoomChanged: [{\n type: Output\n }], center: [{\n type: Input\n }], zoom: [{\n type: Input\n }], options: [{\n type: Input\n }], mapTypeId: [{\n type: Input\n }] }); })();\nconst cssUnitsPattern = /([A-Za-z%]+)$/;\n/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return cssUnitsPattern.test(value) ? value : `${value}px`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MapBaseLayer {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._ngZone.runOutsideAngular(() => {\n this._initializeObject();\n });\n this._assertInitialized();\n this._setMap();\n }\n }\n ngOnDestroy() {\n this._unsetMap();\n }\n _assertInitialized() {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n }\n _initializeObject() { }\n _setMap() { }\n _unsetMap() { }\n}\nMapBaseLayer.ɵfac = function MapBaseLayer_Factory(t) { return new (t || MapBaseLayer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapBaseLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapBaseLayer, selectors: [[\"map-base-layer\"]], exportAs: [\"mapBaseLayer\"] });\nMapBaseLayer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapBaseLayer, [{\n type: Directive,\n args: [{\n selector: 'map-base-layer',\n exportAs: 'mapBaseLayer'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Bicycling Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#BicyclingLayer\n */\nclass MapBicyclingLayer extends MapBaseLayer {\n _initializeObject() {\n this.bicyclingLayer = new google.maps.BicyclingLayer();\n }\n _setMap() {\n this._assertLayerInitialized();\n this.bicyclingLayer.setMap(this._map.googleMap);\n }\n _unsetMap() {\n if (this.bicyclingLayer) {\n this.bicyclingLayer.setMap(null);\n }\n }\n _assertLayerInitialized() {\n if (!this.bicyclingLayer) {\n throw Error('Cannot interact with a Google Map Bicycling Layer before it has been initialized. ' +\n 'Please wait for the Transit Layer to load before trying to interact with it.');\n }\n }\n}\nMapBicyclingLayer.ɵfac = /*@__PURE__*/ function () { let ɵMapBicyclingLayer_BaseFactory; return function MapBicyclingLayer_Factory(t) { return (ɵMapBicyclingLayer_BaseFactory || (ɵMapBicyclingLayer_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MapBicyclingLayer)))(t || MapBicyclingLayer); }; }();\nMapBicyclingLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapBicyclingLayer, selectors: [[\"map-bicycling-layer\"]], exportAs: [\"mapBicyclingLayer\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapBicyclingLayer, [{\n type: Directive,\n args: [{\n selector: 'map-bicycling-layer',\n exportAs: 'mapBicyclingLayer'\n }]\n }], null, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Circle via the Google Maps JavaScript API.\n * @see developers.google.com/maps/documentation/javascript/reference/polygon#Circle\n */\nclass MapCircle {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._center = new BehaviorSubject(undefined);\n this._radius = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.center_changed\n */\n this.centerChanged = this._eventManager.getLazyEmitter('center_changed');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.click\n */\n this.circleClick = this._eventManager.getLazyEmitter('click');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dblclick\n */\n this.circleDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.drag\n */\n this.circleDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dragend\n */\n this.circleDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.dragstart\n */\n this.circleDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mousedown\n */\n this.circleMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mousemove\n */\n this.circleMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseout\n */\n this.circleMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseover\n */\n this.circleMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.mouseup\n */\n this.circleMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.radius_changed\n */\n this.radiusChanged = this._eventManager.getLazyEmitter('radius_changed');\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.rightclick\n */\n this.circleRightclick = this._eventManager.getLazyEmitter('rightclick');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set center(center) {\n this._center.next(center);\n }\n set radius(radius) {\n this._radius.next(radius);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.circle = new google.maps.Circle(options);\n });\n this._assertInitialized();\n this.circle.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.circle);\n });\n this._watchForOptionsChanges();\n this._watchForCenterChanges();\n this._watchForRadiusChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.circle) {\n this.circle.setMap(null);\n }\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.circle.getBounds();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getCenter\n */\n getCenter() {\n this._assertInitialized();\n return this.circle.getCenter();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.circle.getDraggable();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.circle.getEditable();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getRadius\n */\n getRadius() {\n this._assertInitialized();\n return this.circle.getRadius();\n }\n /**\n * @see\n * developers.google.com/maps/documentation/javascript/reference/polygon#Circle.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.circle.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._center, this._radius])\n .pipe(map(([options, center, radius]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { center: center || options.center, radius: radius !== undefined ? radius : options.radius });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.circle.setOptions(options);\n });\n }\n _watchForCenterChanges() {\n this._center.pipe(takeUntil(this._destroyed)).subscribe(center => {\n if (center) {\n this._assertInitialized();\n this.circle.setCenter(center);\n }\n });\n }\n _watchForRadiusChanges() {\n this._radius.pipe(takeUntil(this._destroyed)).subscribe(radius => {\n if (radius !== undefined) {\n this._assertInitialized();\n this.circle.setRadius(radius);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.circle) {\n throw Error('Cannot interact with a Google Map Circle before it has been ' +\n 'initialized. Please wait for the Circle to load before trying to interact with it.');\n }\n }\n }\n}\nMapCircle.ɵfac = function MapCircle_Factory(t) { return new (t || MapCircle)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapCircle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapCircle, selectors: [[\"map-circle\"]], inputs: { options: \"options\", center: \"center\", radius: \"radius\" }, outputs: { centerChanged: \"centerChanged\", circleClick: \"circleClick\", circleDblclick: \"circleDblclick\", circleDrag: \"circleDrag\", circleDragend: \"circleDragend\", circleDragstart: \"circleDragstart\", circleMousedown: \"circleMousedown\", circleMousemove: \"circleMousemove\", circleMouseout: \"circleMouseout\", circleMouseover: \"circleMouseover\", circleMouseup: \"circleMouseup\", radiusChanged: \"radiusChanged\", circleRightclick: \"circleRightclick\" }, exportAs: [\"mapCircle\"] });\nMapCircle.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapCircle.propDecorators = {\n options: [{ type: Input }],\n center: [{ type: Input }],\n radius: [{ type: Input }],\n centerChanged: [{ type: Output }],\n circleClick: [{ type: Output }],\n circleDblclick: [{ type: Output }],\n circleDrag: [{ type: Output }],\n circleDragend: [{ type: Output }],\n circleDragstart: [{ type: Output }],\n circleMousedown: [{ type: Output }],\n circleMousemove: [{ type: Output }],\n circleMouseout: [{ type: Output }],\n circleMouseover: [{ type: Output }],\n circleMouseup: [{ type: Output }],\n radiusChanged: [{ type: Output }],\n circleRightclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapCircle, [{\n type: Directive,\n args: [{\n selector: 'map-circle',\n exportAs: 'mapCircle'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { centerChanged: [{\n type: Output\n }], circleClick: [{\n type: Output\n }], circleDblclick: [{\n type: Output\n }], circleDrag: [{\n type: Output\n }], circleDragend: [{\n type: Output\n }], circleDragstart: [{\n type: Output\n }], circleMousedown: [{\n type: Output\n }], circleMousemove: [{\n type: Output\n }], circleMouseout: [{\n type: Output\n }], circleMouseover: [{\n type: Output\n }], circleMouseup: [{\n type: Output\n }], radiusChanged: [{\n type: Output\n }], circleRightclick: [{\n type: Output\n }], options: [{\n type: Input\n }], center: [{\n type: Input\n }], radius: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Directions Renderer via the Google Maps\n * JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/directions#DirectionsRenderer\n */\nclass MapDirectionsRenderer {\n constructor(_googleMap, _ngZone) {\n this._googleMap = _googleMap;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRenderer.directions_changed\n */\n this.directionsChanged = this._eventManager.getLazyEmitter('directions_changed');\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRendererOptions.directions\n */\n set directions(directions) {\n this._directions = directions;\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRendererOptions\n */\n set options(options) {\n this._options = options;\n }\n ngOnInit() {\n if (this._googleMap._isBrowser) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.directionsRenderer = new google.maps.DirectionsRenderer(this._combineOptions());\n });\n this._assertInitialized();\n this.directionsRenderer.setMap(this._googleMap.googleMap);\n this._eventManager.setTarget(this.directionsRenderer);\n }\n }\n ngOnChanges(changes) {\n if (this.directionsRenderer) {\n if (changes['options']) {\n this.directionsRenderer.setOptions(this._combineOptions());\n }\n if (changes['directions'] && this._directions !== undefined) {\n this.directionsRenderer.setDirections(this._directions);\n }\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n if (this.directionsRenderer) {\n this.directionsRenderer.setMap(null);\n }\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRenderer.getDirections\n */\n getDirections() {\n this._assertInitialized();\n return this.directionsRenderer.getDirections();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRenderer.getPanel\n */\n getPanel() {\n this._assertInitialized();\n return this.directionsRenderer.getPanel();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsRenderer.getRouteIndex\n */\n getRouteIndex() {\n this._assertInitialized();\n return this.directionsRenderer.getRouteIndex();\n }\n _combineOptions() {\n const options = this._options || {};\n return Object.assign(Object.assign({}, options), { directions: this._directions || options.directions, map: this._googleMap.googleMap });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.directionsRenderer) {\n throw Error('Cannot interact with a Google Map Directions Renderer before it has been ' +\n 'initialized. Please wait for the Directions Renderer to load before trying ' +\n 'to interact with it.');\n }\n }\n }\n}\nMapDirectionsRenderer.ɵfac = function MapDirectionsRenderer_Factory(t) { return new (t || MapDirectionsRenderer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapDirectionsRenderer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapDirectionsRenderer, selectors: [[\"map-directions-renderer\"]], inputs: { directions: \"directions\", options: \"options\" }, outputs: { directionsChanged: \"directionsChanged\" }, exportAs: [\"mapDirectionsRenderer\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nMapDirectionsRenderer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapDirectionsRenderer.propDecorators = {\n directions: [{ type: Input }],\n options: [{ type: Input }],\n directionsChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapDirectionsRenderer, [{\n type: Directive,\n args: [{\n selector: 'map-directions-renderer',\n exportAs: 'mapDirectionsRenderer'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { directionsChanged: [{\n type: Output\n }], directions: [{\n type: Input\n }], options: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Ground Overlay via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/image-overlay#GroundOverlay\n */\nclass MapGroundOverlay {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._opacity = new BehaviorSubject(1);\n this._url = new BehaviorSubject('');\n this._bounds = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /** Whether the overlay is clickable */\n this.clickable = false;\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay#GroundOverlay.click\n */\n this.mapClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.dblclick\n */\n this.mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n }\n /** URL of the image that will be shown in the overlay. */\n set url(url) {\n this._url.next(url);\n }\n /** Bounds for the overlay. */\n get bounds() {\n return this._bounds.value;\n }\n set bounds(bounds) {\n this._bounds.next(bounds);\n }\n /** Opacity of the overlay. */\n set opacity(opacity) {\n this._opacity.next(opacity);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n // The ground overlay setup is slightly different from the other Google Maps objects in that\n // we have to recreate the `GroundOverlay` object whenever the bounds change, because\n // Google Maps doesn't provide an API to update the bounds of an existing overlay.\n this._bounds.pipe(takeUntil(this._destroyed)).subscribe(bounds => {\n if (this.groundOverlay) {\n this.groundOverlay.setMap(null);\n this.groundOverlay = undefined;\n }\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n if (bounds) {\n this._ngZone.runOutsideAngular(() => {\n this.groundOverlay = new google.maps.GroundOverlay(this._url.getValue(), bounds, {\n clickable: this.clickable,\n opacity: this._opacity.value,\n });\n });\n this._assertInitialized();\n this.groundOverlay.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.groundOverlay);\n }\n });\n this._watchForOpacityChanges();\n this._watchForUrlChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.groundOverlay) {\n this.groundOverlay.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.groundOverlay.getBounds();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getOpacity\n */\n getOpacity() {\n this._assertInitialized();\n return this.groundOverlay.getOpacity();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/image-overlay\n * #GroundOverlay.getUrl\n */\n getUrl() {\n this._assertInitialized();\n return this.groundOverlay.getUrl();\n }\n _watchForOpacityChanges() {\n this._opacity.pipe(takeUntil(this._destroyed)).subscribe(opacity => {\n if (opacity != null) {\n this._assertInitialized();\n this.groundOverlay.setOpacity(opacity);\n }\n });\n }\n _watchForUrlChanges() {\n this._url.pipe(takeUntil(this._destroyed)).subscribe(url => {\n this._assertInitialized();\n const overlay = this.groundOverlay;\n overlay.set('url', url);\n // Google Maps only redraws the overlay if we re-set the map.\n overlay.setMap(null);\n overlay.setMap(this._map.googleMap);\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.groundOverlay) {\n throw Error('Cannot interact with a Google Map GroundOverlay before it has been initialized. ' +\n 'Please wait for the GroundOverlay to load before trying to interact with it.');\n }\n }\n }\n}\nMapGroundOverlay.ɵfac = function MapGroundOverlay_Factory(t) { return new (t || MapGroundOverlay)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapGroundOverlay.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapGroundOverlay, selectors: [[\"map-ground-overlay\"]], inputs: { clickable: \"clickable\", url: \"url\", bounds: \"bounds\", opacity: \"opacity\" }, outputs: { mapClick: \"mapClick\", mapDblclick: \"mapDblclick\" }, exportAs: [\"mapGroundOverlay\"] });\nMapGroundOverlay.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapGroundOverlay.propDecorators = {\n url: [{ type: Input }],\n bounds: [{ type: Input }],\n clickable: [{ type: Input }],\n opacity: [{ type: Input }],\n mapClick: [{ type: Output }],\n mapDblclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapGroundOverlay, [{\n type: Directive,\n args: [{\n selector: 'map-ground-overlay',\n exportAs: 'mapGroundOverlay'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { clickable: [{\n type: Input\n }], mapClick: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], url: [{\n type: Input\n }], bounds: [{\n type: Input\n }], opacity: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps info window via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/info-window\n */\nclass MapInfoWindow {\n constructor(_googleMap, _elementRef, _ngZone) {\n this._googleMap = _googleMap;\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._position = new BehaviorSubject(undefined);\n this._destroy = new Subject();\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.closeclick\n */\n this.closeclick = this._eventManager.getLazyEmitter('closeclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.content_changed\n */\n this.contentChanged = this._eventManager.getLazyEmitter('content_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.domready\n */\n this.domready = this._eventManager.getLazyEmitter('domready');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.position_changed\n */\n this.positionChanged = this._eventManager.getLazyEmitter('position_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.zindex_changed\n */\n this.zindexChanged = this._eventManager.getLazyEmitter('zindex_changed');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set position(position) {\n this._position.next(position);\n }\n ngOnInit() {\n if (this._googleMap._isBrowser) {\n const combinedOptionsChanges = this._combineOptions();\n combinedOptionsChanges.pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.infoWindow = new google.maps.InfoWindow(options);\n });\n this._eventManager.setTarget(this.infoWindow);\n });\n this._watchForOptionsChanges();\n this._watchForPositionChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroy.next();\n this._destroy.complete();\n // If no info window has been created on the server, we do not try closing it.\n // On the server, an info window cannot be created and this would cause errors.\n if (this.infoWindow) {\n this.close();\n }\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.close\n */\n close() {\n this._assertInitialized();\n this.infoWindow.close();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.getContent\n */\n getContent() {\n this._assertInitialized();\n return this.infoWindow.getContent();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window\n * #InfoWindow.getPosition\n */\n getPosition() {\n this._assertInitialized();\n return this.infoWindow.getPosition();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindow.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.infoWindow.getZIndex();\n }\n /**\n * Opens the MapInfoWindow using the provided anchor. If the anchor is not set,\n * then the position property of the options input is used instead.\n */\n open(anchor) {\n this._assertInitialized();\n const anchorObject = anchor ? anchor.getAnchor() : undefined;\n // Prevent the info window from initializing when trying to reopen on the same anchor.\n // Note that when the window is opened for the first time, the anchor will always be\n // undefined. If that's the case, we have to allow it to open in order to handle the\n // case where the window doesn't have an anchor, but is placed at a particular position.\n if (this.infoWindow.get('anchor') !== anchorObject || !anchorObject) {\n this._elementRef.nativeElement.style.display = '';\n this.infoWindow.open(this._googleMap.googleMap, anchorObject);\n }\n }\n _combineOptions() {\n return combineLatest([this._options, this._position]).pipe(map(([options, position]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { position: position || options.position, content: this._elementRef.nativeElement });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroy)).subscribe(options => {\n this._assertInitialized();\n this.infoWindow.setOptions(options);\n });\n }\n _watchForPositionChanges() {\n this._position.pipe(takeUntil(this._destroy)).subscribe(position => {\n if (position) {\n this._assertInitialized();\n this.infoWindow.setPosition(position);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.infoWindow) {\n throw Error('Cannot interact with a Google Map Info Window before it has been ' +\n 'initialized. Please wait for the Info Window to load before trying to interact with ' +\n 'it.');\n }\n }\n }\n}\nMapInfoWindow.ɵfac = function MapInfoWindow_Factory(t) { return new (t || MapInfoWindow)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapInfoWindow.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapInfoWindow, selectors: [[\"map-info-window\"]], hostAttrs: [2, \"display\", \"none\"], inputs: { options: \"options\", position: \"position\" }, outputs: { closeclick: \"closeclick\", contentChanged: \"contentChanged\", domready: \"domready\", positionChanged: \"positionChanged\", zindexChanged: \"zindexChanged\" }, exportAs: [\"mapInfoWindow\"] });\nMapInfoWindow.ctorParameters = () => [\n { type: GoogleMap },\n { type: ElementRef },\n { type: NgZone }\n];\nMapInfoWindow.propDecorators = {\n options: [{ type: Input }],\n position: [{ type: Input }],\n closeclick: [{ type: Output }],\n contentChanged: [{ type: Output }],\n domready: [{ type: Output }],\n positionChanged: [{ type: Output }],\n zindexChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapInfoWindow, [{\n type: Directive,\n args: [{\n selector: 'map-info-window',\n exportAs: 'mapInfoWindow',\n host: { 'style': 'display: none' }\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { closeclick: [{\n type: Output\n }], contentChanged: [{\n type: Output\n }], domready: [{\n type: Output\n }], positionChanged: [{\n type: Output\n }], zindexChanged: [{\n type: Output\n }], options: [{\n type: Input\n }], position: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps KML Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer\n */\nclass MapKmlLayer {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._url = new BehaviorSubject('');\n this._destroyed = new Subject();\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.click\n */\n this.kmlClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/kml\n * #KmlLayer.defaultviewport_changed\n */\n this.defaultviewportChanged = this._eventManager.getLazyEmitter('defaultviewport_changed');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.status_changed\n */\n this.statusChanged = this._eventManager.getLazyEmitter('status_changed');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set url(url) {\n this._url.next(url);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => this.kmlLayer = new google.maps.KmlLayer(options));\n this._assertInitialized();\n this.kmlLayer.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.kmlLayer);\n });\n this._watchForOptionsChanges();\n this._watchForUrlChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.kmlLayer) {\n this.kmlLayer.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getDefaultViewport\n */\n getDefaultViewport() {\n this._assertInitialized();\n return this.kmlLayer.getDefaultViewport();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getMetadata\n */\n getMetadata() {\n this._assertInitialized();\n return this.kmlLayer.getMetadata();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getStatus\n */\n getStatus() {\n this._assertInitialized();\n return this.kmlLayer.getStatus();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getUrl\n */\n getUrl() {\n this._assertInitialized();\n return this.kmlLayer.getUrl();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/kml#KmlLayer.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.kmlLayer.getZIndex();\n }\n _combineOptions() {\n return combineLatest([this._options, this._url]).pipe(map(([options, url]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { url: url || options.url });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n if (this.kmlLayer) {\n this._assertInitialized();\n this.kmlLayer.setOptions(options);\n }\n });\n }\n _watchForUrlChanges() {\n this._url.pipe(takeUntil(this._destroyed)).subscribe(url => {\n if (url && this.kmlLayer) {\n this._assertInitialized();\n this.kmlLayer.setUrl(url);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.kmlLayer) {\n throw Error('Cannot interact with a Google Map KmlLayer before it has been ' +\n 'initialized. Please wait for the KmlLayer to load before trying to interact with it.');\n }\n }\n }\n}\nMapKmlLayer.ɵfac = function MapKmlLayer_Factory(t) { return new (t || MapKmlLayer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapKmlLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapKmlLayer, selectors: [[\"map-kml-layer\"]], inputs: { options: \"options\", url: \"url\" }, outputs: { kmlClick: \"kmlClick\", defaultviewportChanged: \"defaultviewportChanged\", statusChanged: \"statusChanged\" }, exportAs: [\"mapKmlLayer\"] });\nMapKmlLayer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapKmlLayer.propDecorators = {\n options: [{ type: Input }],\n url: [{ type: Input }],\n kmlClick: [{ type: Output }],\n defaultviewportChanged: [{ type: Output }],\n statusChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapKmlLayer, [{\n type: Directive,\n args: [{\n selector: 'map-kml-layer',\n exportAs: 'mapKmlLayer'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { kmlClick: [{\n type: Output\n }], defaultviewportChanged: [{\n type: Output\n }], statusChanged: [{\n type: Output\n }], options: [{\n type: Input\n }], url: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Default options for the Google Maps marker component. Displays a marker\n * at the Googleplex.\n */\nconst DEFAULT_MARKER_OPTIONS = {\n position: { lat: 37.421995, lng: -122.084092 },\n};\n/**\n * Angular component that renders a Google Maps marker via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/marker\n */\nclass MapMarker {\n constructor(_googleMap, _ngZone) {\n this._googleMap = _googleMap;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.animation_changed\n */\n this.animationChanged = this._eventManager.getLazyEmitter('animation_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.click\n */\n this.mapClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.clickable_changed\n */\n this.clickableChanged = this._eventManager.getLazyEmitter('clickable_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.cursor_changed\n */\n this.cursorChanged = this._eventManager.getLazyEmitter('cursor_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dblclick\n */\n this.mapDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.drag\n */\n this.mapDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dragend\n */\n this.mapDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.draggable_changed\n */\n this.draggableChanged = this._eventManager.getLazyEmitter('draggable_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.dragstart\n */\n this.mapDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.flat_changed\n */\n this.flatChanged = this._eventManager.getLazyEmitter('flat_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.icon_changed\n */\n this.iconChanged = this._eventManager.getLazyEmitter('icon_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mousedown\n */\n this.mapMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseout\n */\n this.mapMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseover\n */\n this.mapMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.mouseup\n */\n this.mapMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.position_changed\n */\n this.positionChanged = this._eventManager.getLazyEmitter('position_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.rightclick\n */\n this.mapRightclick = this._eventManager.getLazyEmitter('rightclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.shape_changed\n */\n this.shapeChanged = this._eventManager.getLazyEmitter('shape_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.title_changed\n */\n this.titleChanged = this._eventManager.getLazyEmitter('title_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.visible_changed\n */\n this.visibleChanged = this._eventManager.getLazyEmitter('visible_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.zindex_changed\n */\n this.zindexChanged = this._eventManager.getLazyEmitter('zindex_changed');\n }\n /**\n * Title of the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.title\n */\n set title(title) {\n this._title = title;\n }\n /**\n * Position of the marker. See:\n * developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.position\n */\n set position(position) {\n this._position = position;\n }\n /**\n * Label for the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.label\n */\n set label(label) {\n this._label = label;\n }\n /**\n * Whether the marker is clickable. See:\n * developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.clickable\n */\n set clickable(clickable) {\n this._clickable = clickable;\n }\n /**\n * Options used to configure the marker.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions\n */\n set options(options) {\n this._options = options;\n }\n /**\n * Icon to be used for the marker.\n * See: https://developers.google.com/maps/documentation/javascript/reference/marker#Icon\n */\n set icon(icon) {\n this._icon = icon;\n }\n /**\n * Whether the marker is visible.\n * See: developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions.visible\n */\n set visible(value) {\n this._visible = value;\n }\n ngOnInit() {\n if (this._googleMap._isBrowser) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.marker = new google.maps.Marker(this._combineOptions());\n });\n this._assertInitialized();\n this.marker.setMap(this._googleMap.googleMap);\n this._eventManager.setTarget(this.marker);\n }\n }\n ngOnChanges(changes) {\n const { marker, _title, _position, _label, _clickable, _icon, _visible } = this;\n if (marker) {\n if (changes['options']) {\n marker.setOptions(this._combineOptions());\n }\n if (changes['title'] && _title !== undefined) {\n marker.setTitle(_title);\n }\n if (changes['position'] && _position) {\n marker.setPosition(_position);\n }\n if (changes['label'] && _label !== undefined) {\n marker.setLabel(_label);\n }\n if (changes['clickable'] && _clickable !== undefined) {\n marker.setClickable(_clickable);\n }\n if (changes['icon'] && _icon) {\n marker.setIcon(_icon);\n }\n if (changes['visible'] && _visible !== undefined) {\n marker.setVisible(_visible);\n }\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n if (this.marker) {\n this.marker.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getAnimation\n */\n getAnimation() {\n this._assertInitialized();\n return this.marker.getAnimation() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getClickable\n */\n getClickable() {\n this._assertInitialized();\n return this.marker.getClickable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getCursor\n */\n getCursor() {\n this._assertInitialized();\n return this.marker.getCursor() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return !!this.marker.getDraggable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getIcon\n */\n getIcon() {\n this._assertInitialized();\n return this.marker.getIcon() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getLabel\n */\n getLabel() {\n this._assertInitialized();\n return this.marker.getLabel() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getOpacity\n */\n getOpacity() {\n this._assertInitialized();\n return this.marker.getOpacity() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getPosition\n */\n getPosition() {\n this._assertInitialized();\n return this.marker.getPosition() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getShape\n */\n getShape() {\n this._assertInitialized();\n return this.marker.getShape() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getTitle\n */\n getTitle() {\n this._assertInitialized();\n return this.marker.getTitle() || null;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.marker.getVisible();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/marker#Marker.getZIndex\n */\n getZIndex() {\n this._assertInitialized();\n return this.marker.getZIndex() || null;\n }\n /** Gets the anchor point that can be used to attach other Google Maps objects. */\n getAnchor() {\n this._assertInitialized();\n return this.marker;\n }\n /** Creates a combined options object using the passed-in options and the individual inputs. */\n _combineOptions() {\n var _a, _b;\n const options = this._options || DEFAULT_MARKER_OPTIONS;\n return Object.assign(Object.assign({}, options), { title: this._title || options.title, position: this._position || options.position, label: this._label || options.label, clickable: (_a = this._clickable) !== null && _a !== void 0 ? _a : options.clickable, map: this._googleMap.googleMap, icon: this._icon || options.icon, visible: (_b = this._visible) !== null && _b !== void 0 ? _b : options.visible });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.marker) {\n throw Error('Cannot interact with a Google Map Marker before it has been ' +\n 'initialized. Please wait for the Marker to load before trying to interact with it.');\n }\n }\n }\n}\nMapMarker.ɵfac = function MapMarker_Factory(t) { return new (t || MapMarker)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapMarker.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapMarker, selectors: [[\"map-marker\"]], inputs: { title: \"title\", position: \"position\", label: \"label\", clickable: \"clickable\", options: \"options\", icon: \"icon\", visible: \"visible\" }, outputs: { animationChanged: \"animationChanged\", mapClick: \"mapClick\", clickableChanged: \"clickableChanged\", cursorChanged: \"cursorChanged\", mapDblclick: \"mapDblclick\", mapDrag: \"mapDrag\", mapDragend: \"mapDragend\", draggableChanged: \"draggableChanged\", mapDragstart: \"mapDragstart\", flatChanged: \"flatChanged\", iconChanged: \"iconChanged\", mapMousedown: \"mapMousedown\", mapMouseout: \"mapMouseout\", mapMouseover: \"mapMouseover\", mapMouseup: \"mapMouseup\", positionChanged: \"positionChanged\", mapRightclick: \"mapRightclick\", shapeChanged: \"shapeChanged\", titleChanged: \"titleChanged\", visibleChanged: \"visibleChanged\", zindexChanged: \"zindexChanged\" }, exportAs: [\"mapMarker\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nMapMarker.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapMarker.propDecorators = {\n title: [{ type: Input }],\n position: [{ type: Input }],\n label: [{ type: Input }],\n clickable: [{ type: Input }],\n options: [{ type: Input }],\n icon: [{ type: Input }],\n visible: [{ type: Input }],\n animationChanged: [{ type: Output }],\n mapClick: [{ type: Output }],\n clickableChanged: [{ type: Output }],\n cursorChanged: [{ type: Output }],\n mapDblclick: [{ type: Output }],\n mapDrag: [{ type: Output }],\n mapDragend: [{ type: Output }],\n draggableChanged: [{ type: Output }],\n mapDragstart: [{ type: Output }],\n flatChanged: [{ type: Output }],\n iconChanged: [{ type: Output }],\n mapMousedown: [{ type: Output }],\n mapMouseout: [{ type: Output }],\n mapMouseover: [{ type: Output }],\n mapMouseup: [{ type: Output }],\n positionChanged: [{ type: Output }],\n mapRightclick: [{ type: Output }],\n shapeChanged: [{ type: Output }],\n titleChanged: [{ type: Output }],\n visibleChanged: [{ type: Output }],\n zindexChanged: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapMarker, [{\n type: Directive,\n args: [{\n selector: 'map-marker',\n exportAs: 'mapMarker'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { animationChanged: [{\n type: Output\n }], mapClick: [{\n type: Output\n }], clickableChanged: [{\n type: Output\n }], cursorChanged: [{\n type: Output\n }], mapDblclick: [{\n type: Output\n }], mapDrag: [{\n type: Output\n }], mapDragend: [{\n type: Output\n }], draggableChanged: [{\n type: Output\n }], mapDragstart: [{\n type: Output\n }], flatChanged: [{\n type: Output\n }], iconChanged: [{\n type: Output\n }], mapMousedown: [{\n type: Output\n }], mapMouseout: [{\n type: Output\n }], mapMouseover: [{\n type: Output\n }], mapMouseup: [{\n type: Output\n }], positionChanged: [{\n type: Output\n }], mapRightclick: [{\n type: Output\n }], shapeChanged: [{\n type: Output\n }], titleChanged: [{\n type: Output\n }], visibleChanged: [{\n type: Output\n }], zindexChanged: [{\n type: Output\n }], title: [{\n type: Input\n }], position: [{\n type: Input\n }], label: [{\n type: Input\n }], clickable: [{\n type: Input\n }], options: [{\n type: Input\n }], icon: [{\n type: Input\n }], visible: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Default options for a clusterer. */\nconst DEFAULT_CLUSTERER_OPTIONS = {};\n/**\n * Angular component for implementing a Google Maps Marker Clusterer.\n *\n * See https://developers.google.com/maps/documentation/javascript/marker-clustering\n */\nclass MapMarkerClusterer {\n constructor(_googleMap, _ngZone) {\n this._googleMap = _googleMap;\n this._ngZone = _ngZone;\n this._currentMarkers = new Set();\n this._eventManager = new MapEventManager(this._ngZone);\n this._destroy = new Subject();\n this.ariaLabelFn = () => '';\n /**\n * See\n * googlemaps.github.io/v3-utility-library/modules/\n * _google_markerclustererplus.html#clusteringbegin\n */\n this.clusteringbegin = this._eventManager.getLazyEmitter('clusteringbegin');\n /**\n * See\n * googlemaps.github.io/v3-utility-library/modules/_google_markerclustererplus.html#clusteringend\n */\n this.clusteringend = this._eventManager.getLazyEmitter('clusteringend');\n /** Emits when a cluster has been clicked. */\n this.clusterClick = this._eventManager.getLazyEmitter('click');\n this._canInitialize = this._googleMap._isBrowser;\n }\n set averageCenter(averageCenter) {\n this._averageCenter = averageCenter;\n }\n set batchSizeIE(batchSizeIE) {\n this._batchSizeIE = batchSizeIE;\n }\n set calculator(calculator) {\n this._calculator = calculator;\n }\n set clusterClass(clusterClass) {\n this._clusterClass = clusterClass;\n }\n set enableRetinaIcons(enableRetinaIcons) {\n this._enableRetinaIcons = enableRetinaIcons;\n }\n set gridSize(gridSize) {\n this._gridSize = gridSize;\n }\n set ignoreHidden(ignoreHidden) {\n this._ignoreHidden = ignoreHidden;\n }\n set imageExtension(imageExtension) {\n this._imageExtension = imageExtension;\n }\n set imagePath(imagePath) {\n this._imagePath = imagePath;\n }\n set imageSizes(imageSizes) {\n this._imageSizes = imageSizes;\n }\n set maxZoom(maxZoom) {\n this._maxZoom = maxZoom;\n }\n set minimumClusterSize(minimumClusterSize) {\n this._minimumClusterSize = minimumClusterSize;\n }\n set styles(styles) {\n this._styles = styles;\n }\n set title(title) {\n this._title = title;\n }\n set zIndex(zIndex) {\n this._zIndex = zIndex;\n }\n set zoomOnClick(zoomOnClick) {\n this._zoomOnClick = zoomOnClick;\n }\n set options(options) {\n this._options = options;\n }\n ngOnInit() {\n if (this._canInitialize) {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.markerClusterer = new MarkerClusterer(this._googleMap.googleMap, [], this._combineOptions());\n });\n this._assertInitialized();\n this._eventManager.setTarget(this.markerClusterer);\n }\n }\n ngAfterContentInit() {\n if (this._canInitialize) {\n this._watchForMarkerChanges();\n }\n }\n ngOnChanges(changes) {\n const { markerClusterer: clusterer, ariaLabelFn, _averageCenter, _batchSizeIE, _calculator, _styles, _clusterClass, _enableRetinaIcons, _gridSize, _ignoreHidden, _imageExtension, _imagePath, _imageSizes, _maxZoom, _minimumClusterSize, _title, _zIndex, _zoomOnClick } = this;\n if (clusterer) {\n if (changes['options']) {\n clusterer.setOptions(this._combineOptions());\n }\n if (changes['ariaLabelFn']) {\n clusterer.ariaLabelFn = ariaLabelFn;\n }\n if (changes['averageCenter'] && _averageCenter !== undefined) {\n clusterer.setAverageCenter(_averageCenter);\n }\n if (changes['batchSizeIE'] && _batchSizeIE !== undefined) {\n clusterer.setBatchSizeIE(_batchSizeIE);\n }\n if (changes['calculator'] && !!_calculator) {\n clusterer.setCalculator(_calculator);\n }\n if (changes['clusterClass'] && _clusterClass !== undefined) {\n clusterer.setClusterClass(_clusterClass);\n }\n if (changes['enableRetinaIcons'] && _enableRetinaIcons !== undefined) {\n clusterer.setEnableRetinaIcons(_enableRetinaIcons);\n }\n if (changes['gridSize'] && _gridSize !== undefined) {\n clusterer.setGridSize(_gridSize);\n }\n if (changes['ignoreHidden'] && _ignoreHidden !== undefined) {\n clusterer.setIgnoreHidden(_ignoreHidden);\n }\n if (changes['imageExtension'] && _imageExtension !== undefined) {\n clusterer.setImageExtension(_imageExtension);\n }\n if (changes['imagePath'] && _imagePath !== undefined) {\n clusterer.setImagePath(_imagePath);\n }\n if (changes['imageSizes'] && _imageSizes) {\n clusterer.setImageSizes(_imageSizes);\n }\n if (changes['maxZoom'] && _maxZoom !== undefined) {\n clusterer.setMaxZoom(_maxZoom);\n }\n if (changes['minimumClusterSize'] && _minimumClusterSize !== undefined) {\n clusterer.setMinimumClusterSize(_minimumClusterSize);\n }\n if (changes['styles'] && _styles) {\n clusterer.setStyles(_styles);\n }\n if (changes['title'] && _title !== undefined) {\n clusterer.setTitle(_title);\n }\n if (changes['zIndex'] && _zIndex !== undefined) {\n clusterer.setZIndex(_zIndex);\n }\n if (changes['zoomOnClick'] && _zoomOnClick !== undefined) {\n clusterer.setZoomOnClick(_zoomOnClick);\n }\n }\n }\n ngOnDestroy() {\n this._destroy.next();\n this._destroy.complete();\n this._eventManager.destroy();\n if (this.markerClusterer) {\n this.markerClusterer.setMap(null);\n }\n }\n fitMapToMarkers(padding) {\n this._assertInitialized();\n this.markerClusterer.fitMapToMarkers(padding);\n }\n getAverageCenter() {\n this._assertInitialized();\n return this.markerClusterer.getAverageCenter();\n }\n getBatchSizeIE() {\n this._assertInitialized();\n return this.markerClusterer.getBatchSizeIE();\n }\n getCalculator() {\n this._assertInitialized();\n return this.markerClusterer.getCalculator();\n }\n getClusterClass() {\n this._assertInitialized();\n return this.markerClusterer.getClusterClass();\n }\n getClusters() {\n this._assertInitialized();\n return this.markerClusterer.getClusters();\n }\n getEnableRetinaIcons() {\n this._assertInitialized();\n return this.markerClusterer.getEnableRetinaIcons();\n }\n getGridSize() {\n this._assertInitialized();\n return this.markerClusterer.getGridSize();\n }\n getIgnoreHidden() {\n this._assertInitialized();\n return this.markerClusterer.getIgnoreHidden();\n }\n getImageExtension() {\n this._assertInitialized();\n return this.markerClusterer.getImageExtension();\n }\n getImagePath() {\n this._assertInitialized();\n return this.markerClusterer.getImagePath();\n }\n getImageSizes() {\n this._assertInitialized();\n return this.markerClusterer.getImageSizes();\n }\n getMaxZoom() {\n this._assertInitialized();\n return this.markerClusterer.getMaxZoom();\n }\n getMinimumClusterSize() {\n this._assertInitialized();\n return this.markerClusterer.getMinimumClusterSize();\n }\n getStyles() {\n this._assertInitialized();\n return this.markerClusterer.getStyles();\n }\n getTitle() {\n this._assertInitialized();\n return this.markerClusterer.getTitle();\n }\n getTotalClusters() {\n this._assertInitialized();\n return this.markerClusterer.getTotalClusters();\n }\n getTotalMarkers() {\n this._assertInitialized();\n return this.markerClusterer.getTotalMarkers();\n }\n getZIndex() {\n this._assertInitialized();\n return this.markerClusterer.getZIndex();\n }\n getZoomOnClick() {\n this._assertInitialized();\n return this.markerClusterer.getZoomOnClick();\n }\n _combineOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n const options = this._options || DEFAULT_CLUSTERER_OPTIONS;\n return Object.assign(Object.assign({}, options), { ariaLabelFn: (_a = this.ariaLabelFn) !== null && _a !== void 0 ? _a : options.ariaLabelFn, averageCenter: (_b = this._averageCenter) !== null && _b !== void 0 ? _b : options.averageCenter, batchSize: (_c = this.batchSize) !== null && _c !== void 0 ? _c : options.batchSize, batchSizeIE: (_d = this._batchSizeIE) !== null && _d !== void 0 ? _d : options.batchSizeIE, calculator: (_e = this._calculator) !== null && _e !== void 0 ? _e : options.calculator, clusterClass: (_f = this._clusterClass) !== null && _f !== void 0 ? _f : options.clusterClass, enableRetinaIcons: (_g = this._enableRetinaIcons) !== null && _g !== void 0 ? _g : options.enableRetinaIcons, gridSize: (_h = this._gridSize) !== null && _h !== void 0 ? _h : options.gridSize, ignoreHidden: (_j = this._ignoreHidden) !== null && _j !== void 0 ? _j : options.ignoreHidden, imageExtension: (_k = this._imageExtension) !== null && _k !== void 0 ? _k : options.imageExtension, imagePath: (_l = this._imagePath) !== null && _l !== void 0 ? _l : options.imagePath, imageSizes: (_m = this._imageSizes) !== null && _m !== void 0 ? _m : options.imageSizes, maxZoom: (_o = this._maxZoom) !== null && _o !== void 0 ? _o : options.maxZoom, minimumClusterSize: (_p = this._minimumClusterSize) !== null && _p !== void 0 ? _p : options.minimumClusterSize, styles: (_q = this._styles) !== null && _q !== void 0 ? _q : options.styles, title: (_r = this._title) !== null && _r !== void 0 ? _r : options.title, zIndex: (_s = this._zIndex) !== null && _s !== void 0 ? _s : options.zIndex, zoomOnClick: (_t = this._zoomOnClick) !== null && _t !== void 0 ? _t : options.zoomOnClick });\n }\n _watchForMarkerChanges() {\n this._assertInitialized();\n const initialMarkers = [];\n for (const marker of this._getInternalMarkers(this._markers.toArray())) {\n this._currentMarkers.add(marker);\n initialMarkers.push(marker);\n }\n this.markerClusterer.addMarkers(initialMarkers);\n this._markers.changes.pipe(takeUntil(this._destroy)).subscribe((markerComponents) => {\n this._assertInitialized();\n const newMarkers = new Set(this._getInternalMarkers(markerComponents));\n const markersToAdd = [];\n const markersToRemove = [];\n for (const marker of Array.from(newMarkers)) {\n if (!this._currentMarkers.has(marker)) {\n this._currentMarkers.add(marker);\n markersToAdd.push(marker);\n }\n }\n for (const marker of Array.from(this._currentMarkers)) {\n if (!newMarkers.has(marker)) {\n markersToRemove.push(marker);\n }\n }\n this.markerClusterer.addMarkers(markersToAdd, true);\n this.markerClusterer.removeMarkers(markersToRemove, true);\n this.markerClusterer.repaint();\n for (const marker of markersToRemove) {\n this._currentMarkers.delete(marker);\n }\n });\n }\n _getInternalMarkers(markers) {\n return markers.filter(markerComponent => !!markerComponent.marker)\n .map(markerComponent => markerComponent.marker);\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.markerClusterer) {\n throw Error('Cannot interact with a MarkerClusterer before it has been initialized. ' +\n 'Please wait for the MarkerClusterer to load before trying to interact with it.');\n }\n }\n }\n}\nMapMarkerClusterer.ɵfac = function MapMarkerClusterer_Factory(t) { return new (t || MapMarkerClusterer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapMarkerClusterer.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MapMarkerClusterer, selectors: [[\"map-marker-clusterer\"]], contentQueries: function MapMarkerClusterer_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, MapMarker, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._markers = _t);\n } }, inputs: { ariaLabelFn: \"ariaLabelFn\", averageCenter: \"averageCenter\", batchSizeIE: \"batchSizeIE\", calculator: \"calculator\", clusterClass: \"clusterClass\", enableRetinaIcons: \"enableRetinaIcons\", gridSize: \"gridSize\", ignoreHidden: \"ignoreHidden\", imageExtension: \"imageExtension\", imagePath: \"imagePath\", imageSizes: \"imageSizes\", maxZoom: \"maxZoom\", minimumClusterSize: \"minimumClusterSize\", styles: \"styles\", title: \"title\", zIndex: \"zIndex\", zoomOnClick: \"zoomOnClick\", options: \"options\", batchSize: \"batchSize\" }, outputs: { clusteringbegin: \"clusteringbegin\", clusteringend: \"clusteringend\", clusterClick: \"clusterClick\" }, exportAs: [\"mapMarkerClusterer\"], features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function MapMarkerClusterer_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2, changeDetection: 0 });\nMapMarkerClusterer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapMarkerClusterer.propDecorators = {\n ariaLabelFn: [{ type: Input }],\n averageCenter: [{ type: Input }],\n batchSize: [{ type: Input }],\n batchSizeIE: [{ type: Input }],\n calculator: [{ type: Input }],\n clusterClass: [{ type: Input }],\n enableRetinaIcons: [{ type: Input }],\n gridSize: [{ type: Input }],\n ignoreHidden: [{ type: Input }],\n imageExtension: [{ type: Input }],\n imagePath: [{ type: Input }],\n imageSizes: [{ type: Input }],\n maxZoom: [{ type: Input }],\n minimumClusterSize: [{ type: Input }],\n styles: [{ type: Input }],\n title: [{ type: Input }],\n zIndex: [{ type: Input }],\n zoomOnClick: [{ type: Input }],\n options: [{ type: Input }],\n clusteringbegin: [{ type: Output }],\n clusteringend: [{ type: Output }],\n clusterClick: [{ type: Output }],\n _markers: [{ type: ContentChildren, args: [MapMarker, { descendants: true },] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapMarkerClusterer, [{\n type: Component,\n args: [{\n selector: 'map-marker-clusterer',\n exportAs: 'mapMarkerClusterer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n encapsulation: ViewEncapsulation.None\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { ariaLabelFn: [{\n type: Input\n }], clusteringbegin: [{\n type: Output\n }], clusteringend: [{\n type: Output\n }], clusterClick: [{\n type: Output\n }], averageCenter: [{\n type: Input\n }], batchSizeIE: [{\n type: Input\n }], calculator: [{\n type: Input\n }], clusterClass: [{\n type: Input\n }], enableRetinaIcons: [{\n type: Input\n }], gridSize: [{\n type: Input\n }], ignoreHidden: [{\n type: Input\n }], imageExtension: [{\n type: Input\n }], imagePath: [{\n type: Input\n }], imageSizes: [{\n type: Input\n }], maxZoom: [{\n type: Input\n }], minimumClusterSize: [{\n type: Input\n }], styles: [{\n type: Input\n }], title: [{\n type: Input\n }], zIndex: [{\n type: Input\n }], zoomOnClick: [{\n type: Input\n }], options: [{\n type: Input\n }], batchSize: [{\n type: Input\n }], _markers: [{\n type: ContentChildren,\n args: [MapMarker, { descendants: true }]\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Polygon via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon\n */\nclass MapPolygon {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._paths = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.click\n */\n this.polygonClick = this._eventManager.getLazyEmitter('click');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dblclick\n */\n this.polygonDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.drag\n */\n this.polygonDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dragend\n */\n this.polygonDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.dragstart\n */\n this.polygonDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mousedown\n */\n this.polygonMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mousemove\n */\n this.polygonMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseout\n */\n this.polygonMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseover\n */\n this.polygonMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.mouseup\n */\n this.polygonMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.rightclick\n */\n this.polygonRightclick = this._eventManager.getLazyEmitter('rightclick');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set paths(paths) {\n this._paths.next(paths);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.polygon = new google.maps.Polygon(options);\n });\n this._assertInitialized();\n this.polygon.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.polygon);\n });\n this._watchForOptionsChanges();\n this._watchForPathChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.polygon) {\n this.polygon.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.polygon.getDraggable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.polygon.getEditable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getPath\n */\n getPath() {\n this._assertInitialized();\n return this.polygon.getPath();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getPaths\n */\n getPaths() {\n this._assertInitialized();\n return this.polygon.getPaths();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polygon.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.polygon.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._paths]).pipe(map(([options, paths]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { paths: paths || options.paths });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.polygon.setOptions(options);\n });\n }\n _watchForPathChanges() {\n this._paths.pipe(takeUntil(this._destroyed)).subscribe(paths => {\n if (paths) {\n this._assertInitialized();\n this.polygon.setPaths(paths);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.polygon) {\n throw Error('Cannot interact with a Google Map Polygon before it has been ' +\n 'initialized. Please wait for the Polygon to load before trying to interact with it.');\n }\n }\n }\n}\nMapPolygon.ɵfac = function MapPolygon_Factory(t) { return new (t || MapPolygon)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapPolygon.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapPolygon, selectors: [[\"map-polygon\"]], inputs: { options: \"options\", paths: \"paths\" }, outputs: { polygonClick: \"polygonClick\", polygonDblclick: \"polygonDblclick\", polygonDrag: \"polygonDrag\", polygonDragend: \"polygonDragend\", polygonDragstart: \"polygonDragstart\", polygonMousedown: \"polygonMousedown\", polygonMousemove: \"polygonMousemove\", polygonMouseout: \"polygonMouseout\", polygonMouseover: \"polygonMouseover\", polygonMouseup: \"polygonMouseup\", polygonRightclick: \"polygonRightclick\" }, exportAs: [\"mapPolygon\"] });\nMapPolygon.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapPolygon.propDecorators = {\n options: [{ type: Input }],\n paths: [{ type: Input }],\n polygonClick: [{ type: Output }],\n polygonDblclick: [{ type: Output }],\n polygonDrag: [{ type: Output }],\n polygonDragend: [{ type: Output }],\n polygonDragstart: [{ type: Output }],\n polygonMousedown: [{ type: Output }],\n polygonMousemove: [{ type: Output }],\n polygonMouseout: [{ type: Output }],\n polygonMouseover: [{ type: Output }],\n polygonMouseup: [{ type: Output }],\n polygonRightclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapPolygon, [{\n type: Directive,\n args: [{\n selector: 'map-polygon',\n exportAs: 'mapPolygon'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { polygonClick: [{\n type: Output\n }], polygonDblclick: [{\n type: Output\n }], polygonDrag: [{\n type: Output\n }], polygonDragend: [{\n type: Output\n }], polygonDragstart: [{\n type: Output\n }], polygonMousedown: [{\n type: Output\n }], polygonMousemove: [{\n type: Output\n }], polygonMouseout: [{\n type: Output\n }], polygonMouseover: [{\n type: Output\n }], polygonMouseup: [{\n type: Output\n }], polygonRightclick: [{\n type: Output\n }], options: [{\n type: Input\n }], paths: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Polyline via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline\n */\nclass MapPolyline {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._path = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.click\n */\n this.polylineClick = this._eventManager.getLazyEmitter('click');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dblclick\n */\n this.polylineDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.drag\n */\n this.polylineDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dragend\n */\n this.polylineDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.dragstart\n */\n this.polylineDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mousedown\n */\n this.polylineMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mousemove\n */\n this.polylineMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseout\n */\n this.polylineMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseover\n */\n this.polylineMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.mouseup\n */\n this.polylineMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.rightclick\n */\n this.polylineRightclick = this._eventManager.getLazyEmitter('rightclick');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set path(path) {\n this._path.next(path);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => this.polyline = new google.maps.Polyline(options));\n this._assertInitialized();\n this.polyline.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.polyline);\n });\n this._watchForOptionsChanges();\n this._watchForPathChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.polyline) {\n this.polyline.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.polyline.getDraggable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.polyline.getEditable();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getPath\n */\n getPath() {\n this._assertInitialized();\n return this.polyline.getPath();\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Polyline.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.polyline.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._path]).pipe(map(([options, path]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { path: path || options.path });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.polyline.setOptions(options);\n });\n }\n _watchForPathChanges() {\n this._path.pipe(takeUntil(this._destroyed)).subscribe(path => {\n if (path) {\n this._assertInitialized();\n this.polyline.setPath(path);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.polyline) {\n throw Error('Cannot interact with a Google Map Polyline before it has been ' +\n 'initialized. Please wait for the Polyline to load before trying to interact with it.');\n }\n }\n }\n}\nMapPolyline.ɵfac = function MapPolyline_Factory(t) { return new (t || MapPolyline)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapPolyline.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapPolyline, selectors: [[\"map-polyline\"]], inputs: { options: \"options\", path: \"path\" }, outputs: { polylineClick: \"polylineClick\", polylineDblclick: \"polylineDblclick\", polylineDrag: \"polylineDrag\", polylineDragend: \"polylineDragend\", polylineDragstart: \"polylineDragstart\", polylineMousedown: \"polylineMousedown\", polylineMousemove: \"polylineMousemove\", polylineMouseout: \"polylineMouseout\", polylineMouseover: \"polylineMouseover\", polylineMouseup: \"polylineMouseup\", polylineRightclick: \"polylineRightclick\" }, exportAs: [\"mapPolyline\"] });\nMapPolyline.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapPolyline.propDecorators = {\n options: [{ type: Input }],\n path: [{ type: Input }],\n polylineClick: [{ type: Output }],\n polylineDblclick: [{ type: Output }],\n polylineDrag: [{ type: Output }],\n polylineDragend: [{ type: Output }],\n polylineDragstart: [{ type: Output }],\n polylineMousedown: [{ type: Output }],\n polylineMousemove: [{ type: Output }],\n polylineMouseout: [{ type: Output }],\n polylineMouseover: [{ type: Output }],\n polylineMouseup: [{ type: Output }],\n polylineRightclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapPolyline, [{\n type: Directive,\n args: [{\n selector: 'map-polyline',\n exportAs: 'mapPolyline'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { polylineClick: [{\n type: Output\n }], polylineDblclick: [{\n type: Output\n }], polylineDrag: [{\n type: Output\n }], polylineDragend: [{\n type: Output\n }], polylineDragstart: [{\n type: Output\n }], polylineMousedown: [{\n type: Output\n }], polylineMousemove: [{\n type: Output\n }], polylineMouseout: [{\n type: Output\n }], polylineMouseover: [{\n type: Output\n }], polylineMouseup: [{\n type: Output\n }], polylineRightclick: [{\n type: Output\n }], options: [{\n type: Input\n }], path: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Rectangle via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle\n */\nclass MapRectangle {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._eventManager = new MapEventManager(this._ngZone);\n this._options = new BehaviorSubject({});\n this._bounds = new BehaviorSubject(undefined);\n this._destroyed = new Subject();\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.boundsChanged\n */ this.boundsChanged = this._eventManager.getLazyEmitter('bounds_changed');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.click\n */\n this.rectangleClick = this._eventManager.getLazyEmitter('click');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dblclick\n */\n this.rectangleDblclick = this._eventManager.getLazyEmitter('dblclick');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.drag\n */\n this.rectangleDrag = this._eventManager.getLazyEmitter('drag');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragend\n */\n this.rectangleDragend = this._eventManager.getLazyEmitter('dragend');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.dragstart\n */\n this.rectangleDragstart = this._eventManager.getLazyEmitter('dragstart');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousedown\n */\n this.rectangleMousedown = this._eventManager.getLazyEmitter('mousedown');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mousemove\n */\n this.rectangleMousemove = this._eventManager.getLazyEmitter('mousemove');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseout\n */\n this.rectangleMouseout = this._eventManager.getLazyEmitter('mouseout');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseover\n */\n this.rectangleMouseover = this._eventManager.getLazyEmitter('mouseover');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.mouseup\n */\n this.rectangleMouseup = this._eventManager.getLazyEmitter('mouseup');\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.rightclick\n */\n this.rectangleRightclick = this._eventManager.getLazyEmitter('rightclick');\n }\n set options(options) {\n this._options.next(options || {});\n }\n set bounds(bounds) {\n this._bounds.next(bounds);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.rectangle = new google.maps.Rectangle(options);\n });\n this._assertInitialized();\n this.rectangle.setMap(this._map.googleMap);\n this._eventManager.setTarget(this.rectangle);\n });\n this._watchForOptionsChanges();\n this._watchForBoundsChanges();\n }\n }\n ngOnDestroy() {\n this._eventManager.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n if (this.rectangle) {\n this.rectangle.setMap(null);\n }\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getBounds\n */\n getBounds() {\n this._assertInitialized();\n return this.rectangle.getBounds();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getDraggable\n */\n getDraggable() {\n this._assertInitialized();\n return this.rectangle.getDraggable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getEditable\n */\n getEditable() {\n this._assertInitialized();\n return this.rectangle.getEditable();\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/polygon#Rectangle.getVisible\n */\n getVisible() {\n this._assertInitialized();\n return this.rectangle.getVisible();\n }\n _combineOptions() {\n return combineLatest([this._options, this._bounds]).pipe(map(([options, bounds]) => {\n const combinedOptions = Object.assign(Object.assign({}, options), { bounds: bounds || options.bounds });\n return combinedOptions;\n }));\n }\n _watchForOptionsChanges() {\n this._options.pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.rectangle.setOptions(options);\n });\n }\n _watchForBoundsChanges() {\n this._bounds.pipe(takeUntil(this._destroyed)).subscribe(bounds => {\n if (bounds) {\n this._assertInitialized();\n this.rectangle.setBounds(bounds);\n }\n });\n }\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.rectangle) {\n throw Error('Cannot interact with a Google Map Rectangle before it has been initialized. ' +\n 'Please wait for the Rectangle to load before trying to interact with it.');\n }\n }\n }\n}\nMapRectangle.ɵfac = function MapRectangle_Factory(t) { return new (t || MapRectangle)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapRectangle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapRectangle, selectors: [[\"map-rectangle\"]], inputs: { options: \"options\", bounds: \"bounds\" }, outputs: { boundsChanged: \"boundsChanged\", rectangleClick: \"rectangleClick\", rectangleDblclick: \"rectangleDblclick\", rectangleDrag: \"rectangleDrag\", rectangleDragend: \"rectangleDragend\", rectangleDragstart: \"rectangleDragstart\", rectangleMousedown: \"rectangleMousedown\", rectangleMousemove: \"rectangleMousemove\", rectangleMouseout: \"rectangleMouseout\", rectangleMouseover: \"rectangleMouseover\", rectangleMouseup: \"rectangleMouseup\", rectangleRightclick: \"rectangleRightclick\" }, exportAs: [\"mapRectangle\"] });\nMapRectangle.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapRectangle.propDecorators = {\n options: [{ type: Input }],\n bounds: [{ type: Input }],\n boundsChanged: [{ type: Output }],\n rectangleClick: [{ type: Output }],\n rectangleDblclick: [{ type: Output }],\n rectangleDrag: [{ type: Output }],\n rectangleDragend: [{ type: Output }],\n rectangleDragstart: [{ type: Output }],\n rectangleMousedown: [{ type: Output }],\n rectangleMousemove: [{ type: Output }],\n rectangleMouseout: [{ type: Output }],\n rectangleMouseover: [{ type: Output }],\n rectangleMouseup: [{ type: Output }],\n rectangleRightclick: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapRectangle, [{\n type: Directive,\n args: [{\n selector: 'map-rectangle',\n exportAs: 'mapRectangle'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { boundsChanged: [{\n type: Output\n }], rectangleClick: [{\n type: Output\n }], rectangleDblclick: [{\n type: Output\n }], rectangleDrag: [{\n type: Output\n }], rectangleDragend: [{\n type: Output\n }], rectangleDragstart: [{\n type: Output\n }], rectangleMousedown: [{\n type: Output\n }], rectangleMousemove: [{\n type: Output\n }], rectangleMouseout: [{\n type: Output\n }], rectangleMouseover: [{\n type: Output\n }], rectangleMouseup: [{\n type: Output\n }], rectangleRightclick: [{\n type: Output\n }], options: [{\n type: Input\n }], bounds: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Traffic Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#TrafficLayer\n */\nclass MapTrafficLayer {\n constructor(_map, _ngZone) {\n this._map = _map;\n this._ngZone = _ngZone;\n this._autoRefresh = new BehaviorSubject(true);\n this._destroyed = new Subject();\n }\n /**\n * Whether the traffic layer refreshes with updated information automatically.\n */\n set autoRefresh(autoRefresh) {\n this._autoRefresh.next(autoRefresh);\n }\n ngOnInit() {\n if (this._map._isBrowser) {\n this._combineOptions().pipe(take(1)).subscribe(options => {\n // Create the object outside the zone so its events don't trigger change detection.\n this._ngZone.runOutsideAngular(() => {\n this.trafficLayer = new google.maps.TrafficLayer(options);\n });\n this._assertInitialized();\n this.trafficLayer.setMap(this._map.googleMap);\n });\n this._watchForAutoRefreshChanges();\n }\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n if (this.trafficLayer) {\n this.trafficLayer.setMap(null);\n }\n }\n _combineOptions() {\n return this._autoRefresh.pipe(map(autoRefresh => {\n const combinedOptions = { autoRefresh };\n return combinedOptions;\n }));\n }\n _watchForAutoRefreshChanges() {\n this._combineOptions().pipe(takeUntil(this._destroyed)).subscribe(options => {\n this._assertInitialized();\n this.trafficLayer.setOptions(options);\n });\n }\n _assertInitialized() {\n if (!this._map.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.trafficLayer) {\n throw Error('Cannot interact with a Google Map Traffic Layer before it has been initialized. ' +\n 'Please wait for the Traffic Layer to load before trying to interact with it.');\n }\n }\n}\nMapTrafficLayer.ɵfac = function MapTrafficLayer_Factory(t) { return new (t || MapTrafficLayer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapTrafficLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapTrafficLayer, selectors: [[\"map-traffic-layer\"]], inputs: { autoRefresh: \"autoRefresh\" }, exportAs: [\"mapTrafficLayer\"] });\nMapTrafficLayer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapTrafficLayer.propDecorators = {\n autoRefresh: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapTrafficLayer, [{\n type: Directive,\n args: [{\n selector: 'map-traffic-layer',\n exportAs: 'mapTrafficLayer'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { autoRefresh: [{\n type: Input\n }] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular component that renders a Google Maps Transit Layer via the Google Maps JavaScript API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/map#TransitLayer\n */\nclass MapTransitLayer extends MapBaseLayer {\n _initializeObject() {\n this.transitLayer = new google.maps.TransitLayer();\n }\n _setMap() {\n this._assertLayerInitialized();\n this.transitLayer.setMap(this._map.googleMap);\n }\n _unsetMap() {\n if (this.transitLayer) {\n this.transitLayer.setMap(null);\n }\n }\n _assertLayerInitialized() {\n if (!this.transitLayer) {\n throw Error('Cannot interact with a Google Map Transit Layer before it has been initialized. ' +\n 'Please wait for the Transit Layer to load before trying to interact with it.');\n }\n }\n}\nMapTransitLayer.ɵfac = /*@__PURE__*/ function () { let ɵMapTransitLayer_BaseFactory; return function MapTransitLayer_Factory(t) { return (ɵMapTransitLayer_BaseFactory || (ɵMapTransitLayer_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(MapTransitLayer)))(t || MapTransitLayer); }; }();\nMapTransitLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapTransitLayer, selectors: [[\"map-transit-layer\"]], exportAs: [\"mapTransitLayer\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapTransitLayer, [{\n type: Directive,\n args: [{\n selector: 'map-transit-layer',\n exportAs: 'mapTransitLayer'\n }]\n }], null, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular directive that renders a Google Maps heatmap via the Google Maps JavaScript API.\n *\n * See: https://developers.google.com/maps/documentation/javascript/reference/visualization\n */\nclass MapHeatmapLayer {\n constructor(_googleMap, _ngZone) {\n this._googleMap = _googleMap;\n this._ngZone = _ngZone;\n }\n /**\n * Data shown on the heatmap.\n * See: https://developers.google.com/maps/documentation/javascript/reference/visualization\n */\n set data(data) {\n this._data = data;\n }\n /**\n * Options used to configure the heatmap. See:\n * developers.google.com/maps/documentation/javascript/reference/visualization#HeatmapLayerOptions\n */\n set options(options) {\n this._options = options;\n }\n ngOnInit() {\n var _a, _b;\n if (this._googleMap._isBrowser) {\n if (!((_b = (_a = window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.visualization) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Namespace `google.maps.visualization` not found, cannot construct heatmap. ' +\n 'Please install the Google Maps JavaScript API with the \"visualization\" library: ' +\n 'https://developers.google.com/maps/documentation/javascript/visualization');\n }\n // Create the object outside the zone so its events don't trigger change detection.\n // We'll bring it back in inside the `MapEventManager` only for the events that the\n // user has subscribed to.\n this._ngZone.runOutsideAngular(() => {\n this.heatmap = new google.maps.visualization.HeatmapLayer(this._combineOptions());\n });\n this._assertInitialized();\n this.heatmap.setMap(this._googleMap.googleMap);\n }\n }\n ngOnChanges(changes) {\n const { _data, heatmap } = this;\n if (heatmap) {\n if (changes['options']) {\n heatmap.setOptions(this._combineOptions());\n }\n if (changes['data'] && _data !== undefined) {\n heatmap.setData(this._normalizeData(_data));\n }\n }\n }\n ngOnDestroy() {\n if (this.heatmap) {\n this.heatmap.setMap(null);\n }\n }\n /**\n * Gets the data that is currently shown on the heatmap.\n * See: developers.google.com/maps/documentation/javascript/reference/visualization#HeatmapLayer\n */\n getData() {\n this._assertInitialized();\n return this.heatmap.getData();\n }\n /** Creates a combined options object using the passed-in options and the individual inputs. */\n _combineOptions() {\n const options = this._options || {};\n return Object.assign(Object.assign({}, options), { data: this._normalizeData(this._data || options.data || []), map: this._googleMap.googleMap });\n }\n /**\n * Most Google Maps APIs support both `LatLng` objects and `LatLngLiteral`. The latter is more\n * convenient to write out, because the Google Maps API doesn't have to have been loaded in order\n * to construct them. The `HeatmapLayer` appears to be an exception that only allows a `LatLng`\n * object, or it throws a runtime error. Since it's more convenient and we expect that Angular\n * users will load the API asynchronously, we allow them to pass in a `LatLngLiteral` and we\n * convert it to a `LatLng` object before passing it off to Google Maps.\n */\n _normalizeData(data) {\n const result = [];\n data.forEach(item => {\n result.push(isLatLngLiteral(item) ? new google.maps.LatLng(item.lat, item.lng) : item);\n });\n return result;\n }\n /** Asserts that the heatmap object has been initialized. */\n _assertInitialized() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._googleMap.googleMap) {\n throw Error('Cannot access Google Map information before the API has been initialized. ' +\n 'Please wait for the API to load before trying to interact with it.');\n }\n if (!this.heatmap) {\n throw Error('Cannot interact with a Google Map HeatmapLayer before it has been ' +\n 'initialized. Please wait for the heatmap to load before trying to interact with it.');\n }\n }\n }\n}\nMapHeatmapLayer.ɵfac = function MapHeatmapLayer_Factory(t) { return new (t || MapHeatmapLayer)(ɵngcc0.ɵɵdirectiveInject(GoogleMap), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nMapHeatmapLayer.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MapHeatmapLayer, selectors: [[\"map-heatmap-layer\"]], inputs: { data: \"data\", options: \"options\" }, exportAs: [\"mapHeatmapLayer\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nMapHeatmapLayer.ctorParameters = () => [\n { type: GoogleMap },\n { type: NgZone }\n];\nMapHeatmapLayer.propDecorators = {\n data: [{ type: Input }],\n options: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapHeatmapLayer, [{\n type: Directive,\n args: [{\n selector: 'map-heatmap-layer',\n exportAs: 'mapHeatmapLayer'\n }]\n }], function () { return [{ type: GoogleMap }, { type: ɵngcc0.NgZone }]; }, { data: [{\n type: Input\n }], options: [{\n type: Input\n }] }); })();\n/** Asserts that an object is a `LatLngLiteral`. */\nfunction isLatLngLiteral(value) {\n return value && typeof value.lat === 'number' && typeof value.lng === 'number';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst COMPONENTS = [\n GoogleMap,\n MapBaseLayer,\n MapBicyclingLayer,\n MapCircle,\n MapDirectionsRenderer,\n MapGroundOverlay,\n MapInfoWindow,\n MapKmlLayer,\n MapMarker,\n MapMarkerClusterer,\n MapPolygon,\n MapPolyline,\n MapRectangle,\n MapTrafficLayer,\n MapTransitLayer,\n MapHeatmapLayer,\n];\nclass GoogleMapsModule {\n}\nGoogleMapsModule.ɵfac = function GoogleMapsModule_Factory(t) { return new (t || GoogleMapsModule)(); };\nGoogleMapsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: GoogleMapsModule });\nGoogleMapsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GoogleMapsModule, [{\n type: NgModule,\n args: [{\n declarations: COMPONENTS,\n exports: COMPONENTS\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(GoogleMapsModule, { declarations: [GoogleMap, MapBaseLayer, MapBicyclingLayer, MapCircle, MapDirectionsRenderer, MapGroundOverlay, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer, MapHeatmapLayer], exports: [GoogleMap, MapBaseLayer, MapBicyclingLayer, MapCircle, MapDirectionsRenderer, MapGroundOverlay, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer, MapHeatmapLayer] }); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular service that wraps the Google Maps DirectionsService from the Google Maps JavaScript\n * API.\n *\n * See developers.google.com/maps/documentation/javascript/reference/directions#DirectionsService\n */\nclass MapDirectionsService {\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n }\n /**\n * See\n * developers.google.com/maps/documentation/javascript/reference/directions\n * #DirectionsService.route\n */\n route(request) {\n return new Observable(observer => {\n // Initialize the `DirectionsService` lazily since the Google Maps API may\n // not have been loaded when the provider is instantiated.\n if (!this._directionsService) {\n this._directionsService = new google.maps.DirectionsService();\n }\n const callback = (result, status) => {\n this._ngZone.run(() => {\n observer.next({ result, status });\n observer.complete();\n });\n };\n this._directionsService.route(request, callback);\n });\n }\n}\nMapDirectionsService.ɵfac = function MapDirectionsService_Factory(t) { return new (t || MapDirectionsService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nMapDirectionsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapDirectionsService_Factory() { return new MapDirectionsService(i0.ɵɵinject(i0.NgZone)); }, token: MapDirectionsService, providedIn: \"root\" });\nMapDirectionsService.ctorParameters = () => [\n { type: NgZone }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapDirectionsService, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Angular service that wraps the Google Maps Geocoder from the Google Maps JavaScript API.\n * See developers.google.com/maps/documentation/javascript/reference/geocoder#Geocoder\n */\nclass MapGeocoder {\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n }\n /**\n * See developers.google.com/maps/documentation/javascript/reference/geocoder#Geocoder.geocode\n */\n geocode(request) {\n return new Observable(observer => {\n // Initialize the `Geocoder` lazily since the Google Maps API may\n // not have been loaded when the provider is instantiated.\n if (!this._geocoder) {\n this._geocoder = new google.maps.Geocoder();\n }\n this._geocoder.geocode(request, (results, status) => {\n this._ngZone.run(() => {\n observer.next({ results, status });\n observer.complete();\n });\n });\n });\n }\n}\nMapGeocoder.ɵfac = function MapGeocoder_Factory(t) { return new (t || MapGeocoder)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nMapGeocoder.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGeocoder_Factory() { return new MapGeocoder(i0.ɵɵinject(i0.NgZone)); }, token: MapGeocoder, providedIn: \"root\" });\nMapGeocoder.ctorParameters = () => [\n { type: NgZone }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapGeocoder, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { GoogleMap, GoogleMapsModule, MapBaseLayer, MapBicyclingLayer, MapCircle, MapDirectionsRenderer, MapDirectionsService, MapGeocoder, MapGroundOverlay, MapHeatmapLayer, MapInfoWindow, MapKmlLayer, MapMarker, MapMarkerClusterer, MapPolygon, MapPolyline, MapRectangle, MapTrafficLayer, MapTransitLayer };\n\n","import { InjectionToken, Injectable, Inject, VERSION, Component, NgModule } from '@angular/core';\nimport { Location, CommonModule } from '@angular/common';\nimport { WrapperSKU, InteractionStatus, EventMessageUtils, InteractionType, BrowserConfigurationAuthError, UrlString, BrowserUtils, StringUtils, NavigationClient } from '@azure/msal-browser';\nimport { from, Subject, BehaviorSubject, of, EMPTY } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { map, concatMap, catchError, switchMap } from 'rxjs/operators';\nimport { __awaiter } from 'tslib';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@angular/router';\nconst MSAL_INSTANCE = new InjectionToken(\"MSAL_INSTANCE\");\r\nconst MSAL_GUARD_CONFIG = new InjectionToken(\"MSAL_GUARD_CONFIG\");\r\nconst MSAL_INTERCEPTOR_CONFIG = new InjectionToken(\"MSAL_INTERCEPTOR_CONFIG\");\n\n/* eslint-disable header/header */\r\nconst name = \"@azure/msal-angular\";\r\nconst version = \"2.0.0\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalService {\r\n constructor(instance, location) {\r\n this.instance = instance;\r\n this.location = location;\r\n const hash = this.location.path(true).split(\"#\").pop();\r\n if (hash) {\r\n this.redirectHash = `#${hash}`;\r\n }\r\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, version);\r\n }\r\n acquireTokenPopup(request) {\r\n return from(this.instance.acquireTokenPopup(request));\r\n }\r\n acquireTokenRedirect(request) {\r\n return from(this.instance.acquireTokenRedirect(request));\r\n }\r\n acquireTokenSilent(silentRequest) {\r\n return from(this.instance.acquireTokenSilent(silentRequest));\r\n }\r\n handleRedirectObservable(hash) {\r\n return from(this.instance.handleRedirectPromise(hash || this.redirectHash));\r\n }\r\n loginPopup(request) {\r\n return from(this.instance.loginPopup(request));\r\n }\r\n loginRedirect(request) {\r\n return from(this.instance.loginRedirect(request));\r\n }\r\n logout(logoutRequest) {\r\n return from(this.instance.logout(logoutRequest));\r\n }\r\n logoutRedirect(logoutRequest) {\r\n return from(this.instance.logoutRedirect(logoutRequest));\r\n }\r\n logoutPopup(logoutRequest) {\r\n return from(this.instance.logoutPopup(logoutRequest));\r\n }\r\n ssoSilent(request) {\r\n return from(this.instance.ssoSilent(request));\r\n }\r\n /**\r\n * Gets logger for msal-angular.\r\n * If no logger set, returns logger instance created with same options as msal-browser\r\n */\r\n getLogger() {\r\n if (!this.logger) {\r\n this.logger = this.instance.getLogger().clone(name, version);\r\n }\r\n return this.logger;\r\n }\r\n // Create a logger instance for msal-angular with the same options as msal-browser\r\n setLogger(logger) {\r\n this.logger = logger.clone(name, version);\r\n this.instance.setLogger(logger);\r\n }\r\n}\nMsalService.ɵfac = function MsalService_Factory(t) { return new (t || MsalService)(ɵngcc0.ɵɵinject(MSAL_INSTANCE), ɵngcc0.ɵɵinject(ɵngcc1.Location)); };\nMsalService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalService, factory: MsalService.ɵfac });\r\nMsalService.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_INSTANCE,] }] },\r\n { type: Location }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalService, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }] }, { type: ɵngcc1.Location }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalBroadcastService {\r\n constructor(msalInstance, authService) {\r\n this.msalInstance = msalInstance;\r\n this.authService = authService;\r\n this._msalSubject = new Subject();\r\n this.msalSubject$ = this._msalSubject.asObservable();\r\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\r\n this._inProgress = new BehaviorSubject(InteractionStatus.Startup);\r\n this.inProgress$ = this._inProgress.asObservable();\r\n this.msalInstance.addEventCallback((message) => {\r\n this._msalSubject.next(message);\r\n const status = EventMessageUtils.getInteractionStatusFromEvent(message);\r\n if (status !== null) {\r\n this.authService.getLogger().verbose(`BroadcastService - ${message.eventType} results in setting inProgress to ${status}`);\r\n this._inProgress.next(status);\r\n }\r\n });\r\n }\r\n}\nMsalBroadcastService.ɵfac = function MsalBroadcastService_Factory(t) { return new (t || MsalBroadcastService)(ɵngcc0.ɵɵinject(MSAL_INSTANCE), ɵngcc0.ɵɵinject(MsalService)); };\nMsalBroadcastService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalBroadcastService, factory: MsalBroadcastService.ɵfac });\r\nMsalBroadcastService.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_INSTANCE,] }] },\r\n { type: MsalService }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalBroadcastService, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }] }, { type: MsalService }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalGuard {\r\n constructor(msalGuardConfig, msalBroadcastService, authService, location, router) {\r\n this.msalGuardConfig = msalGuardConfig;\r\n this.msalBroadcastService = msalBroadcastService;\r\n this.authService = authService;\r\n this.location = location;\r\n this.router = router;\r\n // Subscribing so events in MsalGuard will set inProgress$ observable\r\n this.msalBroadcastService.inProgress$.subscribe();\r\n }\r\n /**\r\n * Parses url string to UrlTree\r\n * @param url\r\n */\r\n parseUrl(url) {\r\n return this.router.parseUrl(url);\r\n }\r\n /**\r\n * Builds the absolute url for the destination page\r\n * @param path Relative path of requested page\r\n * @returns Full destination url\r\n */\r\n getDestinationUrl(path) {\r\n this.authService.getLogger().verbose(\"Guard - getting destination url\");\r\n // Absolute base url for the application (default to origin if base element not present)\r\n const baseElements = document.getElementsByTagName(\"base\");\r\n const baseUrl = this.location.normalize(baseElements.length ? baseElements[0].href : window.location.origin);\r\n // Path of page (including hash, if using hash routing)\r\n const pathUrl = this.location.prepareExternalUrl(path);\r\n // Hash location strategy\r\n if (pathUrl.startsWith(\"#\")) {\r\n this.authService.getLogger().verbose(\"Guard - destination by hash routing\");\r\n return `${baseUrl}/${pathUrl}`;\r\n }\r\n /*\r\n * If using path location strategy, pathUrl will include the relative portion of the base path (e.g. /base/page).\r\n * Since baseUrl also includes /base, can just concatentate baseUrl + path\r\n */\r\n return `${baseUrl}${path}`;\r\n }\r\n /**\r\n * Interactively prompt the user to login\r\n * @param url Path of the requested page\r\n */\r\n loginInteractively(state) {\r\n const authRequest = typeof this.msalGuardConfig.authRequest === \"function\"\r\n ? this.msalGuardConfig.authRequest(this.authService, state)\r\n : Object.assign({}, this.msalGuardConfig.authRequest);\r\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n this.authService.getLogger().verbose(\"Guard - logging in by popup\");\r\n return this.authService.loginPopup(authRequest)\r\n .pipe(map((response) => {\r\n this.authService.getLogger().verbose(\"Guard - login by popup successful, can activate, setting active account\");\r\n this.authService.instance.setActiveAccount(response.account);\r\n return true;\r\n }));\r\n }\r\n this.authService.getLogger().verbose(\"Guard - logging in by redirect\");\r\n const redirectStartPage = this.getDestinationUrl(state.url);\r\n return this.authService.loginRedirect(Object.assign({ redirectStartPage }, authRequest))\r\n .pipe(map(() => false));\r\n }\r\n /**\r\n * Helper which checks for the correct interaction type, prevents page with Guard to be set as reidrect, and calls handleRedirectObservable\r\n * @param state\r\n */\r\n activateHelper(state) {\r\n if (this.msalGuardConfig.interactionType !== InteractionType.Popup && this.msalGuardConfig.interactionType !== InteractionType.Redirect) {\r\n throw new BrowserConfigurationAuthError(\"invalid_interaction_type\", \"Invalid interaction type provided to MSAL Guard. InteractionType.Popup or InteractionType.Redirect must be provided in the MsalGuardConfiguration\");\r\n }\r\n this.authService.getLogger().verbose(\"MSAL Guard activated\");\r\n /*\r\n * If a page with MSAL Guard is set as the redirect for acquireTokenSilent,\r\n * short-circuit to prevent redirecting or popups.\r\n * TODO: Update to allow running in iframe once allowRedirectInIframe is implemented\r\n */\r\n if (UrlString.hashContainsKnownProperties(window.location.hash) && BrowserUtils.isInIframe()) {\r\n this.authService.getLogger().warning(\"Guard - redirectUri set to page with MSAL Guard. It is recommended to not set redirectUri to a page that requires authentication.\");\r\n return of(false);\r\n }\r\n /**\r\n * If a loginFailedRoute is set in the config, set this as the loginFailedRoute\r\n */\r\n if (this.msalGuardConfig.loginFailedRoute) {\r\n this.loginFailedRoute = this.parseUrl(this.msalGuardConfig.loginFailedRoute);\r\n }\r\n // Capture current path before it gets changed by handleRedirectObservable\r\n const currentPath = this.location.path(true);\r\n return this.authService.handleRedirectObservable()\r\n .pipe(concatMap(() => {\r\n if (!this.authService.instance.getAllAccounts().length) {\r\n if (state) {\r\n this.authService.getLogger().verbose(\"Guard - no accounts retrieved, log in required to activate\");\r\n return this.loginInteractively(state);\r\n }\r\n this.authService.getLogger().verbose(\"Guard - no accounts retrieved, no state, cannot load\");\r\n return of(false);\r\n }\r\n this.authService.getLogger().verbose(\"Guard - at least 1 account exists, can activate or load\");\r\n // Prevent navigating the app to /#code= or /code=\r\n if (state && currentPath.indexOf(\"code=\") > -1) {\r\n this.authService.getLogger().info(\"Guard - Hash contains known code response, stopping navigation.\");\r\n // Path routing (navigate to current path without hash)\r\n if (currentPath.indexOf(\"#\") > -1) {\r\n return of(this.parseUrl(this.location.path()));\r\n }\r\n // Hash routing (navigate to root path)\r\n return of(this.parseUrl(\"\"));\r\n }\r\n return of(true);\r\n }), catchError((error) => {\r\n this.authService.getLogger().error(\"Guard - error while logging in, unable to activate\");\r\n this.authService.getLogger().errorPii(`Guard - error: ${error.message}`);\r\n /**\r\n * If a loginFailedRoute is set, checks to see if Angular 10+ is used and state is passed in before returning route\r\n * Apps using Angular 9 will receive of(false) in canLoad interface, as it does not support UrlTree return types\r\n */\r\n if (this.loginFailedRoute && parseInt(VERSION.major, 10) > 9 && state) {\r\n this.authService.getLogger().verbose(\"Guard - loginFailedRoute set, redirecting\");\r\n return of(this.loginFailedRoute);\r\n }\r\n return of(false);\r\n }));\r\n }\r\n canActivate(route, state) {\r\n this.authService.getLogger().verbose(\"Guard - canActivate\");\r\n return this.activateHelper(state);\r\n }\r\n canActivateChild(route, state) {\r\n this.authService.getLogger().verbose(\"Guard - canActivateChild\");\r\n return this.activateHelper(state);\r\n }\r\n canLoad() {\r\n this.authService.getLogger().verbose(\"Guard - canLoad\");\r\n // @ts-ignore\r\n return this.activateHelper();\r\n }\r\n}\nMsalGuard.ɵfac = function MsalGuard_Factory(t) { return new (t || MsalGuard)(ɵngcc0.ɵɵinject(MSAL_GUARD_CONFIG), ɵngcc0.ɵɵinject(MsalBroadcastService), ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(ɵngcc1.Location), ɵngcc0.ɵɵinject(ɵngcc2.Router)); };\nMsalGuard.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalGuard, factory: MsalGuard.ɵfac });\r\nMsalGuard.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_GUARD_CONFIG,] }] },\r\n { type: MsalBroadcastService },\r\n { type: MsalService },\r\n { type: Location },\r\n { type: Router }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalGuard, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_GUARD_CONFIG]\n }] }, { type: MsalBroadcastService }, { type: MsalService }, { type: ɵngcc1.Location }, { type: ɵngcc2.Router }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalInterceptor {\r\n constructor(msalInterceptorConfig, authService, location) {\r\n this.msalInterceptorConfig = msalInterceptorConfig;\r\n this.authService = authService;\r\n this.location = location;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n intercept(req, next) {\r\n if (this.msalInterceptorConfig.interactionType !== InteractionType.Popup && this.msalInterceptorConfig.interactionType !== InteractionType.Redirect) {\r\n throw new BrowserConfigurationAuthError(\"invalid_interaction_type\", \"Invalid interaction type provided to MSAL Interceptor. InteractionType.Popup, InteractionType.Redirect must be provided in the msalInterceptorConfiguration\");\r\n }\r\n this.authService.getLogger().verbose(\"MSAL Interceptor activated\");\r\n const scopes = this.getScopesForEndpoint(req.url, req.method);\r\n // If no scopes for endpoint, does not acquire token\r\n if (!scopes || scopes.length === 0) {\r\n this.authService.getLogger().verbose(\"Interceptor - no scopes for endpoint\");\r\n return next.handle(req);\r\n }\r\n // Sets account as active account or first account\r\n let account;\r\n if (!!this.authService.instance.getActiveAccount()) {\r\n this.authService.getLogger().verbose(\"Interceptor - active account selected\");\r\n account = this.authService.instance.getActiveAccount();\r\n }\r\n else {\r\n this.authService.getLogger().verbose(\"Interceptor - no active account, fallback to first account\");\r\n account = this.authService.instance.getAllAccounts()[0];\r\n }\r\n const authRequest = typeof this.msalInterceptorConfig.authRequest === \"function\"\r\n ? this.msalInterceptorConfig.authRequest(this.authService, req, { account: account })\r\n : Object.assign(Object.assign({}, this.msalInterceptorConfig.authRequest), { account });\r\n this.authService.getLogger().info(`Interceptor - ${scopes.length} scopes found for endpoint`);\r\n this.authService.getLogger().infoPii(`Interceptor - [${scopes}] scopes found for ${req.url}`);\r\n // Note: For MSA accounts, include openid scope when calling acquireTokenSilent to return idToken\r\n return this.authService.acquireTokenSilent(Object.assign(Object.assign({}, authRequest), { scopes, account }))\r\n .pipe(catchError(() => {\r\n this.authService.getLogger().error(\"Interceptor - acquireTokenSilent rejected with error. Invoking interaction to resolve.\");\r\n return this.acquireTokenInteractively(authRequest, scopes);\r\n }), switchMap((result) => {\r\n if (!result.accessToken) {\r\n this.authService.getLogger().error(\"Interceptor - acquireTokenSilent resolved with null access token. Known issue with B2C tenants, invoking interaction to resolve.\");\r\n return this.acquireTokenInteractively(authRequest, scopes);\r\n }\r\n return of(result);\r\n }), switchMap((result) => {\r\n this.authService.getLogger().verbose(\"Interceptor - setting authorization headers\");\r\n const headers = req.headers\r\n .set(\"Authorization\", `Bearer ${result.accessToken}`);\r\n const requestClone = req.clone({ headers });\r\n return next.handle(requestClone);\r\n }));\r\n }\r\n /**\r\n * Invoke interaction for the given set of scopes\r\n * @param scopes Array of scopes for the request\r\n * @returns Result from the interactive request\r\n */\r\n acquireTokenInteractively(authRequest, scopes) {\r\n if (this.msalInterceptorConfig.interactionType === InteractionType.Popup) {\r\n this.authService.getLogger().verbose(\"Interceptor - error acquiring token silently, acquiring by popup\");\r\n return this.authService.acquireTokenPopup(Object.assign(Object.assign({}, authRequest), { scopes }));\r\n }\r\n this.authService.getLogger().verbose(\"Interceptor - error acquiring token silently, acquiring by redirect\");\r\n const redirectStartPage = window.location.href;\r\n this.authService.acquireTokenRedirect(Object.assign(Object.assign({}, authRequest), { scopes, redirectStartPage }));\r\n return EMPTY;\r\n }\r\n /**\r\n * Looks up the scopes for the given endpoint from the protectedResourceMap\r\n * @param endpoint Url of the request\r\n * @param endpoint Http method of the request\r\n * @returns Array of scopes, or null if not found\r\n *\r\n */\r\n getScopesForEndpoint(endpoint, httpMethod) {\r\n this.authService.getLogger().verbose(\"Interceptor - getting scopes for endpoint\");\r\n // Ensures endpoints and protected resources compared are normalized\r\n const normalizedEndpoint = this.location.normalize(endpoint);\r\n const protectedResourcesArray = Array.from(this.msalInterceptorConfig.protectedResourceMap.keys());\r\n const matchingProtectedResources = this.matchResourcesToEndpoint(protectedResourcesArray, normalizedEndpoint);\r\n if (matchingProtectedResources.length > 0) {\r\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources, httpMethod);\r\n }\r\n return null;\r\n }\r\n /**\r\n * Finds resource endpoints that match request endpoint\r\n * @param protectedResourcesArray\r\n * @param endpoint\r\n * @param location\r\n * @returns\r\n */\r\n matchResourcesToEndpoint(protectedResourcesEndpoints, endpoint) {\r\n return protectedResourcesEndpoints.filter(key => {\r\n const normalizedKey = this.location.normalize(key);\r\n // Normalized key should include query strings if applicable\r\n const keyComponents = new UrlString(key).getUrlComponents();\r\n const relativeNormalizedKey = keyComponents.QueryString ? `${keyComponents.AbsolutePath}?${keyComponents.QueryString}` : this.location.normalize(keyComponents.AbsolutePath);\r\n // Relative endpoint not applicable, matching endpoint with protected resource. StringUtils.matchPattern accounts for wildcards\r\n if (relativeNormalizedKey === \"\" || relativeNormalizedKey === \"/*\") {\r\n return StringUtils.matchPattern(normalizedKey, endpoint);\r\n }\r\n else {\r\n // Matching endpoint with both protected resource and relative url of protected resource\r\n return StringUtils.matchPattern(normalizedKey, endpoint) || StringUtils.matchPattern(relativeNormalizedKey, endpoint);\r\n }\r\n });\r\n }\r\n /**\r\n * Finds scopes from first matching endpoint with HTTP method that matches request\r\n * @param protectedResourceMap Protected resource map\r\n * @param endpointArray Array of resources that match request endpoint\r\n * @param httpMethod Http method of the request\r\n * @returns\r\n */\r\n matchScopesToEndpoint(protectedResourceMap, endpointArray, httpMethod) {\r\n const allMatchedScopes = [];\r\n // Check each matched endpoint for matching HttpMethod and scopes\r\n endpointArray.forEach(matchedEndpoint => {\r\n const scopesForEndpoint = [];\r\n const methodAndScopesArray = protectedResourceMap.get(matchedEndpoint);\r\n // Return if resource is unprotected\r\n if (methodAndScopesArray === null) {\r\n allMatchedScopes.push(null);\r\n return;\r\n }\r\n methodAndScopesArray.forEach(entry => {\r\n // Entry is either array of scopes or ProtectedResourceScopes object\r\n if (typeof entry === \"string\") {\r\n scopesForEndpoint.push(entry);\r\n }\r\n else {\r\n // Ensure methods being compared are normalized\r\n const normalizedRequestMethod = httpMethod.toLowerCase();\r\n const normalizedResourceMethod = entry.httpMethod.toLowerCase();\r\n // Method in protectedResourceMap matches request http method\r\n if (normalizedResourceMethod === normalizedRequestMethod) {\r\n entry.scopes.forEach(scope => {\r\n scopesForEndpoint.push(scope);\r\n });\r\n }\r\n }\r\n });\r\n // Only add to all scopes if scopes for endpoint and method is found\r\n if (scopesForEndpoint.length > 0) {\r\n allMatchedScopes.push(scopesForEndpoint);\r\n }\r\n });\r\n if (allMatchedScopes.length > 0) {\r\n if (allMatchedScopes.length > 1) {\r\n this.authService.getLogger().warning(\"Interceptor - More than 1 matching scopes for endpoint found.\");\r\n }\r\n // Returns scopes for first matching endpoint\r\n return allMatchedScopes[0];\r\n }\r\n return null;\r\n }\r\n}\nMsalInterceptor.ɵfac = function MsalInterceptor_Factory(t) { return new (t || MsalInterceptor)(ɵngcc0.ɵɵinject(MSAL_INTERCEPTOR_CONFIG), ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(ɵngcc1.Location)); };\nMsalInterceptor.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalInterceptor, factory: MsalInterceptor.ɵfac });\r\nMsalInterceptor.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_INTERCEPTOR_CONFIG,] }] },\r\n { type: MsalService },\r\n { type: Location }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalInterceptor, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INTERCEPTOR_CONFIG]\n }] }, { type: MsalService }, { type: ɵngcc1.Location }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalRedirectComponent {\r\n constructor(authService) {\r\n this.authService = authService;\r\n }\r\n ngOnInit() {\r\n this.authService.getLogger().verbose(\"MsalRedirectComponent activated\");\r\n this.authService.handleRedirectObservable().subscribe();\r\n }\r\n}\nMsalRedirectComponent.ɵfac = function MsalRedirectComponent_Factory(t) { return new (t || MsalRedirectComponent)(ɵngcc0.ɵɵdirectiveInject(MsalService)); };\nMsalRedirectComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MsalRedirectComponent, selectors: [[\"app-redirect\"]], decls: 0, vars: 0, template: function MsalRedirectComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\nMsalRedirectComponent.ctorParameters = () => [\r\n { type: MsalService }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalRedirectComponent, [{\n type: Component,\n args: [{\n selector: \"app-redirect\",\n template: \"\"\n }]\n }], function () { return [{ type: MsalService }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalModule {\r\n static forRoot(msalInstance, guardConfig, interceptorConfig) {\r\n return {\r\n ngModule: MsalModule,\r\n providers: [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useValue: msalInstance\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useValue: guardConfig\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useValue: interceptorConfig\r\n },\r\n MsalService\r\n ]\r\n };\r\n }\r\n}\nMsalModule.ɵfac = function MsalModule_Factory(t) { return new (t || MsalModule)(); };\nMsalModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MsalModule });\nMsalModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [\n MsalGuard,\n MsalBroadcastService\n ], imports: [[\n CommonModule\n ]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalModule, [{\n type: NgModule,\n args: [{\n declarations: [MsalRedirectComponent],\n imports: [\n CommonModule\n ],\n providers: [\n MsalGuard,\n MsalBroadcastService\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MsalModule, { declarations: function () { return [MsalRedirectComponent]; }, imports: function () { return [CommonModule]; } }); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Custom navigation used for Angular client-side navigation.\r\n * See performance doc for details:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/v2-docs/performance.md\r\n */\r\nclass MsalCustomNavigationClient extends NavigationClient {\r\n constructor(authService, router, location) {\r\n super();\r\n this.authService = authService;\r\n this.router = router;\r\n this.location = location;\r\n }\r\n navigateInternal(url, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.authService.getLogger().verbose(\"MsalCustomNavigationClient called\");\r\n const urlComponents = new UrlString(url).getUrlComponents();\r\n // Normalizing newUrl if no query string\r\n const newUrl = urlComponents.QueryString ? `${urlComponents.AbsolutePath}?${urlComponents.QueryString}` : this.location.normalize(urlComponents.AbsolutePath);\r\n // Replaces current state if noHistory flag set to true\r\n this.authService.getLogger().verbosePii(`MsalCustomNavigationClient - navigating to newUrl: ${newUrl}`);\r\n // Prevent hash clearing from causing an issue with Client-side navigation after redirect is handled\r\n if (options.noHistory) {\r\n window.location.replace(newUrl);\r\n }\r\n else {\r\n this.router.navigateByUrl(newUrl, { replaceUrl: options.noHistory });\r\n }\r\n return Promise.resolve(options.noHistory);\r\n });\r\n }\r\n}\nMsalCustomNavigationClient.ɵfac = function MsalCustomNavigationClient_Factory(t) { return new (t || MsalCustomNavigationClient)(ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(ɵngcc2.Router), ɵngcc0.ɵɵinject(ɵngcc1.Location)); };\nMsalCustomNavigationClient.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalCustomNavigationClient, factory: MsalCustomNavigationClient.ɵfac });\r\nMsalCustomNavigationClient.ctorParameters = () => [\r\n { type: MsalService },\r\n { type: Router },\r\n { type: Location }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalCustomNavigationClient, [{\n type: Injectable\n }], function () { return [{ type: MsalService }, { type: ɵngcc2.Router }, { type: ɵngcc1.Location }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalCustomNavigationClient, MsalGuard, MsalInterceptor, MsalModule, MsalRedirectComponent, MsalService };\n\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __read, __spread };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator, __assign, __spread } from '../_virtual/_tslib.js';\nimport { CryptoOps } from '../crypto/CryptoOps.js';\nimport { UrlString, ThrottlingUtils, StringUtils, PromptValue, AccountEntity, AuthorityFactory, AuthorizationCodeClient, SilentFlowClient, RefreshTokenClient, AuthenticationScheme, ServerTelemetryManager, ProtocolUtils, ResponseMode, PersistentCacheKeys, IdToken, Constants, Logger, DEFAULT_CRYPTO_IMPLEMENTATION, ServerError, InteractionRequiredAuthError } from '@azure/msal-common';\nimport { DEFAULT_BROWSER_CACHE_MANAGER, BrowserCacheManager } from '../cache/BrowserCacheManager.js';\nimport { buildConfiguration } from '../config/Configuration.js';\nimport { InteractionType, TemporaryCacheKeys, ApiId, BrowserConstants, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\nimport { RedirectHandler } from '../interaction_handler/RedirectHandler.js';\nimport { PopupHandler } from '../interaction_handler/PopupHandler.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { version, name } from '../packageMetadata.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { PopupUtils } from '../utils/PopupUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ClientApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n */\r\n function ClientApplication(configuration) {\r\n /*\r\n * If loaded in an environment where window is not available,\r\n * set internal flag to false so that further requests fail.\r\n * This is to support server-side rendering environments.\r\n */\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n // Set the configuration.\r\n this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\r\n this.activeLocalAccountId = null;\r\n // Array of events\r\n this.eventCallbacks = new Map();\r\n // Initialize logger\r\n this.logger = new Logger(this.config.system.loggerOptions, name, version);\r\n // Initialize the network module class.\r\n this.networkClient = this.config.system.networkClient;\r\n // Initialize the navigation client class.\r\n this.navigationClient = this.config.system.navigationClient;\r\n // Initialize redirectResponse Map\r\n this.redirectResponse = new Map();\r\n if (!this.isBrowserEnvironment) {\r\n this.browserStorage = DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\r\n this.browserCrypto = DEFAULT_CRYPTO_IMPLEMENTATION;\r\n return;\r\n }\r\n // Initialize the crypto class.\r\n this.browserCrypto = new CryptoOps();\r\n // Initialize the browser storage class.\r\n this.browserStorage = new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger);\r\n }\r\n // #region Redirect Flow\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n ClientApplication.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, redirectResponseKey, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\r\n this.logger.verbose(\"handleRedirectPromise called\");\r\n loggedInAccounts = this.getAllAccounts();\r\n if (this.isBrowserEnvironment) {\r\n redirectResponseKey = hash || Constants.EMPTY_STRING;\r\n response = this.redirectResponse.get(redirectResponseKey);\r\n if (typeof response === \"undefined\") {\r\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n response = this.handleRedirectResponse(hash)\r\n .then(function (result) {\r\n if (result) {\r\n // Emit login event if number of accounts change\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n }\r\n else {\r\n _this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n }\r\n }\r\n _this.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n return result;\r\n })\r\n .catch(function (e) {\r\n // Emit login event if there is an account\r\n if (loggedInAccounts.length > 0) {\r\n _this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n _this.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n throw e;\r\n });\r\n this.redirectResponse.set(redirectResponseKey, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n return [2 /*return*/, null];\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash\r\n */\r\n ClientApplication.prototype.handleRedirectResponse = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var responseHash, state, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.interactionInProgress()) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n if (!responseHash) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n try {\r\n state = this.validateAndExtractStateFromHash(responseHash, InteractionType.Redirect);\r\n BrowserUtils.clearHash(window);\r\n this.logger.verbose(\"State extracted from hash\");\r\n }\r\n catch (e) {\r\n this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || \"\";\r\n loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 2];\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n return [4 /*yield*/, this.handleHash(responseHash, state)];\r\n case 1:\r\n handleHashResult = _a.sent();\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n BrowserUtils.replaceHash(loginRequestUrl);\r\n }\r\n return [2 /*return*/, handleHashResult];\r\n case 2:\r\n if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 3];\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n return [2 /*return*/, this.handleHash(responseHash, state)];\r\n case 3:\r\n if (!!BrowserUtils.isInIframe()) return [3 /*break*/, 8];\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true\r\n };\r\n processHashOnRedirect = true;\r\n if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 5];\r\n homepage = BrowserUtils.getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n case 4:\r\n processHashOnRedirect = _a.sent();\r\n return [3 /*break*/, 7];\r\n case 5:\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n case 6:\r\n processHashOnRedirect = _a.sent();\r\n _a.label = 7;\r\n case 7:\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return [2 /*return*/, this.handleHash(responseHash, state)];\r\n }\r\n _a.label = 8;\r\n case 8: return [2 /*return*/, null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n ClientApplication.prototype.getRedirectResponseHash = function (hash) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n if (isResponseHash) {\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return hash;\r\n }\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return cachedHash;\r\n };\r\n /**\r\n * @param hash\r\n * @param interactionType\r\n */\r\n ClientApplication.prototype.validateAndExtractStateFromHash = function (hash, interactionType) {\r\n this.logger.verbose(\"validateAndExtractStateFromHash called\");\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hash);\r\n if (!serverParams.state) {\r\n throw BrowserAuthError.createHashDoesNotContainStateError();\r\n }\r\n var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n if (!platformStateObj) {\r\n throw BrowserAuthError.createUnableToParseStateError();\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n }\r\n this.logger.verbose(\"Returning state from hash\");\r\n return serverParams.state;\r\n };\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n ClientApplication.prototype.handleHash = function (hash, state) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, serverTelemetryManager, currentAuthority, authClient, interactionHandler, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"handleHash called\");\r\n cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise, cachedRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 5]);\r\n currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n case 2:\r\n authClient = _a.sent();\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.browserCrypto);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient, this.config.auth.clientId)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n case 4:\r\n e_1 = _a.sent();\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n throw e_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isLoggedIn, validRequest, serverTelemetryManager, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Preflight request\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n this.logger.verbose(\"acquireTokenRedirect called\");\r\n isLoggedIn = this.getAllAccounts().length > 0;\r\n if (isLoggedIn) {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\r\n }\r\n else {\r\n this.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\r\n }\r\n validRequest = this.preflightInteractiveRequest(request, InteractionType.Redirect);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect, validRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.browserCrypto);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return [2 /*return*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate\r\n })];\r\n case 5:\r\n e_2 = _a.sent();\r\n // If logged in, emit acquire token events\r\n if (isLoggedIn) {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e_2);\r\n }\r\n else {\r\n this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e_2);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_2;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Flow\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopup = function (request) {\r\n var validRequest;\r\n try {\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n this.logger.verbose(\"acquireTokenPopup called\");\r\n validRequest = this.preflightInteractiveRequest(request, InteractionType.Popup);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n var popupName = PopupUtils.generatePopupName(this.config.auth.clientId, validRequest);\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n return this.acquireTokenPopupAsync(validRequest, popupName);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n var popup = PopupUtils.openSizedPopup(\"about:blank\", popupName);\r\n return this.acquireTokenPopupAsync(validRequest, popupName, popup);\r\n }\r\n };\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopupAsync = function (validRequest, popupName, popup) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, serverTelemetryManager, authCodeRequest, authClient, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, state, result, isLoggingIn, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n loggedInAccounts = this.getAllAccounts();\r\n if (loggedInAccounts.length > 0) {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, validRequest);\r\n }\r\n else {\r\n this.emitEvent(EventType.LOGIN_START, InteractionType.Popup, validRequest);\r\n }\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup, validRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 7, , 8]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(validRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n interactionHandler = new PopupHandler(authClient, this.browserStorage, authCodeRequest);\r\n popupParameters = {\r\n popup: popup,\r\n popupName: popupName\r\n };\r\n popupWindow = interactionHandler.initiateAuthRequest(navigateUrl, popupParameters);\r\n this.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, interactionHandler.monitorPopupForHash(popupWindow)];\r\n case 5:\r\n hash = _a.sent();\r\n state = this.validateAndExtractStateFromHash(hash, InteractionType.Popup);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest.authority, authCodeRequest.scopes);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient)];\r\n case 6:\r\n result = _a.sent();\r\n isLoggingIn = loggedInAccounts.length < this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n this.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n else {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n return [2 /*return*/, result];\r\n case 7:\r\n e_3 = _a.sent();\r\n if (loggedInAccounts.length > 0) {\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e_3);\r\n }\r\n else {\r\n this.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e_3);\r\n }\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_3;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Silent Flow\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.ssoSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentTokenResult, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"ssoSilent called\");\r\n this.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, request);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.acquireTokenByIframe(request, ApiId.ssoSilent)];\r\n case 2:\r\n silentTokenResult = _a.sent();\r\n this.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, silentTokenResult);\r\n return [2 /*return*/, silentTokenResult];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e_4);\r\n throw e_4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. To be used for silent refresh token acquisition and renewal.\r\n * @param request\r\n * @param apiId - ApiId of the calling function. Used for telemetry.\r\n */\r\n ClientApplication.prototype.acquireTokenByIframe = function (request, apiId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, authClient, navigateUrl, e_5;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenByIframe called\");\r\n // Check that we have some SSO data\r\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n throw BrowserAuthError.createSilentSSOInsufficientInfoError();\r\n }\r\n // Check that prompt is set to none, throw error if it is set to anything else.\r\n if (request.prompt && request.prompt !== PromptValue.NONE) {\r\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n }\r\n silentRequest = this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: PromptValue.NONE }), InteractionType.Silent);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(apiId, silentRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 6, , 7]);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n case 2:\r\n authCodeRequest = _a.sent();\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(silentRequest)];\r\n case 4:\r\n navigateUrl = _a.sent();\r\n return [4 /*yield*/, this.silentTokenHelper(navigateUrl, authCodeRequest, authClient)];\r\n case 5: return [2 /*return*/, _a.sent()];\r\n case 6:\r\n e_5 = _a.sent();\r\n serverTelemetryManager.cacheFailedRequest(e_5);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_5;\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use this function to obtain a token before every call to the API / resource provider\r\n *\r\n * MSAL return's a cached token when available\r\n * Or it send's a request to the STS to obtain a new token using a refresh token.\r\n *\r\n * @param {@link SilentRequest}\r\n *\r\n * To renew idToken, please pass clientId as the only scope in the Authentication Parameters\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenByRefreshToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, refreshTokenClient, e_6, isServerError, isInteractionRequiredError, isInvalidGrantError;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, request);\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n silentRequest = __assign(__assign({}, request), this.initializeBaseRequest(request));\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 7]);\r\n return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority)];\r\n case 2:\r\n refreshTokenClient = _a.sent();\r\n return [4 /*yield*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest)];\r\n case 3: \r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n return [2 /*return*/, _a.sent()];\r\n case 4:\r\n e_6 = _a.sent();\r\n serverTelemetryManager.cacheFailedRequest(e_6);\r\n isServerError = e_6 instanceof ServerError;\r\n isInteractionRequiredError = e_6 instanceof InteractionRequiredAuthError;\r\n isInvalidGrantError = (e_6.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\r\n if (!(isServerError && isInvalidGrantError && !isInteractionRequiredError)) return [3 /*break*/, 6];\r\n this.logger.verbose(\"Refresh token expired or invalid, attempting acquire token by iframe\");\r\n return [4 /*yield*/, this.acquireTokenByIframe(request, ApiId.acquireTokenSilent_authCode)];\r\n case 5: return [2 /*return*/, _a.sent()];\r\n case 6: throw e_6;\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n ClientApplication.prototype.silentTokenHelper = function (navigateUrl, authCodeRequest, authClient) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentHandler, msalFrame, hash, state;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.config.system.navigateFrameWait);\r\n return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n case 1:\r\n msalFrame = _a.sent();\r\n return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n case 2:\r\n hash = _a.sent();\r\n state = this.validateAndExtractStateFromHash(hash, InteractionType.Silent);\r\n // Handle response from hash string\r\n return [2 /*return*/, silentHandler.handleCodeResponse(hash, state, authClient.authority, this.networkClient)];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n ClientApplication.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\");\r\n return [2 /*return*/, this.logoutRedirect(logoutRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutRedirect = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validLogoutRequest, serverTelemetryManager, authClient, logoutUri, navigationOptions, navigate, e_7;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n this.logger.verbose(\"logoutRedirect called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout, validLogoutRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 9, , 10]);\r\n this.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n case 2:\r\n authClient = _a.sent();\r\n logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n if (!validLogoutRequest.account || AccountEntity.accountInfoIsEqual(validLogoutRequest.account, this.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.setActiveAccount(null);\r\n }\r\n navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n this.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 6];\r\n navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (!(navigate !== false)) return [3 /*break*/, 4];\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 4:\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n _a.label = 5;\r\n case 5: return [3 /*break*/, 8];\r\n case 6: return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 7:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 8: return [3 /*break*/, 10];\r\n case 9:\r\n e_7 = _a.sent();\r\n serverTelemetryManager.cacheFailedRequest(e_7);\r\n this.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_7);\r\n throw e_7;\r\n case 10:\r\n this.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutPopup = function (logoutRequest) {\r\n var validLogoutRequest;\r\n try {\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n this.logger.verbose(\"logoutPopup called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n var popupName = PopupUtils.generateLogoutPopupName(this.config.auth.clientId, validLogoutRequest);\r\n var popup;\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n popup = PopupUtils.openSizedPopup(\"about:blank\", popupName);\r\n }\r\n var authority = logoutRequest && logoutRequest.authority;\r\n var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, authority, popup, mainWindowRedirectUri);\r\n };\r\n /**\r\n *\r\n * @param request\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n */\r\n ClientApplication.prototype.logoutPopupAsync = function (validRequest, popupName, requestAuthority, popup, mainWindowRedirectUri) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authClient, logoutUri, popupUtils, popupWindow, e_8, navigationOptions, absoluteUrl, e_9;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup, validRequest.correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 7, , 8]);\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n case 2:\r\n authClient = _a.sent();\r\n logoutUri = authClient.getLogoutUri(validRequest);\r\n if (!validRequest.account || AccountEntity.accountInfoIsEqual(validRequest.account, this.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.setActiveAccount(null);\r\n }\r\n this.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n popupUtils = new PopupUtils(this.browserStorage, this.logger);\r\n popupWindow = popupUtils.openPopup(logoutUri, popupName, popup);\r\n this.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 5, , 6]);\r\n // Don't care if this throws an error (User Cancelled)\r\n return [4 /*yield*/, popupUtils.monitorPopupForSameOrigin(popupWindow)];\r\n case 4:\r\n // Don't care if this throws an error (User Cancelled)\r\n _a.sent();\r\n this.logger.verbose(\"Popup successfully redirected to postLogoutRedirectUri\");\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_8 = _a.sent();\r\n this.logger.verbose(\"Error occurred while monitoring popup for same origin. Session on server may remain active. Error: \" + e_8);\r\n return [3 /*break*/, 6];\r\n case 6:\r\n popupUtils.cleanPopup(popupWindow);\r\n if (mainWindowRedirectUri) {\r\n navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(\"Redirecing main window to: \" + absoluteUrl);\r\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n return [3 /*break*/, 8];\r\n case 7:\r\n e_9 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n this.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_9);\r\n serverTelemetryManager.cacheFailedRequest(e_9);\r\n throw e_9;\r\n case 8:\r\n this.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Account APIs\r\n /**\r\n * Returns all accounts that MSAL currently has data for.\r\n * (the account object is created at the time of successful login)\r\n * or empty array when no accounts are found\r\n * @returns Array of account objects in cache\r\n */\r\n ClientApplication.prototype.getAllAccounts = function () {\r\n this.logger.verbose(\"getAllAccounts called\");\r\n return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\r\n };\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param userName\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByUsername = function (userName) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(userName) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching username found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching username: \" + userName);\r\n return allAccounts.filter(function (accountObj) { return accountObj.username.toLowerCase() === userName.toLowerCase(); })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByHomeId = function (homeAccountId) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(homeAccountId) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching homeAccountId found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching homeAccountId: \" + homeAccountId);\r\n return allAccounts.filter(function (accountObj) { return accountObj.homeAccountId === homeAccountId; })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByLocalId = function (localAccountId) {\r\n var allAccounts = this.getAllAccounts();\r\n if (!StringUtils.isEmpty(localAccountId) && allAccounts && allAccounts.length) {\r\n this.logger.verbose(\"Account matching localAccountId found, returning\");\r\n this.logger.verbosePii(\"Returning signed-in accounts matching localAccountId: \" + localAccountId);\r\n return allAccounts.filter(function (accountObj) { return accountObj.localAccountId === localAccountId; })[0] || null;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n ClientApplication.prototype.setActiveAccount = function (account) {\r\n if (account) {\r\n this.logger.verbose(\"setActiveAccount: Active account set\");\r\n this.activeLocalAccountId = account.localAccountId;\r\n }\r\n else {\r\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n this.activeLocalAccountId = null;\r\n }\r\n };\r\n /**\r\n * Gets the currently active account\r\n */\r\n ClientApplication.prototype.getActiveAccount = function () {\r\n if (!this.activeLocalAccountId) {\r\n this.logger.verbose(\"getActiveAccount: No active account\");\r\n return null;\r\n }\r\n return this.getAccountByLocalId(this.activeLocalAccountId);\r\n };\r\n // #endregion\r\n // #region Helpers\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n ClientApplication.prototype.getRedirectUri = function (requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n };\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n ClientApplication.prototype.getRedirectStartPage = function (requestStartPage) {\r\n this.logger.verbose(\"getRedirectStartPage called\");\r\n var redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n */\r\n ClientApplication.prototype.getDiscoveredAuthority = function (requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityOptions;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getDiscoveredAuthority called\");\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata\r\n };\r\n if (!requestAuthority) return [3 /*break*/, 2];\r\n this.logger.verbose(\"Creating discovered authority with request authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to check whether interaction is in progress.\r\n */\r\n ClientApplication.prototype.interactionInProgress = function () {\r\n // Check whether value in cache is present and equal to expected value\r\n return (this.browserStorage.getTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, true)) === BrowserConstants.INTERACTION_IN_PROGRESS_VALUE;\r\n };\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n ClientApplication.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"createAuthCodeClient called\");\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new AuthorizationCodeClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates an Silent Flow Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n ClientApplication.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"createSilentFlowClient called\");\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new SilentFlowClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n ClientApplication.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"createRefreshTokenClient called\");\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new RefreshTokenClient(clientConfig)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param requestAuthority\r\n */\r\n ClientApplication.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getClientConfiguration called\");\r\n return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n return [2 /*return*/, {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds\r\n },\r\n loggerOptions: {\r\n loggerCallback: this.config.system.loggerOptions.loggerCallback,\r\n piiLoggingEnabled: this.config.system.loggerOptions.piiLoggingEnabled\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version,\r\n cpu: \"\",\r\n os: \"\"\r\n }\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to validate app environment before making a request.\r\n * @param request\r\n * @param interactionType\r\n */\r\n ClientApplication.prototype.preflightInteractiveRequest = function (request, interactionType) {\r\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\");\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Check if interaction is in progress. Throw error if true.\r\n if (this.interactionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n return this.initializeAuthorizationRequest(request, interactionType);\r\n };\r\n /**\r\n * Helper to validate app environment before making an auth request\r\n * * @param interactionType\r\n */\r\n ClientApplication.prototype.preflightBrowserEnvironmentCheck = function (interactionType) {\r\n this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\r\n // Block request if not in browser environment\r\n BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\r\n // Block redirects if in an iframe\r\n BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\r\n // Block auth requests inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Block redirectUri opened in a popup from calling MSAL APIs\r\n BrowserUtils.blockAcquireTokenInPopups();\r\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n if (interactionType === InteractionType.Redirect &&\r\n this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n !this.config.cache.storeAuthStateInCookie) {\r\n throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\r\n }\r\n };\r\n /**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\n ClientApplication.prototype.initializeBaseRequest = function (request) {\r\n this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n var authority = request.authority || this.config.auth.authority;\r\n var scopes = __spread(((request && request.scopes) || []));\r\n var correlationId = (request && request.correlationId) || this.browserCrypto.createNewGuid();\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!request.authenticationScheme) {\r\n request.authenticationScheme = AuthenticationScheme.BEARER;\r\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n }\r\n else {\r\n this.logger.verbose(\"Authentication Scheme set to \\\"\" + request.authenticationScheme + \"\\\" as configured in Auth request\");\r\n }\r\n var validatedRequest = __assign(__assign({}, request), { correlationId: correlationId,\r\n authority: authority,\r\n scopes: scopes });\r\n return validatedRequest;\r\n };\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n ClientApplication.prototype.initializeServerTelemetryManager = function (apiId, correlationId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n var telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.wrapperSKU,\r\n wrapperVer: this.wrapperVer\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n };\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n ClientApplication.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n this.logger.verbose(\"initializeAuthorizationRequest called\");\r\n var redirectUri = this.getRedirectUri(request.redirectUri);\r\n var browserState = {\r\n interactionType: interactionType\r\n };\r\n var state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || \"\", browserState);\r\n var validatedRequest = __assign(__assign({}, this.initializeBaseRequest(request)), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT });\r\n var account = request.account || this.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\");\r\n this.logger.verbosePii(\"Setting validated request account: \" + account);\r\n validatedRequest.account = account;\r\n }\r\n // Check for ADAL SSO\r\n if (StringUtils.isEmpty(validatedRequest.loginHint)) {\r\n // Only check for adal token if no SSO params are being used\r\n var adalIdTokenString = this.browserStorage.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdTokenString) {\r\n var adalIdToken = new IdToken(adalIdTokenString, this.browserCrypto);\r\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdToken.claims && adalIdToken.claims.upn) {\r\n this.logger.verbose(\"No SSO params used and ADAL token retrieved, setting ADAL upn as loginHint\");\r\n validatedRequest.loginHint = adalIdToken.claims.upn;\r\n }\r\n }\r\n }\r\n this.browserStorage.updateCacheEntries(validatedRequest.state, validatedRequest.nonce, validatedRequest.authority);\r\n return validatedRequest;\r\n };\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n ClientApplication.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var generatedPkceParams, authCodeRequest;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n case 1:\r\n generatedPkceParams = _a.sent();\r\n authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: \"\", codeVerifier: generatedPkceParams.verifier });\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return [2 /*return*/, authCodeRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\");\r\n // Check if interaction is in progress. Throw error if true.\r\n if (this.interactionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n var validLogoutRequest = __assign({ correlationId: this.browserCrypto.createNewGuid() }, logoutRequest);\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\");\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\");\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\");\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\");\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not settibng post logout redirect uri\");\r\n }\r\n return validLogoutRequest;\r\n };\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n ClientApplication.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n var _this = this;\r\n if (this.isBrowserEnvironment) {\r\n var message_1 = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now()\r\n };\r\n this.logger.info(\"Emitting event: \" + eventType);\r\n this.eventCallbacks.forEach(function (callback, callbackId) {\r\n _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n callback.apply(null, [message_1]);\r\n });\r\n }\r\n };\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n ClientApplication.prototype.addEventCallback = function (callback) {\r\n if (this.isBrowserEnvironment) {\r\n var callbackId = this.browserCrypto.createNewGuid();\r\n this.eventCallbacks.set(callbackId, callback);\r\n this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n return callbackId;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n ClientApplication.prototype.removeEventCallback = function (callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n };\r\n /**\r\n * Returns the logger instance\r\n */\r\n ClientApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n ClientApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n ClientApplication.prototype.initializeWrapperLibrary = function (sku, version) {\r\n // Validate the SKU passed in is one we expect\r\n this.wrapperSKU = sku;\r\n this.wrapperVer = version;\r\n };\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n ClientApplication.prototype.setNavigationClient = function (navigationClient) {\r\n this.navigationClient = navigationClient;\r\n };\r\n return ClientApplication;\r\n}());\n\nexport { ClientApplication };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_REQUEST, InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { ClientApplication } from './ClientApplication.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nvar PublicClientApplication = /** @class */ (function (_super) {\r\n __extends(PublicClientApplication, _super);\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration object for the MSAL PublicClientApplication instance\r\n */\r\n function PublicClientApplication(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n PublicClientApplication.prototype.loginRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.logger.verbose(\"loginRedirect called\");\r\n return [2 /*return*/, this.acquireTokenRedirect(request || DEFAULT_REQUEST)];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PublicClientApplication.prototype.loginPopup = function (request) {\r\n this.logger.verbose(\"loginPopup called\");\r\n return this.acquireTokenPopup(request || DEFAULT_REQUEST);\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account, silentRequest, serverTelemetryManager, silentAuthClient, cachedToken, tokenRenewalResult, tokenRenewalError_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"acquireTokenSilent called\");\r\n account = request.account || this.getActiveAccount();\r\n if (!account) {\r\n throw BrowserAuthError.createNoAccountError();\r\n }\r\n silentRequest = __assign(__assign(__assign({}, request), this.initializeBaseRequest(request)), { account: account, forceRefresh: request.forceRefresh || false });\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 4, , 9]);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow, silentRequest.correlationId);\r\n return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority)];\r\n case 2:\r\n silentAuthClient = _a.sent();\r\n return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n case 3:\r\n cachedToken = _a.sent();\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, cachedToken);\r\n return [2 /*return*/, cachedToken];\r\n case 4:\r\n _a.sent();\r\n _a.label = 5;\r\n case 5:\r\n _a.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, this.acquireTokenByRefreshToken(silentRequest)];\r\n case 6:\r\n tokenRenewalResult = _a.sent();\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, tokenRenewalResult);\r\n return [2 /*return*/, tokenRenewalResult];\r\n case 7:\r\n tokenRenewalError_1 = _a.sent();\r\n this.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError_1);\r\n throw tokenRenewalError_1;\r\n case 8: return [3 /*break*/, 9];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PublicClientApplication;\r\n}(ClientApplication));\n\nexport { PublicClientApplication };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends, __spread } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION, AccountEntity, CacheManager, IdTokenEntity, AccessTokenEntity, RefreshTokenEntity, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, ThrottlingEntity, Constants, StringUtils, PersistentCacheKeys, ProtocolUtils } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserCacheLocation, TemporaryCacheKeys } from '../utils/BrowserConstants.js';\nimport { BrowserStorage } from './BrowserStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nvar BrowserCacheManager = /** @class */ (function (_super) {\r\n __extends(BrowserCacheManager, _super);\r\n function BrowserCacheManager(clientId, cacheConfig, cryptoImpl, logger) {\r\n var _this = _super.call(this, clientId, cryptoImpl) || this;\r\n // Cookie life calculation (hours * minutes * seconds * ms)\r\n _this.COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\n _this.cacheConfig = cacheConfig;\r\n _this.logger = logger;\r\n _this.internalStorage = new MemoryStorage();\r\n _this.browserStorage = _this.setupBrowserStorage(_this.cacheConfig.cacheLocation);\r\n _this.temporaryCacheStorage = _this.setupTemporaryCacheStorage(_this.cacheConfig.cacheLocation);\r\n // Migrate any cache entries from older versions of MSAL.\r\n _this.migrateCacheEntries();\r\n return _this;\r\n }\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupBrowserStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n return new BrowserStorage(cacheLocation);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n break;\r\n }\r\n }\r\n this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\r\n return new MemoryStorage();\r\n };\r\n /**\r\n *\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupTemporaryCacheStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n // Temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n return new BrowserStorage(BrowserCacheLocation.SessionStorage);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n return this.internalStorage;\r\n }\r\n case BrowserCacheLocation.MemoryStorage:\r\n default:\r\n return this.internalStorage;\r\n }\r\n };\r\n /**\r\n * Migrate all old cache entries to new schema. No rollback supported.\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntries = function () {\r\n var _this = this;\r\n var idTokenKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ID_TOKEN;\r\n var clientInfoKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR;\r\n var errorDescKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR_DESC;\r\n var idTokenValue = this.browserStorage.getItem(idTokenKey);\r\n var clientInfoValue = this.browserStorage.getItem(clientInfoKey);\r\n var errorValue = this.browserStorage.getItem(errorKey);\r\n var errorDescValue = this.browserStorage.getItem(errorDescKey);\r\n var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.migrateCacheEntry(cacheKey, values[index]); });\r\n };\r\n /**\r\n * Utility function to help with migration.\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntry = function (newKey, value) {\r\n if (value) {\r\n this.setTemporaryCache(newKey, value, true);\r\n }\r\n };\r\n /**\r\n * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n * @param input\r\n */\r\n BrowserCacheManager.prototype.validateAndParseJson = function (jsonValue) {\r\n try {\r\n var parsedJson = JSON.parse(jsonValue);\r\n /**\r\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n *\r\n */\r\n return (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * fetches the entry from the browser storage based off the key\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getItem = function (key) {\r\n return this.browserStorage.getItem(key);\r\n };\r\n /**\r\n * sets the entry in the browser storage\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setItem = function (key, value) {\r\n this.browserStorage.setItem(key, value);\r\n };\r\n /**\r\n * fetch the account entity from the platform cache\r\n * @param accountKey\r\n */\r\n BrowserCacheManager.prototype.getAccount = function (accountKey) {\r\n var account = this.getItem(accountKey);\r\n if (!account) {\r\n return null;\r\n }\r\n var parsedAccount = this.validateAndParseJson(account);\r\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n return null;\r\n }\r\n return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n };\r\n /**\r\n * set account entity in the platform cache\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setAccount = function (account) {\r\n this.logger.trace(\"BrowserCacheManager.setAccount called\");\r\n var key = account.generateAccountKey();\r\n this.setItem(key, JSON.stringify(account));\r\n };\r\n /**\r\n * generates idToken entity from a string\r\n * @param idTokenKey\r\n */\r\n BrowserCacheManager.prototype.getIdTokenCredential = function (idTokenKey) {\r\n var value = this.getItem(idTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedIdToken = this.validateAndParseJson(value);\r\n if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\r\n };\r\n /**\r\n * set IdToken credential to the platform cache\r\n * @param idToken\r\n */\r\n BrowserCacheManager.prototype.setIdTokenCredential = function (idToken) {\r\n this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\r\n var idTokenKey = idToken.generateCredentialKey();\r\n this.setItem(idTokenKey, JSON.stringify(idToken));\r\n };\r\n /**\r\n * generates accessToken entity from a string\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getAccessTokenCredential = function (accessTokenKey) {\r\n var value = this.getItem(accessTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedAccessToken = this.validateAndParseJson(value);\r\n if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\r\n };\r\n /**\r\n * set accessToken credential to the platform cache\r\n * @param accessToken\r\n */\r\n BrowserCacheManager.prototype.setAccessTokenCredential = function (accessToken) {\r\n this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n var accessTokenKey = accessToken.generateCredentialKey();\r\n this.setItem(accessTokenKey, JSON.stringify(accessToken));\r\n };\r\n /**\r\n * generates refreshToken entity from a string\r\n * @param refreshTokenKey\r\n */\r\n BrowserCacheManager.prototype.getRefreshTokenCredential = function (refreshTokenKey) {\r\n var value = this.getItem(refreshTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedRefreshToken = this.validateAndParseJson(value);\r\n if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\r\n };\r\n /**\r\n * set refreshToken credential to the platform cache\r\n * @param refreshToken\r\n */\r\n BrowserCacheManager.prototype.setRefreshTokenCredential = function (refreshToken) {\r\n this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n var refreshTokenKey = refreshToken.generateCredentialKey();\r\n this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\r\n };\r\n /**\r\n * fetch appMetadata entity from the platform cache\r\n * @param appMetadataKey\r\n */\r\n BrowserCacheManager.prototype.getAppMetadata = function (appMetadataKey) {\r\n var value = this.getItem(appMetadataKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set appMetadata entity to the platform cache\r\n * @param appMetadata\r\n */\r\n BrowserCacheManager.prototype.setAppMetadata = function (appMetadata) {\r\n this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\r\n var appMetadataKey = appMetadata.generateAppMetadataKey();\r\n this.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n };\r\n /**\r\n * fetch server telemetry entity from the platform cache\r\n * @param serverTelemetryKey\r\n */\r\n BrowserCacheManager.prototype.getServerTelemetry = function (serverTelemetryKey) {\r\n var value = this.getItem(serverTelemetryKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set server telemetry entity to the platform cache\r\n * @param serverTelemetryKey\r\n * @param serverTelemetry\r\n */\r\n BrowserCacheManager.prototype.setServerTelemetry = function (serverTelemetryKey, serverTelemetry) {\r\n this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\r\n this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadata = function (key) {\r\n var value = this.internalStorage.getItem(key);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\r\n }\r\n return null;\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadataKeys = function () {\r\n var _this = this;\r\n var allKeys = this.internalStorage.getKeys();\r\n return allKeys.filter(function (key) {\r\n return _this.isAuthorityMetadata(key);\r\n });\r\n };\r\n /**\r\n *\r\n * @param entity\r\n */\r\n BrowserCacheManager.prototype.setAuthorityMetadata = function (key, entity) {\r\n this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n this.internalStorage.setItem(key, JSON.stringify(entity));\r\n };\r\n /**\r\n * fetch throttling entity from the platform cache\r\n * @param throttlingCacheKey\r\n */\r\n BrowserCacheManager.prototype.getThrottlingCache = function (throttlingCacheKey) {\r\n var value = this.getItem(throttlingCacheKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedThrottlingCache = this.validateAndParseJson(value);\r\n if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\r\n };\r\n /**\r\n * set throttling entity to the platform cache\r\n * @param throttlingCacheKey\r\n * @param throttlingCache\r\n */\r\n BrowserCacheManager.prototype.setThrottlingCache = function (throttlingCacheKey, throttlingCache) {\r\n this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\r\n this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n };\r\n /**\r\n * Gets cache item with given key.\r\n * Will retrieve from cookies if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getTemporaryCache = function (cacheKey, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n var itemCookie = this.getItemCookie(key);\r\n if (itemCookie) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n return itemCookie;\r\n }\r\n }\r\n var value = this.temporaryCacheStorage.getItem(key);\r\n if (!value) {\r\n // If temp cache item not found in session/memory, check local storage for items set by old versions\r\n if (this.cacheConfig.cacheLocation === BrowserCacheLocation.LocalStorage) {\r\n var item = this.browserStorage.getItem(key);\r\n if (item) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\r\n return item;\r\n }\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\r\n return value;\r\n };\r\n /**\r\n * Sets the cache item with the key and value given.\r\n * Stores in cookie if storeAuthStateInCookie is set to true.\r\n * This can cause cookie overflow if used incorrectly.\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setTemporaryCache = function (cacheKey, value, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n this.temporaryCacheStorage.setItem(key, value);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * Removes the cache item with the given key.\r\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeItem = function (key) {\r\n this.browserStorage.removeItem(key);\r\n this.temporaryCacheStorage.removeItem(key);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n this.clearItemCookie(key);\r\n }\r\n return true;\r\n };\r\n /**\r\n * Checks whether key is in cache.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.containsKey = function (key) {\r\n return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\r\n };\r\n /**\r\n * Gets all keys in window.\r\n */\r\n BrowserCacheManager.prototype.getKeys = function () {\r\n return __spread(this.browserStorage.getKeys(), this.temporaryCacheStorage.getKeys());\r\n };\r\n /**\r\n * Clears all cache entries created by MSAL (except tokens).\r\n */\r\n BrowserCacheManager.prototype.clear = function () {\r\n var _this = this;\r\n this.removeAllAccounts();\r\n this.removeAppMetadata();\r\n this.getKeys().forEach(function (cacheKey) {\r\n // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\r\n if ((_this.browserStorage.containsKey(cacheKey) || _this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(_this.clientId) !== -1))) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n this.internalStorage.clear();\r\n };\r\n /**\r\n * Add value to cookies\r\n * @param cookieName\r\n * @param cookieValue\r\n * @param expires\r\n */\r\n BrowserCacheManager.prototype.setItemCookie = function (cookieName, cookieValue, expires) {\r\n var cookieStr = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \";path=/;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n if (this.cacheConfig.secureCookies) {\r\n cookieStr += \"Secure;\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * Get one item by key from cookies\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.getItemCookie = function (cookieName) {\r\n var name = encodeURIComponent(cookieName) + \"=\";\r\n var cookieList = document.cookie.split(\";\");\r\n for (var i = 0; i < cookieList.length; i++) {\r\n var cookie = cookieList[i];\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n }\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\r\n */\r\n BrowserCacheManager.prototype.clearMsalCookies = function () {\r\n var _this = this;\r\n var cookiePrefix = Constants.CACHE_PREFIX + \".\" + this.clientId;\r\n var cookieList = document.cookie.split(\";\");\r\n cookieList.forEach(function (cookie) {\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(cookiePrefix) === 0) {\r\n var cookieKey = cookie.split(\"=\")[0];\r\n _this.clearItemCookie(cookieKey);\r\n }\r\n });\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.clearItemCookie = function (cookieName) {\r\n this.setItemCookie(cookieName, \"\", -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserCacheManager.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\r\n return expr.toUTCString();\r\n };\r\n /**\r\n * Gets the cache object referenced by the browser\r\n */\r\n BrowserCacheManager.prototype.getCache = function () {\r\n return this.browserStorage;\r\n };\r\n /**\r\n * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\r\n */\r\n BrowserCacheManager.prototype.setCache = function () {\r\n // sets nothing\r\n };\r\n /**\r\n * Prepend msal. to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n BrowserCacheManager.prototype.generateCacheKey = function (key) {\r\n var generatedKey = this.validateAndParseJson(key);\r\n if (!generatedKey) {\r\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\r\n return key;\r\n }\r\n return Constants.CACHE_PREFIX + \".\" + this.clientId + \".\" + key;\r\n }\r\n return JSON.stringify(key);\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateAuthorityKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.AUTHORITY + \".\" + stateId);\r\n };\r\n /**\r\n * Create Nonce key to cache nonce\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateNonceKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN + \".\" + stateId);\r\n };\r\n /**\r\n * Creates full cache key for the request state\r\n * @param stateString State string for the request\r\n */\r\n BrowserCacheManager.prototype.generateStateKey = function (stateString) {\r\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.REQUEST_STATE + \".\" + stateId);\r\n };\r\n /**\r\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n */\r\n BrowserCacheManager.prototype.getCachedAuthority = function (cachedState) {\r\n var stateCacheKey = this.generateStateKey(cachedState);\r\n var state = this.getTemporaryCache(stateCacheKey);\r\n if (!state) {\r\n return null;\r\n }\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n return this.getTemporaryCache(authorityCacheKey);\r\n };\r\n /**\r\n * Updates account, authority, and state in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance) {\r\n this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\r\n // Cache the request state\r\n var stateCacheKey = this.generateStateKey(state);\r\n this.setTemporaryCache(stateCacheKey, state, false);\r\n // Cache the nonce\r\n var nonceCacheKey = this.generateNonceKey(state);\r\n this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n // Cache authorityKey\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.resetRequestCache = function (state) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\r\n // check state and remove associated cache items\r\n if (!StringUtils.isEmpty(state)) {\r\n this.getKeys().forEach(function (key) {\r\n if (key.indexOf(state) !== -1) {\r\n _this.removeItem(key);\r\n }\r\n });\r\n }\r\n // delete generic interactive request parameters\r\n if (state) {\r\n this.removeItem(this.generateStateKey(state));\r\n this.removeItem(this.generateNonceKey(state));\r\n this.removeItem(this.generateAuthorityKey(state));\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n };\r\n /**\r\n * Removes temporary cache for the provided state\r\n * @param stateString\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByState = function (stateString) {\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\r\n // Interaction is completed - remove interaction status.\r\n if (stateString) {\r\n var stateKey = this.generateStateKey(stateString);\r\n var cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n this.logger.infoPii(\"BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: \" + cachedState);\r\n this.resetRequestCache(cachedState || \"\");\r\n }\r\n this.clearMsalCookies();\r\n };\r\n /**\r\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n * @param interactionType\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByInteractionType = function (interactionType) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n // Loop through all keys to find state key\r\n this.getKeys().forEach(function (key) {\r\n // If this key is not the state key, move on\r\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n return;\r\n }\r\n // Retrieve state value, return if not a valid value\r\n var stateValue = _this.temporaryCacheStorage.getItem(key);\r\n if (!stateValue) {\r\n return;\r\n }\r\n // Extract state and ensure it matches given InteractionType, then clean request cache\r\n var parsedState = BrowserProtocolUtils.extractBrowserRequestState(_this.cryptoImpl, stateValue);\r\n if (parsedState && parsedState.interactionType === interactionType) {\r\n _this.logger.infoPii(\"BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: \" + stateValue);\r\n _this.resetRequestCache(stateValue);\r\n }\r\n });\r\n this.clearMsalCookies();\r\n };\r\n BrowserCacheManager.prototype.cacheCodeRequest = function (authCodeRequest, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\r\n var encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\r\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n };\r\n /**\r\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n */\r\n BrowserCacheManager.prototype.getCachedRequest = function (state, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\r\n // Get token request from cache and parse as TokenExchangeParameters.\r\n var encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n if (!encodedTokenRequest) {\r\n throw BrowserAuthError.createNoTokenRequestCacheError();\r\n }\r\n var parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest));\r\n if (!parsedRequest) {\r\n throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n // Get cached authority and use if no authority is cached with request.\r\n if (StringUtils.isEmpty(parsedRequest.authority)) {\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n var cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n if (!cachedAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n parsedRequest.authority = cachedAuthority;\r\n }\r\n return parsedRequest;\r\n };\r\n return BrowserCacheManager;\r\n}(CacheManager));\r\nvar DEFAULT_BROWSER_CACHE_MANAGER = function (clientId, logger) {\r\n var cacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\r\n};\n\nexport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n this.validateWindowStorage(cacheLocation);\r\n this.windowStorage = window[cacheLocation];\r\n }\r\n BrowserStorage.prototype.validateWindowStorage = function (cacheLocation) {\r\n if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n var storageSupported = !!window[cacheLocation];\r\n if (!storageSupported) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n };\r\n BrowserStorage.prototype.getItem = function (key) {\r\n return this.windowStorage.getItem(key);\r\n };\r\n BrowserStorage.prototype.setItem = function (key, value) {\r\n this.windowStorage.setItem(key, value);\r\n };\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n this.windowStorage.removeItem(key);\r\n };\r\n BrowserStorage.prototype.getKeys = function () {\r\n return Object.keys(this.windowStorage);\r\n };\r\n BrowserStorage.prototype.containsKey = function (key) {\r\n return this.windowStorage.hasOwnProperty(key);\r\n };\r\n return BrowserStorage;\r\n}());\n\nexport { BrowserStorage };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nvar DatabaseStorage = /** @class */ (function () {\r\n function DatabaseStorage(dbName, tableName, version) {\r\n this.dbName = dbName;\r\n this.tableName = tableName;\r\n this.version = version;\r\n this.dbOpen = false;\r\n }\r\n /**\r\n * Opens IndexedDB instance.\r\n */\r\n DatabaseStorage.prototype.open = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n var openDB = window.indexedDB.open(_this.dbName, _this.version);\r\n openDB.addEventListener(\"upgradeneeded\", function (e) {\r\n var event = e;\r\n event.target.result.createObjectStore(_this.tableName);\r\n });\r\n openDB.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.db = event.target.result;\r\n _this.dbOpen = true;\r\n resolve();\r\n });\r\n openDB.addEventListener(\"error\", function (error) { return reject(error); });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves item from IndexedDB instance.\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.get = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGet = objectStore.get(key);\r\n dbGet.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n resolve(event.target.result);\r\n });\r\n dbGet.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Adds item to IndexedDB under given key\r\n * @param key\r\n * @param payload\r\n */\r\n DatabaseStorage.prototype.put = function (key, payload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbPut = objectStore.put(payload, key);\r\n dbPut.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n resolve(event.target.result);\r\n });\r\n dbPut.addEventListener(\"error\", function (e) { return reject(e); });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n return DatabaseStorage;\r\n}());\n\nexport { DatabaseStorage };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache = new Map();\r\n }\r\n MemoryStorage.prototype.getItem = function (key) {\r\n return this.cache.get(key) || null;\r\n };\r\n MemoryStorage.prototype.setItem = function (key, value) {\r\n this.cache.set(key, value);\r\n };\r\n MemoryStorage.prototype.removeItem = function (key) {\r\n this.cache.delete(key);\r\n };\r\n MemoryStorage.prototype.getKeys = function () {\r\n var cacheKeys = [];\r\n this.cache.forEach(function (value, key) {\r\n cacheKeys.push(key);\r\n });\r\n return cacheKeys;\r\n };\r\n MemoryStorage.prototype.containsKey = function (key) {\r\n return this.cache.has(key);\r\n };\r\n MemoryStorage.prototype.clear = function () {\r\n this.cache.clear();\r\n };\r\n return MemoryStorage;\r\n}());\n\nexport { MemoryStorage };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_SYSTEM_OPTIONS, StubbedNetworkModule, Constants, ProtocolMode, LogLevel } from '@azure/msal-common';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { NavigationClient } from '../navigation/NavigationClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nvar DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nvar DEFAULT_IFRAME_TIMEOUT_MS = 6000;\r\nvar DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration(_a, isBrowserEnvironment) {\r\n var userInputAuth = _a.auth, userInputCache = _a.cache, userInputSystem = _a.system;\r\n // Default auth options for browser\r\n var DEFAULT_AUTH_OPTIONS = {\r\n clientId: \"\",\r\n authority: \"\" + Constants.DEFAULT_AUTHORITY,\r\n knownAuthorities: [],\r\n cloudDiscoveryMetadata: \"\",\r\n authorityMetadata: \"\",\r\n redirectUri: \"\",\r\n postLogoutRedirectUri: \"\",\r\n navigateToLoginRequestUrl: true,\r\n clientCapabilities: [],\r\n protocolMode: ProtocolMode.AAD\r\n };\r\n // Default cache options for browser\r\n var DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false\r\n };\r\n // Default logger options for browser\r\n var DEFAULT_LOGGER_OPTIONS = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loggerCallback: function () { },\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false\r\n };\r\n // Default system options for browser\r\n var DEFAULT_BROWSER_SYSTEM_OPTIONS = __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), { loggerOptions: DEFAULT_LOGGER_OPTIONS, networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule, navigationClient: new NavigationClient(), loadFrameTimeout: 0, \r\n // If loadFrameTimeout is provided, use that as default.\r\n windowHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS, iframeHashTimeout: (userInputSystem && userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS, navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0, redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS, asyncPopups: false, allowRedirectInIframe: false });\r\n var overlayedConfig = {\r\n auth: __assign(__assign({}, DEFAULT_AUTH_OPTIONS), userInputAuth),\r\n cache: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userInputCache),\r\n system: __assign(__assign({}, DEFAULT_BROWSER_SYSTEM_OPTIONS), userInputSystem)\r\n };\r\n return overlayedConfig;\r\n}\n\nexport { DEFAULT_IFRAME_TIMEOUT_MS, DEFAULT_POPUP_TIMEOUT_MS, DEFAULT_REDIRECT_TIMEOUT_MS, buildConfiguration };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// RSA KeyGen Algorithm\r\nvar PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\n// SHA-256 hashing algorithm\r\nvar S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nvar MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nvar PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n/**\r\n * This class implements functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\nvar BrowserCrypto = /** @class */ (function () {\r\n function BrowserCrypto() {\r\n if (!(this.hasCryptoAPI())) {\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto or msCrypto object not available.\");\r\n }\r\n this._keygenAlgorithmOptions = {\r\n name: PKCS1_V15_KEYGEN_ALG,\r\n hash: S256_HASH_ALG,\r\n modulusLength: MODULUS_LENGTH,\r\n publicExponent: PUBLIC_EXPONENT\r\n };\r\n }\r\n /**\r\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n * @param dataString\r\n */\r\n BrowserCrypto.prototype.sha256Digest = function (dataString) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n data = BrowserStringUtils.stringToUtf8Arr(dataString);\r\n return [2 /*return*/, this.hasIECrypto() ? this.getMSCryptoDigest(S256_HASH_ALG, data) : this.getSubtleCryptoDigest(S256_HASH_ALG, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Populates buffer with cryptographically random values.\r\n * @param dataBuffer\r\n */\r\n BrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n var cryptoObj = window[\"msCrypto\"] || window.crypto;\r\n if (!cryptoObj.getRandomValues) {\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"getRandomValues does not exist.\");\r\n }\r\n cryptoObj.getRandomValues(dataBuffer);\r\n };\r\n /**\r\n * Generates a keypair based on current keygen algorithm config.\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.generateKeyPair = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, (this.hasIECrypto() ?\r\n this.msCryptoGenerateKey(extractable, usages)\r\n : window.crypto.subtle.generateKey(this._keygenAlgorithmOptions, extractable, usages))];\r\n });\r\n });\r\n };\r\n /**\r\n * Export key as Json Web Key (JWK)\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.exportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.hasIECrypto() ? this.msCryptoExportJwk(key) : window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n /**\r\n * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.importJwk = function (key, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyString, keyBuffer;\r\n return __generator(this, function (_a) {\r\n keyString = BrowserCrypto.getJwkString(key);\r\n keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\r\n return [2 /*return*/, this.hasIECrypto() ?\r\n this.msCryptoImportKey(keyBuffer, extractable, usages)\r\n : window.crypto.subtle.importKey(KEY_FORMAT_JWK, key, this._keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Signs given data with given key\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.sign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.hasIECrypto() ?\r\n this.msCryptoSign(key, data)\r\n : window.crypto.subtle.sign(this._keygenAlgorithmOptions, key, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Check whether IE crypto or other browser cryptography is available.\r\n */\r\n BrowserCrypto.prototype.hasCryptoAPI = function () {\r\n return this.hasIECrypto() || this.hasBrowserCrypto();\r\n };\r\n /**\r\n * Checks whether IE crypto (AKA msCrypto) is available.\r\n */\r\n BrowserCrypto.prototype.hasIECrypto = function () {\r\n return \"msCrypto\" in window;\r\n };\r\n /**\r\n * Check whether browser crypto is available.\r\n */\r\n BrowserCrypto.prototype.hasBrowserCrypto = function () {\r\n return \"crypto\" in window;\r\n };\r\n /**\r\n * Helper function for SHA digest.\r\n * @param algorithm\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.getSubtleCryptoDigest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for SHA digest.\r\n * @param algorithm\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.getMSCryptoDigest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\r\n digestOperation.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n digestOperation.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for generating a keypair\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.msCryptoGenerateKey = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msGenerateKey = window[\"msCrypto\"].subtle.generateKey(_this._keygenAlgorithmOptions, extractable, usages);\r\n msGenerateKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msGenerateKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for exportKey\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.msCryptoExportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\r\n msExportKey.addEventListener(\"complete\", function (e) {\r\n var resultBuffer = e.target.result;\r\n var resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\r\n .replace(/\\r/g, \"\")\r\n .replace(/\\n/g, \"\")\r\n .replace(/\\t/g, \"\")\r\n .split(\" \").join(\"\")\r\n .replace(\"\\u0000\", \"\");\r\n try {\r\n resolve(JSON.parse(resultString));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n msExportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for importKey\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.msCryptoImportKey = function (keyBuffer, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, _this._keygenAlgorithmOptions, extractable, usages);\r\n msImportKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msImportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * IE Helper function for sign JWT\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.msCryptoSign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msSign = window[\"msCrypto\"].subtle.sign(_this._keygenAlgorithmOptions, key, data);\r\n msSign.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msSign.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns stringified jwk.\r\n * @param jwk\r\n */\r\n BrowserCrypto.getJwkString = function (jwk) {\r\n return JSON.stringify(jwk, Object.keys(jwk).sort());\r\n };\r\n return BrowserCrypto;\r\n}());\n\nexport { BrowserCrypto };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { GuidGenerator } from './GuidGenerator.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\nimport { Base64Decode } from '../encode/Base64Decode.js';\nimport { PkceGenerator } from './PkceGenerator.js';\nimport { BrowserCrypto } from './BrowserCrypto.js';\nimport { DatabaseStorage } from '../cache/DatabaseStorage.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nvar CryptoOps = /** @class */ (function () {\r\n function CryptoOps() {\r\n // Browser crypto needs to be validated first before any other classes can be set.\r\n this.browserCrypto = new BrowserCrypto();\r\n this.b64Encode = new Base64Encode();\r\n this.b64Decode = new Base64Decode();\r\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\r\n this.cache = new DatabaseStorage(CryptoOps.DB_NAME, CryptoOps.TABLE_NAME, CryptoOps.DB_VERSION);\r\n }\r\n /**\r\n * Creates a new random GUID - used to populate state and nonce.\r\n * @returns string (GUID)\r\n */\r\n CryptoOps.prototype.createNewGuid = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n /**\r\n * Encodes input string to base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Encode = function (input) {\r\n return this.b64Encode.encode(input);\r\n };\r\n /**\r\n * Decodes input string from base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Decode = function (input) {\r\n return this.b64Decode.decode(input);\r\n };\r\n /**\r\n * Generates PKCE codes used in Authorization Code Flow.\r\n */\r\n CryptoOps.prototype.generatePkceCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.pkceGenerator.generateCodes()];\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a keypair, stores it and returns a thumbprint\r\n * @param request\r\n */\r\n CryptoOps.prototype.getPublicKeyThumbprint = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyPair, publicKeyJwk, pubKeyThumprintObj, publicJwkString, publicJwkBuffer, publicJwkHash, privateKeyJwk, unextractablePrivateKey;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES)];\r\n case 1:\r\n keyPair = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _a.sent();\r\n pubKeyThumprintObj = {\r\n e: publicKeyJwk.e,\r\n kty: publicKeyJwk.kty,\r\n n: publicKeyJwk.n\r\n };\r\n publicJwkString = BrowserCrypto.getJwkString(pubKeyThumprintObj);\r\n return [4 /*yield*/, this.browserCrypto.sha256Digest(publicJwkString)];\r\n case 3:\r\n publicJwkBuffer = _a.sent();\r\n publicJwkHash = this.b64Encode.urlEncodeArr(new Uint8Array(publicJwkBuffer));\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];\r\n case 4:\r\n privateKeyJwk = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"])];\r\n case 5:\r\n unextractablePrivateKey = _a.sent();\r\n // Store Keypair data in keystore\r\n this.cache.put(publicJwkHash, {\r\n privateKey: unextractablePrivateKey,\r\n publicKey: keyPair.publicKey,\r\n requestMethod: request.resourceRequestMethod,\r\n requestUri: request.resourceRequestUri\r\n });\r\n return [2 /*return*/, publicJwkHash];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n * @param payload\r\n * @param kid\r\n */\r\n CryptoOps.prototype.signJwt = function (payload, kid) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedKeyPair, publicKeyJwk, publicKeyJwkString, header, encodedHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.get(kid)];\r\n case 1:\r\n cachedKeyPair = _a.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(cachedKeyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _a.sent();\r\n publicKeyJwkString = BrowserCrypto.getJwkString(publicKeyJwk);\r\n header = {\r\n alg: publicKeyJwk.alg,\r\n type: KEY_FORMAT_JWK\r\n };\r\n encodedHeader = this.b64Encode.urlEncode(JSON.stringify(header));\r\n // Generate payload\r\n payload.cnf = {\r\n jwk: JSON.parse(publicKeyJwkString)\r\n };\r\n encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\r\n tokenString = encodedHeader + \".\" + encodedPayload;\r\n tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\r\n return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];\r\n case 3:\r\n signatureBuffer = _a.sent();\r\n encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\r\n return [2 /*return*/, tokenString + \".\" + encodedSignature];\r\n }\r\n });\r\n });\r\n };\r\n CryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\n CryptoOps.EXTRACTABLE = true;\r\n CryptoOps.DB_VERSION = 1;\r\n CryptoOps.DB_NAME = \"msal.db\";\r\n CryptoOps.TABLE_NAME = CryptoOps.DB_NAME + \".keys\";\r\n return CryptoOps;\r\n}());\n\nexport { CryptoOps };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { MathUtils } from '../utils/MathUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar GuidGenerator = /** @class */ (function () {\r\n function GuidGenerator(cryptoObj) {\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /*\r\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n * pseudo-random numbers.\r\n * The algorithm is as follows:\r\n * Set the two most significant bits (bits 6 and 7) of the\r\n * clock_seq_hi_and_reserved to zero and one, respectively.\r\n * Set the four most significant bits (bits 12 through 15) of the\r\n * time_hi_and_version field to the 4-bit version number from\r\n * Section 4.1.3. Version4\r\n * Set all the other bits to randomly (or pseudo-randomly) chosen\r\n * values.\r\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n * time-low = 4hexOctet\r\n * time-mid = 2hexOctet\r\n * time-high-and-version = 2hexOctet\r\n * clock-seq-and-reserved = hexOctet:\r\n * clock-seq-low = hexOctet\r\n * node = 6hexOctet\r\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n * y values are 8, 9, A, B\r\n */\r\n GuidGenerator.prototype.generateGuid = function () {\r\n try {\r\n var buffer = new Uint8Array(16);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n return MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\r\n + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\r\n + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\r\n + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\r\n + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\r\n + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\r\n + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\r\n + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\r\n }\r\n catch (err) {\r\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n var hex = \"0123456789abcdef\";\r\n var r = 0;\r\n var guidResponse = \"\";\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === \"x\") {\r\n guidResponse += hex[r];\r\n }\r\n else if (guidHolder[i] === \"y\") {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n }\r\n else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /**\r\n * verifies if a string is GUID\r\n * @param guid\r\n */\r\n GuidGenerator.isGuid = function (guid) {\r\n var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n return regexGuid.test(guid);\r\n };\r\n return GuidGenerator;\r\n}());\n\nexport { GuidGenerator };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nvar RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * Class which exposes APIs to generate PKCE codes and code verifiers.\r\n */\r\nvar PkceGenerator = /** @class */ (function () {\r\n function PkceGenerator(cryptoObj) {\r\n this.base64Encode = new Base64Encode();\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /**\r\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n */\r\n PkceGenerator.prototype.generateCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var codeVerifier, codeChallenge;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n codeVerifier = this.generateCodeVerifier();\r\n return [4 /*yield*/, this.generateCodeChallengeFromVerifier(codeVerifier)];\r\n case 1:\r\n codeChallenge = _a.sent();\r\n return [2 /*return*/, {\r\n verifier: codeVerifier,\r\n challenge: codeChallenge\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a random 32 byte buffer and returns the base64\r\n * encoded string to be used as a PKCE Code Verifier\r\n */\r\n PkceGenerator.prototype.generateCodeVerifier = function () {\r\n try {\r\n // Generate random values as utf-8\r\n var buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // encode verifier as base64\r\n var pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);\r\n return pkceCodeVerifierB64;\r\n }\r\n catch (e) {\r\n throw BrowserAuthError.createPkceNotGeneratedError(e);\r\n }\r\n };\r\n /**\r\n * Creates a base64 encoded PKCE Code Challenge string from the\r\n * hash created from the PKCE Code Verifier supplied\r\n */\r\n PkceGenerator.prototype.generateCodeChallengeFromVerifier = function (pkceCodeVerifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pkceHashedCodeVerifier, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.cryptoObj.sha256Digest(pkceCodeVerifier)];\r\n case 1:\r\n pkceHashedCodeVerifier = _a.sent();\r\n // encode hash as base64\r\n return [2 /*return*/, this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier))];\r\n case 2:\r\n e_1 = _a.sent();\r\n throw BrowserAuthError.createPkceNotGeneratedError(e_1);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PkceGenerator;\r\n}());\n\nexport { PkceGenerator };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n function Base64Decode() {\r\n }\r\n /**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\n Base64Decode.prototype.decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n };\r\n /**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n * @param nBlockSize\r\n */\r\n Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, \"\");\r\n var nInLen = sB64Enc.length;\r\n var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n var aBytes = new Uint8Array(nOutLen);\r\n for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n nMod4 = nInIdx & 3;\r\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n }\r\n nUint24 = 0;\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Base64 string to array decoding helper\r\n * @param charNum\r\n */\r\n Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n return charNum > 64 && charNum < 91 ?\r\n charNum - 65\r\n : charNum > 96 && charNum < 123 ?\r\n charNum - 71\r\n : charNum > 47 && charNum < 58 ?\r\n charNum + 4\r\n : charNum === 43 ?\r\n 62\r\n : charNum === 47 ?\r\n 63\r\n :\r\n 0;\r\n };\r\n return Base64Decode;\r\n}());\n\nexport { Base64Decode };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n function Base64Encode() {\r\n }\r\n /**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.urlEncode = function (input) {\r\n return encodeURIComponent(this.encode(input)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n };\r\n /**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\n Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n return this.base64EncArr(inputArr)\r\n .replace(/=/g, \"\")\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n };\r\n /**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.encode = function (input) {\r\n var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n return this.base64EncArr(inputUtf8Arr);\r\n };\r\n /**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\n Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n var sB64Enc = \"\";\r\n for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nMod3 = nIdx % 3;\r\n /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n /*\r\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n */\r\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n nUint24 = 0;\r\n }\r\n }\r\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n };\r\n /**\r\n * Base64 string to array encoding helper\r\n * @param nUint6\r\n */\r\n Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n return nUint6 < 26 ?\r\n nUint6 + 65\r\n : nUint6 < 52 ?\r\n nUint6 + 71\r\n : nUint6 < 62 ?\r\n nUint6 - 4\r\n : nUint6 === 62 ?\r\n 43\r\n : nUint6 === 63 ?\r\n 47\r\n :\r\n 65;\r\n };\r\n return Base64Encode;\r\n}());\n\nexport { Base64Encode };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: \"pkce_not_created\",\r\n desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n },\r\n cryptoDoesNotExist: {\r\n code: \"crypto_nonexistent\",\r\n desc: \"The crypto object or function is not available.\"\r\n },\r\n httpMethodNotImplementedError: {\r\n code: \"http_method_not_implemented\",\r\n desc: \"The HTTP method given has not been implemented in this library.\"\r\n },\r\n emptyNavigateUriError: {\r\n code: \"empty_navigate_uri\",\r\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n },\r\n hashEmptyError: {\r\n code: \"hash_empty_error\",\r\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash.\"\r\n },\r\n hashDoesNotContainStateError: {\r\n code: \"no_state_in_hash\",\r\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: \"hash_does_not_contain_known_properties\",\r\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash.\"\r\n },\r\n unableToParseStateError: {\r\n code: \"unable_to_parse_state\",\r\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: \"state_interaction_type_mismatch\",\r\n desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n },\r\n interactionInProgress: {\r\n code: \"interaction_in_progress\",\r\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n popUpWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n emptyWindowError: {\r\n code: \"empty_window_error\",\r\n desc: \"window.open returned null or undefined window object.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n monitorPopupTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in popup failed due to timeout.\"\r\n },\r\n monitorIframeTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in iframe failed due to timeout.\"\r\n },\r\n redirectInIframeError: {\r\n code: \"redirect_in_iframe\",\r\n desc: \"Code flow is not supported inside an iframe. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: \"block_iframe_reload\",\r\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: \"block_nested_popups\",\r\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: \"iframe_closed_prematurely\",\r\n desc: \"The iframe being monitored was closed prematurely.\"\r\n },\r\n silentSSOInsufficientInfoError: {\r\n code: \"silent_sso_error\",\r\n desc: \"Silent SSO could not be completed - insufficient information was provided. Please provide either a loginHint or sid.\"\r\n },\r\n noAccountError: {\r\n code: \"no_account_error\",\r\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n },\r\n silentPromptValueError: {\r\n code: \"silent_prompt_value_error\",\r\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none'.\"\r\n },\r\n noTokenRequestCacheError: {\r\n code: \"no_token_request_cache_error\",\r\n desc: \"No token request in found in cache.\"\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: \"unable_to_parse_token_request_cache_error\",\r\n desc: \"The cached token request could not be parsed.\"\r\n },\r\n noCachedAuthorityError: {\r\n code: \"no_cached_authority_error\",\r\n desc: \"No cached authority found.\"\r\n },\r\n authRequestNotSet: {\r\n code: \"auth_request_not_set_error\",\r\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n notInBrowserEnvironment: {\r\n code: \"non_browser_environment\",\r\n desc: \"Login and token requests are not supported in non-browser environments.\"\r\n },\r\n databaseNotOpen: {\r\n code: \"database_not_open\",\r\n desc: \"Database is not open!\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n },\r\n getRequestFailed: {\r\n code: \"get_request_failed\",\r\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n },\r\n failedToParseNetworkResponse: {\r\n code: \"failed_to_parse_response\",\r\n desc: \"Failed to parse network response. Check network trace.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserAuthError, _super);\r\n function BrowserAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n _this.name = \"BrowserAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when PKCE is not implemented.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the crypto object is unavailable.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n * @param method\r\n */\r\n BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n };\r\n /**\r\n * Creates an error thrown when the navigation URI is empty.\r\n */\r\n BrowserAuthError.createEmptyNavigationUriError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n * @param hashValue\r\n */\r\n BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value does not contain known properties\r\n */\r\n BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createUnableToParseStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n */\r\n BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n */\r\n BrowserAuthError.createInteractionInProgressError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the popup window could not be opened.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = BrowserAuthErrorMessage.popUpWindowError.desc;\r\n errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n return new BrowserAuthError(BrowserAuthErrorMessage.popUpWindowError.code, errorMessage);\r\n };\r\n /**\r\n * Creates an error thrown when window.open returns an empty window object.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the user closes a popup.\r\n */\r\n BrowserAuthError.createUserCancelledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n */\r\n BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n */\r\n BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when navigateWindow is called inside an iframe.\r\n * @param windowParentCheck\r\n */\r\n BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n };\r\n /**\r\n * Creates an error thrown when an auth reload is done inside an iframe.\r\n */\r\n BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a popup attempts to call an acquireToken API\r\n * @returns\r\n */\r\n BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n */\r\n BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the login_hint, sid or account object is not provided in the ssoSilent API.\r\n */\r\n BrowserAuthError.createSilentSSOInsufficientInfoError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentSSOInsufficientInfoError.code, BrowserAuthErrorMessage.silentSSOInsufficientInfoError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n */\r\n BrowserAuthError.createNoAccountError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n */\r\n BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n };\r\n /**\r\n * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n */\r\n BrowserAuthError.createAuthRequestNotSetError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the authority could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoCachedAuthorityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n };\r\n /**\r\n * Creates an error thrown if cache type is invalid.\r\n */\r\n BrowserAuthError.createInvalidCacheTypeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Create an error thrown when login and token requests are made from a non-browser environment\r\n */\r\n BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n };\r\n /**\r\n * Create an error thrown when indexDB database is not open\r\n */\r\n BrowserAuthError.createDatabaseNotOpenError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to no internet\r\n */\r\n BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when network client fails to parse network response\r\n */\r\n BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n return BrowserAuthError;\r\n}(AuthError));\n\nexport { BrowserAuthError, BrowserAuthErrorMessage };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n storageNotSupportedError: {\r\n code: \"storage_not_supported\",\r\n desc: \"Given storage configuration option was not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n stubPcaInstanceCalled: {\r\n code: \"stubbed_public_client_application_called\",\r\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n inMemRedirectUnavailable: {\r\n code: \"in_mem_redirect_unavailable\",\r\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserConfigurationAuthError, _super);\r\n function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when given storage location is not supported.\r\n * @param givenStorageLocation\r\n */\r\n BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n };\r\n /**\r\n * Creates error thrown when callback object is invalid.\r\n * @param callbackObject\r\n */\r\n BrowserConfigurationAuthError.createInvalidCallbackObjectError = function (callbackObject) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.invalidCallbackObject.code, BrowserConfigurationAuthErrorMessage.invalidCallbackObject.desc + \" Given value for callback function: \" + callbackObject);\r\n };\r\n /**\r\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n */\r\n BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n */\r\n BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n };\r\n /*\r\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n */\r\n BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n };\r\n return BrowserConfigurationAuthError;\r\n}(AuthError));\n\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { EventType } from './EventType.js';\nimport { InteractionType, InteractionStatus } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventMessageUtils = /** @class */ (function () {\r\n function EventMessageUtils() {\r\n }\r\n /**\r\n * Gets interaction status from event message\r\n * @param message\r\n */\r\n EventMessageUtils.getInteractionStatusFromEvent = function (message) {\r\n switch (message.eventType) {\r\n case EventType.LOGIN_START:\r\n return InteractionStatus.Login;\r\n case EventType.SSO_SILENT_START:\r\n return InteractionStatus.SsoSilent;\r\n case EventType.ACQUIRE_TOKEN_START:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n return InteractionStatus.AcquireToken;\r\n }\r\n break;\r\n case EventType.HANDLE_REDIRECT_START:\r\n return InteractionStatus.HandleRedirect;\r\n case EventType.LOGOUT_START:\r\n return InteractionStatus.Logout;\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.SSO_SILENT_SUCCESS:\r\n case EventType.HANDLE_REDIRECT_END:\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.SSO_SILENT_FAILURE:\r\n case EventType.LOGOUT_END:\r\n return InteractionStatus.None;\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_FAILURE:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n return InteractionStatus.None;\r\n }\r\n break;\r\n }\r\n return null;\r\n };\r\n return EventMessageUtils;\r\n}());\n\nexport { EventMessageUtils };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n})(EventType || (EventType = {}));\n\nexport { EventType };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ClientAuthError, AuthorityFactory } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n function InteractionHandler(authCodeModule, storageImpl, authCodeRequest) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n InteractionHandler.prototype.handleCodeResponse = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options)];\r\n case 1:\r\n cloudInstanceAuthority = _a.sent();\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return InteractionHandler;\r\n}());\n\nexport { InteractionHandler };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, BrowserConstants } from '../utils/BrowserConstants.js';\nimport { PopupUtils } from '../utils/PopupUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\r\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\r\n */\r\nvar PopupHandler = /** @class */ (function (_super) {\r\n __extends(PopupHandler, _super);\r\n function PopupHandler(authCodeModule, storageImpl, authCodeRequest) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n // Properly sets this reference for the unload event.\r\n _this.popupUtils = new PopupUtils(storageImpl, authCodeModule.logger);\r\n return _this;\r\n }\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n PopupHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n this.authModule.logger.infoPii(\"Navigate to:\" + requestUrl);\r\n // Open the popup window to requestUrl.\r\n return this.popupUtils.openPopup(requestUrl, params.popupName, params.popup);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.authModule.logger.error(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n };\r\n /**\r\n * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - milliseconds until timeout\r\n */\r\n PopupHandler.prototype.monitorPopupForHash = function (popupWindow) {\r\n var _this = this;\r\n return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(function () {\r\n var contentHash = popupWindow.location.hash;\r\n BrowserUtils.clearHash(popupWindow);\r\n _this.popupUtils.cleanPopup(popupWindow);\r\n if (!contentHash) {\r\n throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\r\n }\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n return contentHash;\r\n }\r\n else {\r\n throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\r\n }\r\n });\r\n };\r\n return PopupHandler;\r\n}(InteractionHandler));\n\nexport { PopupHandler };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ThrottlingUtils, ClientAuthError } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, BrowserConstants, ApiId } from '../utils/BrowserConstants.js';\nimport { InteractionHandler } from './InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n __extends(RedirectHandler, _super);\r\n function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, browserCrypto) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n _this.browserCrypto = browserCrypto;\r\n return _this;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var navigationOptions, navigate;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set to true, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.INTERACTION_STATUS_KEY, BrowserConstants.INTERACTION_IN_PROGRESS_VALUE, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.authModule.logger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to:\" + requestUrl);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n navigate = params.onRedirectNavigate(requestUrl);\r\n if (!(navigate !== false)) return [3 /*break*/, 2];\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2:\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return [2 /*return*/];\r\n case 3: return [3 /*break*/, 6];\r\n case 4:\r\n // Navigate window to request URL\r\n this.authModule.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 5:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n // Throw error if request URL is empty.\r\n this.authModule.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n RedirectHandler.prototype.handleCodeResponse = function (locationHash, state, authority, networkModule, clientId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.authModule.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Remove throttle if it exists\r\n if (clientId) {\r\n ThrottlingUtils.removeThrottle(this.browserStorage, clientId, this.authCodeRequest.authority, this.authCodeRequest.scopes);\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n return RedirectHandler;\r\n}(InteractionHandler));\n\nexport { RedirectHandler };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, Constants, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n __extends(SilentHandler, _super);\r\n function SilentHandler(authCodeModule, storageImpl, authCodeRequest, navigateFrameWait) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest) || this;\r\n _this.navigateFrameWait = navigateFrameWait;\r\n return _this;\r\n }\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.authModule.logger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n _a = this.loadFrameSync(requestUrl);\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, _a];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n _this.authModule.logger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n }\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = window.performance.now();\r\n var timeoutMark = nowMark + timeout;\r\n var intervalId = setInterval(function () {\r\n if (window.performance.now() > timeoutMark) {\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n }\r\n catch (e) { }\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, BrowserConstants.POLL_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n SilentHandler.prototype.loadFrame = function (urlNavigate) {\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var frameHandle = _this.createHiddenIframe();\r\n setTimeout(function () {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, _this.navigateFrameWait);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n var frameHandle = this.createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.createHiddenIframe = function () {\r\n var authFrame = document.createElement(\"iframe\");\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n return authFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n return SilentHandler;\r\n}(InteractionHandler));\n\nexport { SilentHandler };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n function NavigationClient() {\r\n }\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateInternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateExternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.defaultNavigateWindow = function (url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n };\r\n return NavigationClient;\r\n}());\n\nexport { NavigationClient };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nvar FetchClient = /** @class */ (function () {\r\n function FetchClient() {\r\n }\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: this.getFetchHeaders(options)\r\n })];\r\n case 1:\r\n response = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_1 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createGetRequestFailedError(e_1, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 4: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 5:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqBody, response, e_3, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n reqBody = (options && options.body) || \"\";\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: this.getFetchHeaders(options),\r\n body: reqBody\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createPostRequestFailedError(e_3, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 5: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 6:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders\r\n */\r\n FetchClient.prototype.getFetchHeaders = function (options) {\r\n var headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n var optionsHeaders = options.headers;\r\n Object.keys(optionsHeaders).forEach(function (key) {\r\n headers.append(key, optionsHeaders[key]);\r\n });\r\n return headers;\r\n };\r\n FetchClient.prototype.getHeaderDict = function (headers) {\r\n var headerDict = {};\r\n headers.forEach(function (value, key) {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n };\r\n return FetchClient;\r\n}());\n\nexport { FetchClient };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n /**\r\n * XhrClient for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * XhrClient for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * Helper for XhrClient requests.\r\n * @param url\r\n * @param method\r\n * @param options\r\n */\r\n XhrClient.prototype.sendRequestAsync = function (url, method, options) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n _this.setXhrHeaders(xhr, options);\r\n xhr.onload = function () {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n try {\r\n var jsonResponse = JSON.parse(xhr.responseText);\r\n var networkResponse = {\r\n headers: _this.getHeaderDict(xhr),\r\n body: jsonResponse,\r\n status: xhr.status\r\n };\r\n resolve(networkResponse);\r\n }\r\n catch (e) {\r\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n if (window.navigator.onLine) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n else {\r\n reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n }\r\n };\r\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n xhr.send(options.body);\r\n }\r\n else if (method === HTTP_REQUEST_TYPE.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n }\r\n });\r\n };\r\n /**\r\n * Helper to set XHR headers for request.\r\n * @param xhr\r\n * @param options\r\n */\r\n XhrClient.prototype.setXhrHeaders = function (xhr, options) {\r\n if (options && options.headers) {\r\n var headers_1 = options.headers;\r\n Object.keys(headers_1).forEach(function (key) {\r\n xhr.setRequestHeader(key, headers_1[key]);\r\n });\r\n }\r\n };\r\n /**\r\n * Gets a string map of the headers received in the response.\r\n *\r\n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n * @param xhr\r\n */\r\n XhrClient.prototype.getHeaderDict = function (xhr) {\r\n var headerString = xhr.getAllResponseHeaders();\r\n var headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n var headerDict = {};\r\n headerArr.forEach(function (value) {\r\n var parts = value.split(\": \");\r\n var headerName = parts.shift();\r\n var headerVal = parts.join(\": \");\r\n if (headerName && headerVal) {\r\n headerDict[headerName] = headerVal;\r\n }\r\n });\r\n return headerDict;\r\n };\r\n return XhrClient;\r\n}());\n\nexport { XhrClient };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-browser\";\r\nvar version = \"2.14.2\";\n\nexport { name, version };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nvar BrowserConstants = {\r\n /**\r\n * Interaction in progress cache value\r\n */\r\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n /**\r\n * Invalid grant error code\r\n */\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n /**\r\n * Default popup window width\r\n */\r\n POPUP_WIDTH: 483,\r\n /**\r\n * Default popup window height\r\n */\r\n POPUP_HEIGHT: 600,\r\n /**\r\n * Name of the popup window starts with\r\n */\r\n POPUP_NAME_PREFIX: \"msal\",\r\n /**\r\n * Default popup monitor poll interval in milliseconds\r\n */\r\n POLL_INTERVAL_MS: 50,\r\n /**\r\n * Msal-browser SKU\r\n */\r\n MSAL_SKU: \"msal.js.browser\",\r\n};\r\nvar BrowserCacheLocation;\r\n(function (BrowserCacheLocation) {\r\n BrowserCacheLocation[\"LocalStorage\"] = \"localStorage\";\r\n BrowserCacheLocation[\"SessionStorage\"] = \"sessionStorage\";\r\n BrowserCacheLocation[\"MemoryStorage\"] = \"memoryStorage\";\r\n})(BrowserCacheLocation || (BrowserCacheLocation = {}));\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nvar HTTP_REQUEST_TYPE;\r\n(function (HTTP_REQUEST_TYPE) {\r\n HTTP_REQUEST_TYPE[\"GET\"] = \"GET\";\r\n HTTP_REQUEST_TYPE[\"POST\"] = \"POST\";\r\n})(HTTP_REQUEST_TYPE || (HTTP_REQUEST_TYPE = {}));\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nvar TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireToken.account\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"REQUEST_STATE\"] = \"request.state\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.id_token\";\r\n TemporaryCacheKeys[\"ORIGIN_URI\"] = \"request.origin\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"REQUEST_PARAMS\"] = \"request.params\";\r\n TemporaryCacheKeys[\"SCOPES\"] = \"scopes\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS_KEY\"] = \"interaction.status\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nvar ApiId;\r\n(function (ApiId) {\r\n ApiId[ApiId[\"acquireTokenRedirect\"] = 861] = \"acquireTokenRedirect\";\r\n ApiId[ApiId[\"acquireTokenPopup\"] = 862] = \"acquireTokenPopup\";\r\n ApiId[ApiId[\"ssoSilent\"] = 863] = \"ssoSilent\";\r\n ApiId[ApiId[\"acquireTokenSilent_authCode\"] = 864] = \"acquireTokenSilent_authCode\";\r\n ApiId[ApiId[\"handleRedirectPromise\"] = 865] = \"handleRedirectPromise\";\r\n ApiId[ApiId[\"acquireTokenSilent_silentFlow\"] = 61] = \"acquireTokenSilent_silentFlow\";\r\n ApiId[ApiId[\"logout\"] = 961] = \"logout\";\r\n ApiId[ApiId[\"logoutPopup\"] = 962] = \"logoutPopup\";\r\n})(ApiId || (ApiId = {}));\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nvar InteractionType;\r\n(function (InteractionType) {\r\n InteractionType[\"Redirect\"] = \"redirect\";\r\n InteractionType[\"Popup\"] = \"popup\";\r\n InteractionType[\"Silent\"] = \"silent\";\r\n})(InteractionType || (InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nvar InteractionStatus;\r\n(function (InteractionStatus) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n InteractionStatus[\"Startup\"] = \"startup\";\r\n /**\r\n * Status set when all login calls occuring\r\n */\r\n InteractionStatus[\"Login\"] = \"login\";\r\n /**\r\n * Status set when logout call occuring\r\n */\r\n InteractionStatus[\"Logout\"] = \"logout\";\r\n /**\r\n * Status set for acquireToken calls\r\n */\r\n InteractionStatus[\"AcquireToken\"] = \"acquireToken\";\r\n /**\r\n * Status set for ssoSilent calls\r\n */\r\n InteractionStatus[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * Status set when handleRedirect in progress\r\n */\r\n InteractionStatus[\"HandleRedirect\"] = \"handleRedirect\";\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n InteractionStatus[\"None\"] = \"none\";\r\n})(InteractionStatus || (InteractionStatus = {}));\r\nvar DEFAULT_REQUEST = {\r\n scopes: OIDC_DEFAULT_SCOPES\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nvar KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nvar WrapperSKU;\r\n(function (WrapperSKU) {\r\n WrapperSKU[\"React\"] = \"@azure/msal-react\";\r\n WrapperSKU[\"Angular\"] = \"@azure/msal-angular\";\r\n})(WrapperSKU || (WrapperSKU = {}));\n\nexport { ApiId, BrowserCacheLocation, BrowserConstants, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InteractionStatus, InteractionType, KEY_FORMAT_JWK, TemporaryCacheKeys, WrapperSKU };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserProtocolUtils = /** @class */ (function () {\r\n function BrowserProtocolUtils() {\r\n }\r\n /**\r\n * Extracts the BrowserStateObject from the state string.\r\n * @param browserCrypto\r\n * @param state\r\n */\r\n BrowserProtocolUtils.extractBrowserRequestState = function (browserCrypto, state) {\r\n if (StringUtils.isEmpty(state)) {\r\n return null;\r\n }\r\n try {\r\n var requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n return requestStateObj.libraryState.meta;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n /**\r\n * Parses properties of server response from url hash\r\n * @param locationHash Hash from url\r\n */\r\n BrowserProtocolUtils.parseServerResponseFromHash = function (locationHash) {\r\n if (!locationHash) {\r\n return {};\r\n }\r\n var hashUrlString = new UrlString(locationHash);\r\n return UrlString.getDeserializedHash(hashUrlString.getHash());\r\n };\r\n return BrowserProtocolUtils;\r\n}());\n\nexport { BrowserProtocolUtils };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for strings in a browser. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar BrowserStringUtils = /** @class */ (function () {\r\n function BrowserStringUtils() {\r\n }\r\n /**\r\n * Converts string to Uint8Array\r\n * @param sDOMStr\r\n */\r\n BrowserStringUtils.stringToUtf8Arr = function (sDOMStr) {\r\n var nChr;\r\n var nArrLen = 0;\r\n var nStrLen = sDOMStr.length;\r\n /* mapping... */\r\n for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\r\n nChr = sDOMStr.charCodeAt(nMapIdx);\r\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\r\n }\r\n var aBytes = new Uint8Array(nArrLen);\r\n /* transcription... */\r\n for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\r\n nChr = sDOMStr.charCodeAt(nChrIdx);\r\n if (nChr < 128) {\r\n /* one byte */\r\n aBytes[nIdx++] = nChr;\r\n }\r\n else if (nChr < 0x800) {\r\n /* two bytes */\r\n aBytes[nIdx++] = 192 + (nChr >>> 6);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x10000) {\r\n /* three bytes */\r\n aBytes[nIdx++] = 224 + (nChr >>> 12);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x200000) {\r\n /* four bytes */\r\n aBytes[nIdx++] = 240 + (nChr >>> 18);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x4000000) {\r\n /* five bytes */\r\n aBytes[nIdx++] = 248 + (nChr >>> 24);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else /* if (nChr <= 0x7fffffff) */ {\r\n /* six bytes */\r\n aBytes[nIdx++] = 252 + (nChr >>> 30);\r\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Converst string to ArrayBuffer\r\n * @param dataString\r\n */\r\n BrowserStringUtils.stringToArrayBuffer = function (dataString) {\r\n var data = new ArrayBuffer(dataString.length);\r\n var dataView = new Uint8Array(data);\r\n for (var i = 0; i < dataString.length; i++) {\r\n dataView[i] = dataString.charCodeAt(i);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Converts Uint8Array to a string\r\n * @param aBytes\r\n */\r\n BrowserStringUtils.utf8ArrToString = function (aBytes) {\r\n var sView = \"\";\r\n for (var nPart = void 0, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nPart = aBytes[nIdx];\r\n sView += String.fromCharCode(nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\r\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\r\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\r\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\r\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\r\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\r\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\r\n : /* nPart < 127 ? */ /* one byte */\r\n nPart);\r\n }\r\n return sView;\r\n };\r\n return BrowserStringUtils;\r\n}());\n\nexport { BrowserStringUtils };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { Constants, UrlString } from '@azure/msal-common';\nimport { FetchClient } from '../network/FetchClient.js';\nimport { XhrClient } from '../network/XhrClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType, BrowserConstants } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for browser specific functions\r\n */\r\nvar BrowserUtils = /** @class */ (function () {\r\n function BrowserUtils() {\r\n }\r\n // #region Window Navigation and URL management\r\n /**\r\n * Clears hash from window url.\r\n */\r\n BrowserUtils.clearHash = function (contentWindow) {\r\n // Office.js sets history.replaceState to null\r\n contentWindow.location.hash = Constants.EMPTY_STRING;\r\n if (typeof contentWindow.history.replaceState === \"function\") {\r\n // Full removes \"#\" from url\r\n contentWindow.history.replaceState(null, Constants.EMPTY_STRING, \"\" + contentWindow.location.pathname + contentWindow.location.search);\r\n }\r\n };\r\n /**\r\n * Replaces current hash with hash from provided url\r\n */\r\n BrowserUtils.replaceHash = function (url) {\r\n var urlParts = url.split(\"#\");\r\n urlParts.shift(); // Remove part before the hash\r\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : \"\";\r\n };\r\n /**\r\n * Returns boolean of whether the current window is in an iframe or not.\r\n */\r\n BrowserUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n // #endregion\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n BrowserUtils.getCurrentUri = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Gets the homepage url for the current window location.\r\n */\r\n BrowserUtils.getHomepage = function () {\r\n var currentUrl = new UrlString(window.location.href);\r\n var urlComponents = currentUrl.getUrlComponents();\r\n return urlComponents.Protocol + \"//\" + urlComponents.HostNameAndPort + \"/\";\r\n };\r\n /**\r\n * Returns best compatible network client object.\r\n */\r\n BrowserUtils.getBrowserNetworkClient = function () {\r\n if (window.fetch && window.Headers) {\r\n return new FetchClient();\r\n }\r\n else {\r\n return new XhrClient();\r\n }\r\n };\r\n /**\r\n * Throws error if we have completed an auth and are\r\n * attempting another auth request inside an iframe.\r\n */\r\n BrowserUtils.blockReloadInHiddenIframes = function () {\r\n var isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (isResponseHash && BrowserUtils.isInIframe()) {\r\n throw BrowserAuthError.createBlockReloadInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n * Block redirect operations in iframes unless explicitly allowed\r\n * @param interactionType Interaction type for the request\r\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n */\r\n BrowserUtils.blockRedirectInIframe = function (interactionType, allowRedirectInIframe) {\r\n var isIframedApp = BrowserUtils.isInIframe();\r\n if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\r\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\r\n }\r\n };\r\n /**\r\n * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n */\r\n BrowserUtils.blockAcquireTokenInPopups = function () {\r\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n if (window.opener && window.opener !== window && typeof window.name === \"string\" && window.name.indexOf(BrowserConstants.POPUP_NAME_PREFIX + \".\") === 0) {\r\n throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\r\n }\r\n };\r\n /**\r\n * Throws error if token requests are made in non-browser environment\r\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n */\r\n BrowserUtils.blockNonBrowserEnvironment = function (isBrowserEnvironment) {\r\n if (!isBrowserEnvironment) {\r\n throw BrowserAuthError.createNonBrowserEnvironmentError();\r\n }\r\n };\r\n /**\r\n * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\r\n */\r\n BrowserUtils.detectIEOrEdge = function () {\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n var msie11 = ua.indexOf(\"Trident/\");\r\n var msedge = ua.indexOf(\"Edge/\");\r\n var isIE = msie > 0 || msie11 > 0;\r\n var isEdge = msedge > 0;\r\n return isIE || isEdge;\r\n };\r\n return BrowserUtils;\r\n}());\n\nexport { BrowserUtils };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for math specific functions in browser.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n function MathUtils() {\r\n }\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n MathUtils.decimalToHex = function (num) {\r\n var hex = num.toString(16);\r\n while (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n };\r\n return MathUtils;\r\n}());\n\nexport { MathUtils };\n","/*! @azure/msal-browser v2.14.2 2021-05-12 */\n'use strict';\nimport { StringUtils, Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, BrowserConstants, InteractionType } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupUtils = /** @class */ (function () {\r\n function PopupUtils(storageImpl, logger) {\r\n this.browserStorage = storageImpl;\r\n this.logger = logger;\r\n // Properly sets this reference for the unload event.\r\n this.unloadWindow = this.unloadWindow.bind(this);\r\n }\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @ignore\r\n * @hidden\r\n */\r\n PopupUtils.prototype.openPopup = function (urlNavigate, popupName, popup) {\r\n try {\r\n var popupWindow = void 0;\r\n // Popup window passed in, setting url to navigate to\r\n if (popup) {\r\n popupWindow = popup;\r\n this.logger.verbosePii(\"Navigating popup window to: \" + urlNavigate);\r\n popupWindow.location.assign(urlNavigate);\r\n }\r\n else if (typeof popup === \"undefined\") {\r\n // Popup will be undefined if it was not passed in\r\n this.logger.verbosePii(\"Opening popup window to: \" + urlNavigate);\r\n popupWindow = PopupUtils.openSizedPopup(urlNavigate, popupName);\r\n }\r\n // Popup will be null if popups are blocked\r\n if (!popupWindow) {\r\n throw BrowserAuthError.createEmptyWindowCreatedError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n this.currentWindow = popupWindow;\r\n window.addEventListener(\"beforeunload\", this.unloadWindow);\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.logger.error(\"error opening popup \" + e.message);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n throw BrowserAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n PopupUtils.openSizedPopup = function (urlNavigate, popupName) {\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var left = Math.max(0, ((width / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\r\n var top = Math.max(0, ((height / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\r\n return window.open(urlNavigate, popupName, \"width=\" + BrowserConstants.POPUP_WIDTH + \", height=\" + BrowserConstants.POPUP_HEIGHT + \", top=\" + top + \", left=\" + left + \", scrollbars=yes\");\r\n };\r\n /**\r\n * Event callback to unload main window.\r\n */\r\n PopupUtils.prototype.unloadWindow = function (e) {\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\r\n if (this.currentWindow) {\r\n this.currentWindow.close();\r\n }\r\n // Guarantees browser unload will happen, so no other errors will be thrown.\r\n e.preventDefault();\r\n };\r\n /**\r\n * Closes popup, removes any state vars created during popup calls.\r\n * @param popupWindow\r\n */\r\n PopupUtils.prototype.cleanPopup = function (popupWindow) {\r\n if (popupWindow) {\r\n // Close window.\r\n popupWindow.close();\r\n }\r\n // Remove window unload function\r\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.INTERACTION_STATUS_KEY));\r\n };\r\n /**\r\n * Monitors a window until it loads a url with the same origin.\r\n * @param popupWindow - window that is being monitored\r\n */\r\n PopupUtils.prototype.monitorPopupForSameOrigin = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var intervalId = setInterval(function () {\r\n if (popupWindow.closed) {\r\n // Window is closed\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n clearInterval(intervalId);\r\n resolve();\r\n }, BrowserConstants.POLL_INTERVAL_MS);\r\n });\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupUtils.generatePopupName = function (clientId, request) {\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + clientId + \".\" + request.scopes.join(\"-\") + \".\" + request.authority + \".\" + request.correlationId;\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request for logouts\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupUtils.generateLogoutPopupName = function (clientId, request) {\r\n var homeAccountId = request.account && request.account.homeAccountId;\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + clientId + \".\" + homeAccountId + \".\" + request.correlationId;\r\n };\r\n return PopupUtils;\r\n}());\n\nexport { PopupUtils };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __spreadArrays };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nvar AuthToken = /** @class */ (function () {\r\n function AuthToken(rawToken, crypto) {\r\n if (StringUtils.isEmpty(rawToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n }\r\n this.rawToken = rawToken;\r\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n }\r\n /**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\n AuthToken.extractTokenClaims = function (encodedToken, crypto) {\r\n var decodedToken = StringUtils.decodeAuthToken(encodedToken);\r\n // token will be decoded to get the username\r\n try {\r\n var base64TokenPayload = decodedToken.JWSPayload;\r\n // base64Decode() should throw an error if there is an issue\r\n var base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n throw ClientAuthError.createTokenParsingError(err);\r\n }\r\n };\r\n return AuthToken;\r\n}());\n\nexport { AuthToken };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CcsCredentialType;\r\n(function (CcsCredentialType) {\r\n CcsCredentialType[\"HOME_ACCOUNT_ID\"] = \"home_account_id\";\r\n CcsCredentialType[\"UPN\"] = \"UPN\";\r\n})(CcsCredentialType || (CcsCredentialType = {}));\n\nexport { CcsCredentialType };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants, Separators } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, crypto) {\r\n if (StringUtils.isEmpty(rawClientInfo)) {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n try {\r\n var decodedClientInfo = crypto.base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo);\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e);\r\n }\r\n}\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId\r\n */\r\nfunction buildClientInfoFromHomeAccountId(homeAccountId) {\r\n if (StringUtils.isEmpty(homeAccountId)) {\r\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\r\n }\r\n var clientInfoParts = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n return {\r\n uid: clientInfoParts[0],\r\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\r\n };\r\n}\n\nexport { buildClientInfo, buildClientInfoFromHomeAccountId };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthorityType } from './AuthorityType.js';\nimport { isOpenIdConfigResponse } from './OpenIdConfigResponse.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ProtocolMode } from './ProtocolMode.js';\nimport { AuthorityMetadataEntity } from '../cache/entities/AuthorityMetadataEntity.js';\nimport { isCloudInstanceDiscoveryResponse } from './CloudInstanceDiscoveryResponse.js';\nimport { RegionDiscovery } from './RegionDiscovery.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, networkInterface, cacheManager, authorityOptions) {\r\n this.canonicalAuthority = authority;\r\n this._canonicalAuthority.validateAsUri();\r\n this.networkInterface = networkInterface;\r\n this.cacheManager = cacheManager;\r\n this.authorityOptions = authorityOptions;\r\n this.regionDiscovery = new RegionDiscovery(networkInterface);\r\n this.regionDiscoveryMetadata = { region_used: undefined, region_source: undefined, region_outcome: undefined };\r\n }\r\n Object.defineProperty(Authority.prototype, \"authorityType\", {\r\n // See above for AuthorityType\r\n get: function () {\r\n var pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;\r\n if (pathSegments.length && pathSegments[0].toLowerCase() === Constants.ADFS) {\r\n return AuthorityType.Adfs;\r\n }\r\n return AuthorityType.Default;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"protocolMode\", {\r\n /**\r\n * ProtocolMode enum representing the way endpoints are constructed.\r\n */\r\n get: function () {\r\n return this.authorityOptions.protocolMode;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"options\", {\r\n /**\r\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n */\r\n get: function () {\r\n return this.authorityOptions;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthority\", {\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get: function () {\r\n return this._canonicalAuthority.urlString;\r\n },\r\n /**\r\n * Sets canonical authority.\r\n */\r\n set: function (url) {\r\n this._canonicalAuthority = new UrlString(url);\r\n this._canonicalAuthority.validateAsUri();\r\n this._canonicalAuthorityUrlComponents = null;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthorityUrlComponents\", {\r\n /**\r\n * Get authority components.\r\n */\r\n get: function () {\r\n if (!this._canonicalAuthorityUrlComponents) {\r\n this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\r\n }\r\n return this._canonicalAuthorityUrlComponents;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"hostnameAndPort\", {\r\n /**\r\n * Get hostname and port i.e. login.microsoftonline.com\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tenant\", {\r\n /**\r\n * Get tenant for authority.\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.PathSegments[0];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"authorizationEndpoint\", {\r\n /**\r\n * OAuth /authorize endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.authorization_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tokenEndpoint\", {\r\n /**\r\n * OAuth /token endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"deviceCodeEndpoint\", {\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"endSessionEndpoint\", {\r\n /**\r\n * OAuth logout endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.end_session_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"selfSignedJwtAudience\", {\r\n /**\r\n * OAuth issuer for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.issuer);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Replaces tenant in url path with current tenant. Defaults to common.\r\n * @param urlString\r\n */\r\n Authority.prototype.replaceTenant = function (urlString) {\r\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n };\r\n /**\r\n * Replaces path such as tenant or policy with the current tenant or policy.\r\n * @param urlString\r\n */\r\n Authority.prototype.replacePath = function (urlString) {\r\n var endpoint = urlString;\r\n var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n var cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n currentAuthorityParts.forEach(function (currentPart, index) {\r\n var cachedPart = cachedAuthorityParts[index];\r\n if (currentPart !== cachedPart) {\r\n endpoint = endpoint.replace(\"/\" + cachedPart + \"/\", \"/\" + currentPart + \"/\");\r\n }\r\n });\r\n return endpoint;\r\n };\r\n Object.defineProperty(Authority.prototype, \"defaultOpenIdConfigurationEndpoint\", {\r\n /**\r\n * The default open id configuration endpoint for any canonical authority.\r\n */\r\n get: function () {\r\n if (this.authorityType === AuthorityType.Adfs || this.protocolMode === ProtocolMode.OIDC) {\r\n return this.canonicalAuthority + \".well-known/openid-configuration\";\r\n }\r\n return this.canonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Boolean that returns whethr or not tenant discovery has been completed.\r\n */\r\n Authority.prototype.discoveryComplete = function () {\r\n return !!this.metadata;\r\n };\r\n /**\r\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n * and the /authorize, /token and logout endpoints.\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadataEntity, cloudDiscoverySource, endpointSource, cacheKey;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n if (!metadataEntity) {\r\n metadataEntity = new AuthorityMetadataEntity();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n return [4 /*yield*/, this.updateCloudDiscoveryMetadata(metadataEntity)];\r\n case 1:\r\n cloudDiscoverySource = _a.sent();\r\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n return [4 /*yield*/, this.updateEndpointMetadata(metadataEntity)];\r\n case 2:\r\n endpointSource = _a.sent();\r\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\r\n // Reset the expiration time unless both values came from a successful cache lookup\r\n metadataEntity.resetExpiresAt();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n this.metadata = metadataEntity;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.updateEndpointMetadata = function (metadataEntity) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, autodetectedRegionName, azureRegion;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n metadata = this.getEndpointMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateEndpointMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n return [4 /*yield*/, this.getEndpointMetadataFromNetwork()];\r\n case 1:\r\n metadata = _b.sent();\r\n if (!metadata) return [3 /*break*/, 4];\r\n if (!((_a = this.authorityOptions.azureRegionConfiguration) === null || _a === void 0 ? void 0 : _a.azureRegion)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, this.regionDiscovery.detectRegion(this.authorityOptions.azureRegionConfiguration.environmentRegion, this.regionDiscoveryMetadata)];\r\n case 2:\r\n autodetectedRegionName = _b.sent();\r\n azureRegion = this.authorityOptions.azureRegionConfiguration.azureRegion === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG\r\n ? autodetectedRegionName\r\n : this.authorityOptions.azureRegionConfiguration.azureRegion;\r\n if (this.authorityOptions.azureRegionConfiguration.azureRegion === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\r\n this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\r\n }\r\n else {\r\n if (autodetectedRegionName) {\r\n this.regionDiscoveryMetadata.region_outcome = (this.authorityOptions.azureRegionConfiguration.azureRegion === autodetectedRegionName) ?\r\n RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :\r\n RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;\r\n }\r\n else {\r\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\r\n }\r\n }\r\n if (azureRegion) {\r\n this.regionDiscoveryMetadata.region_used = azureRegion;\r\n metadata = Authority.replaceWithRegionalInformation(metadata, azureRegion);\r\n }\r\n _b.label = 3;\r\n case 3:\r\n metadataEntity.updateEndpointMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n case 4: throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Compares the number of url components after the domain to determine if the cached authority metadata can be used for the requested authority\r\n * Protects against same domain different authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.isAuthoritySameType = function (metadataEntity) {\r\n var cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n var cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\r\n };\r\n /**\r\n * Parse authorityMetadata config option\r\n */\r\n Authority.prototype.getEndpointMetadataFromConfig = function () {\r\n if (this.authorityOptions.authorityMetadata) {\r\n try {\r\n return JSON.parse(this.authorityOptions.authorityMetadata);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n */\r\n Authority.prototype.getEndpointMetadataFromNetwork = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(this.defaultOpenIdConfigurationEndpoint)];\r\n case 1:\r\n response = _a.sent();\r\n return [2 /*return*/, isOpenIdConfigResponse(response.body) ? response.body : null];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, null];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache and returns where the information was retrived from\r\n * @param cachedMetadata\r\n * @param newMetadata\r\n */\r\n Authority.prototype.updateCloudDiscoveryMetadata = function (metadataEntity) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n // If The cached metadata came from config but that config was not passed to this instance, we must go to the network\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n return [4 /*yield*/, this.getCloudDiscoveryMetadataFromNetwork()];\r\n case 1:\r\n metadata = _a.sent();\r\n if (metadata) {\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n }\r\n else {\r\n // Metadata could not be obtained from config, cache or network\r\n throw ClientConfigurationError.createUntrustedAuthorityError();\r\n }\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromConfig = function () {\r\n // Check if network response was provided in config\r\n if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n try {\r\n var parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n var metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n if (metadata) {\r\n return metadata;\r\n }\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\r\n }\r\n }\r\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n if (this.isInKnownAuthorities()) {\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n * @param networkInterface\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromNetwork = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var instanceDiscoveryEndpoint, match, response, metadata;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n instanceDiscoveryEndpoint = \"\" + Constants.AAD_INSTANCE_DISCOVERY_ENDPT + this.canonicalAuthority + \"oauth2/v2.0/authorize\";\r\n match = null;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint)];\r\n case 2:\r\n response = _a.sent();\r\n metadata = isCloudInstanceDiscoveryResponse(response.body) ? response.body.metadata : [];\r\n if (metadata.length === 0) {\r\n // If no metadata is returned, authority is untrusted\r\n return [2 /*return*/, null];\r\n }\r\n match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/, null];\r\n case 4:\r\n if (!match) {\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded \r\n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return [2 /*return*/, match];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to determine if this host is included in the knownAuthorities config option\r\n */\r\n Authority.prototype.isInKnownAuthorities = function () {\r\n var _this = this;\r\n var matches = this.authorityOptions.knownAuthorities.filter(function (authority) {\r\n return UrlString.getDomainFromUrl(authority).toLowerCase() === _this.hostnameAndPort;\r\n });\r\n return matches.length > 0;\r\n };\r\n /**\r\n * Creates cloud discovery metadata object from a given host\r\n * @param host\r\n */\r\n Authority.createCloudDiscoveryMetadataFromHost = function (host) {\r\n return {\r\n preferred_network: host,\r\n preferred_cache: host,\r\n aliases: [host]\r\n };\r\n };\r\n /**\r\n * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n * @param response\r\n * @param authority\r\n */\r\n Authority.getCloudDiscoveryMetadataFromNetworkResponse = function (response, authority) {\r\n for (var i = 0; i < response.length; i++) {\r\n var metadata = response[i];\r\n if (metadata.aliases.indexOf(authority) > -1) {\r\n return metadata;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * helper function to generate environment from authority object\r\n */\r\n Authority.prototype.getPreferredCache = function () {\r\n if (this.discoveryComplete()) {\r\n return this.metadata.preferred_cache;\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n };\r\n /**\r\n * Returns whether or not the provided host is an alias of this authority instance\r\n * @param host\r\n */\r\n Authority.prototype.isAlias = function (host) {\r\n return this.metadata.aliases.indexOf(host) > -1;\r\n };\r\n /**\r\n * Checks whether the provided host is that of a public cloud authority\r\n *\r\n * @param authority string\r\n * @returns bool\r\n */\r\n Authority.isPublicCloudAuthority = function (host) {\r\n return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\r\n };\r\n /**\r\n * Rebuild the authority string with the region\r\n *\r\n * @param host string\r\n * @param region string\r\n */\r\n Authority.buildRegionalAuthorityString = function (host, region, queryString) {\r\n // Create and validate a Url string object with the initial authority string\r\n var authorityUrlInstance = new UrlString(host);\r\n authorityUrlInstance.validateAsUri();\r\n var authorityUrlParts = authorityUrlInstance.getUrlComponents();\r\n var hostNameAndPort = region + \".\" + authorityUrlParts.HostNameAndPort;\r\n if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\r\n hostNameAndPort = region + \".\" + Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX;\r\n }\r\n // Include the query string portion of the url\r\n var url = UrlString.constructAuthorityUriFromObject(__assign(__assign({}, authorityUrlInstance.getUrlComponents()), { HostNameAndPort: hostNameAndPort })).urlString;\r\n // Add the query string if a query string was provided\r\n if (queryString)\r\n return url + \"?\" + queryString;\r\n return url;\r\n };\r\n /**\r\n * Replace the endpoints in the metadata object with their regional equivalents.\r\n *\r\n * @param metadata OpenIdConfigResponse\r\n * @param azureRegion string\r\n */\r\n Authority.replaceWithRegionalInformation = function (metadata, azureRegion) {\r\n metadata.authorization_endpoint = Authority.buildRegionalAuthorityString(metadata.authorization_endpoint, azureRegion);\r\n // TODO: Enquire on whether we should leave the query string or remove it before releasing the feature\r\n metadata.token_endpoint = Authority.buildRegionalAuthorityString(metadata.token_endpoint, azureRegion, \"allowestsrnonmsi=true\");\r\n metadata.end_session_endpoint = Authority.buildRegionalAuthorityString(metadata.end_session_endpoint, azureRegion);\r\n return metadata;\r\n };\r\n return Authority;\r\n}());\n\nexport { Authority };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Authority } from './Authority.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\r\n }\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Also performs endpoint discovery.\r\n *\r\n * @param authorityUri\r\n * @param networkClient\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createDiscoveredInstance = function (authorityUri, networkClient, cacheManager, authorityOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenAuthority, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n acquireTokenAuthority = AuthorityFactory.createInstance(authorityUri, networkClient, cacheManager, authorityOptions);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, acquireTokenAuthority.resolveEndpointsAsync()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, acquireTokenAuthority];\r\n case 3:\r\n e_1 = _a.sent();\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(e_1);\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Does not perform endpoint discovery.\r\n *\r\n * @param authorityUrl\r\n * @param networkInterface\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createInstance = function (authorityUrl, networkInterface, cacheManager, authorityOptions) {\r\n // Throw error if authority url is empty\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions);\r\n };\r\n return AuthorityFactory;\r\n}());\n\nexport { AuthorityFactory };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nvar AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n})(AuthorityType || (AuthorityType = {}));\n\nexport { AuthorityType };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n response.hasOwnProperty(\"metadata\"));\r\n}\n\nexport { isCloudInstanceDiscoveryResponse };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n response.hasOwnProperty(\"token_endpoint\") &&\r\n response.hasOwnProperty(\"end_session_endpoint\") &&\r\n response.hasOwnProperty(\"issuer\"));\r\n}\n\nexport { isOpenIdConfigResponse };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nvar ProtocolMode;\r\n(function (ProtocolMode) {\r\n ProtocolMode[\"AAD\"] = \"AAD\";\r\n ProtocolMode[\"OIDC\"] = \"OIDC\";\r\n})(ProtocolMode || (ProtocolMode = {}));\n\nexport { ProtocolMode };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RegionDiscovery = /** @class */ (function () {\r\n function RegionDiscovery(networkInterface) {\r\n this.networkInterface = networkInterface;\r\n }\r\n /**\r\n * Detect the region from the application's environment.\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n autodetectedRegionName = environmentRegion;\r\n if (!!autodetectedRegionName) return [3 /*break*/, 8];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 6, , 7]);\r\n return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION)];\r\n case 2:\r\n localIMDSVersionResponse = _a.sent();\r\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = localIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];\r\n return [4 /*yield*/, this.getCurrentVersion()];\r\n case 3:\r\n currentIMDSVersion = _a.sent();\r\n if (!currentIMDSVersion) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n }\r\n return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion)];\r\n case 4:\r\n currentIMDSVersionResponse = _a.sent();\r\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = currentIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n _a.label = 5;\r\n case 5: return [3 /*break*/, 7];\r\n case 6:\r\n _a.sent();\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\r\n _a.label = 9;\r\n case 9:\r\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\r\n if (!autodetectedRegionName) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n }\r\n return [2 /*return*/, autodetectedRegionName || null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Make the call to the IMDS endpoint\r\n *\r\n * @param imdsEndpointUrl\r\n * @returns Promise>\r\n */\r\n RegionDiscovery.prototype.getRegionFromIMDS = function (version) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?api-version=\" + version + \"&format=text\", RegionDiscovery.IMDS_OPTIONS, Constants.IMDS_TIMEOUT)];\r\n });\r\n });\r\n };\r\n /**\r\n * Get the most recent version of the IMDS endpoint available\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.getCurrentVersion = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?format=json\", RegionDiscovery.IMDS_OPTIONS)];\r\n case 1:\r\n response = _a.sent();\r\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\r\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\r\n return [2 /*return*/, response.body[\"newest-versions\"][0]];\r\n }\r\n return [2 /*return*/, null];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, null];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // Options for the IMDS endpoint request\r\n RegionDiscovery.IMDS_OPTIONS = { headers: { \"Metadata\": \"true\" } };\r\n return RegionDiscovery;\r\n}());\n\nexport { RegionDiscovery };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants, CredentialType, CacheSchemaType, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme } from '../utils/Constants.js';\nimport { CredentialEntity } from './entities/CredentialEntity.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from './entities/AccountEntity.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthToken } from '../account/AuthToken.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n */\r\nvar CacheManager = /** @class */ (function () {\r\n function CacheManager(clientId, cryptoImpl) {\r\n this.clientId = clientId;\r\n this.cryptoImpl = cryptoImpl;\r\n }\r\n /**\r\n * Returns all accounts in cache\r\n */\r\n CacheManager.prototype.getAllAccounts = function () {\r\n var _this = this;\r\n var currentAccounts = this.getAccountsFilteredBy();\r\n var accountValues = Object.keys(currentAccounts).map(function (accountKey) { return currentAccounts[accountKey]; });\r\n var numAccounts = accountValues.length;\r\n if (numAccounts < 1) {\r\n return [];\r\n }\r\n else {\r\n var allAccounts = accountValues.map(function (value) {\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), value);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n var idToken = _this.readIdTokenFromCache(_this.clientId, accountInfo);\r\n if (idToken && !accountInfo.idTokenClaims) {\r\n accountInfo.idTokenClaims = new AuthToken(idToken.secret, _this.cryptoImpl).claims;\r\n }\r\n return accountInfo;\r\n });\r\n return allAccounts;\r\n }\r\n };\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord\r\n */\r\n CacheManager.prototype.saveCacheRecord = function (cacheRecord) {\r\n if (!cacheRecord) {\r\n throw ClientAuthError.createNullOrUndefinedCacheRecord();\r\n }\r\n if (!!cacheRecord.account) {\r\n this.setAccount(cacheRecord.account);\r\n }\r\n if (!!cacheRecord.idToken) {\r\n this.setIdTokenCredential(cacheRecord.idToken);\r\n }\r\n if (!!cacheRecord.accessToken) {\r\n this.saveAccessToken(cacheRecord.accessToken);\r\n }\r\n if (!!cacheRecord.refreshToken) {\r\n this.setRefreshTokenCredential(cacheRecord.refreshToken);\r\n }\r\n if (!!cacheRecord.appMetadata) {\r\n this.setAppMetadata(cacheRecord.appMetadata);\r\n }\r\n };\r\n /**\r\n * saves access token credential\r\n * @param credential\r\n */\r\n CacheManager.prototype.saveAccessToken = function (credential) {\r\n var _this = this;\r\n var currentTokenCache = this.getCredentialsFilteredBy({\r\n clientId: credential.clientId,\r\n credentialType: credential.credentialType,\r\n environment: credential.environment,\r\n homeAccountId: credential.homeAccountId,\r\n realm: credential.realm,\r\n });\r\n var currentScopes = ScopeSet.fromString(credential.target);\r\n var currentAccessTokens = Object.keys(currentTokenCache.accessTokens).map(function (key) { return currentTokenCache.accessTokens[key]; });\r\n if (currentAccessTokens) {\r\n currentAccessTokens.forEach(function (tokenEntity) {\r\n var tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n _this.removeCredential(tokenEntity);\r\n }\r\n });\r\n }\r\n this.setAccessTokenCredential(credential);\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {\r\n return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId : \"\", accountFilter ? accountFilter.environment : \"\", accountFilter ? accountFilter.realm : \"\");\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredByInternal = function (homeAccountId, environment, realm) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAccounts = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!realm && !_this.matchRealm(entity, realm)) {\r\n return;\r\n }\r\n matchingAccounts[cacheKey] = entity;\r\n });\r\n return matchingAccounts;\r\n };\r\n /**\r\n * retrieve credentails matching all provided filters; if no filter is set, get all credentials\r\n * @param homeAccountId\r\n * @param environment\r\n * @param credentialType\r\n * @param clientId\r\n * @param realm\r\n * @param target\r\n */\r\n CacheManager.prototype.getCredentialsFilteredBy = function (filter) {\r\n return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.oboAssertion);\r\n };\r\n /**\r\n * Support function to help match credentials\r\n * @param homeAccountId\r\n * @param environment\r\n * @param credentialType\r\n * @param clientId\r\n * @param realm\r\n * @param target\r\n */\r\n CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, oboAssertion) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingCredentials = {\r\n idTokens: {},\r\n accessTokens: {},\r\n refreshTokens: {},\r\n };\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-credential type cache entities\r\n var credType = CredentialEntity.getCredentialType(cacheKey);\r\n if (credType === Constants.NOT_DEFINED) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getSpecificCredential(cacheKey, credType);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!oboAssertion && !_this.matchOboAssertion(entity, oboAssertion)) {\r\n return;\r\n }\r\n if (!!homeAccountId && !_this.matchHomeAccountId(entity, homeAccountId)) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!realm && !_this.matchRealm(entity, realm)) {\r\n return;\r\n }\r\n if (!!credentialType && !_this.matchCredentialType(entity, credentialType)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n if (!!familyId && !_this.matchFamilyId(entity, familyId)) {\r\n return;\r\n }\r\n /*\r\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n */\r\n if (!!target && !_this.matchTarget(entity, target)) {\r\n return;\r\n }\r\n switch (credType) {\r\n case CredentialType.ID_TOKEN:\r\n matchingCredentials.idTokens[cacheKey] = entity;\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n matchingCredentials.accessTokens[cacheKey] = entity;\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n matchingCredentials.refreshTokens[cacheKey] = entity;\r\n break;\r\n }\r\n });\r\n return matchingCredentials;\r\n };\r\n /**\r\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredBy = function (filter) {\r\n return this.getAppMetadataFilteredByInternal(filter.environment, filter.clientId);\r\n };\r\n /**\r\n * Support function to help match appMetadata\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredByInternal = function (environment, clientId) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAppMetadata = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-appMetadata type cache entities\r\n if (!_this.isAppMetadata(cacheKey)) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAppMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n matchingAppMetadata[cacheKey] = entity;\r\n });\r\n return matchingAppMetadata;\r\n };\r\n /**\r\n * retrieve authorityMetadata that contains a matching alias\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAuthorityMetadataByAlias = function (host) {\r\n var _this = this;\r\n var allCacheKeys = this.getAuthorityMetadataKeys();\r\n var matchedEntity = null;\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-authorityMetadata type cache entities\r\n if (!_this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(_this.clientId) === -1) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAuthorityMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (entity.aliases.indexOf(host) === -1) {\r\n return;\r\n }\r\n matchedEntity = entity;\r\n });\r\n return matchedEntity;\r\n };\r\n /**\r\n * Removes all accounts and related tokens from cache.\r\n */\r\n CacheManager.prototype.removeAllAccounts = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n _this.removeAccount(cacheKey);\r\n });\r\n return true;\r\n };\r\n /**\r\n * returns a boolean if the given account is removed\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccount = function (accountKey) {\r\n var account = this.getAccount(accountKey);\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n return (this.removeAccountContext(account) && this.removeItem(accountKey, CacheSchemaType.ACCOUNT));\r\n };\r\n /**\r\n * returns a boolean if the given account is removed\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccountContext = function (account) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var accountId = account.generateAccountId();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-credential type cache entities\r\n var credType = CredentialEntity.getCredentialType(cacheKey);\r\n if (credType === Constants.NOT_DEFINED) {\r\n return;\r\n }\r\n var cacheEntity = _this.getSpecificCredential(cacheKey, credType);\r\n if (!!cacheEntity && accountId === cacheEntity.generateAccountId()) {\r\n _this.removeCredential(cacheEntity);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * returns a boolean if the given credential is removed\r\n * @param credential\r\n */\r\n CacheManager.prototype.removeCredential = function (credential) {\r\n var key = credential.generateCredentialKey();\r\n return this.removeItem(key, CacheSchemaType.CREDENTIAL);\r\n };\r\n /**\r\n * Removes all app metadata objects from cache.\r\n */\r\n CacheManager.prototype.removeAppMetadata = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n if (_this.isAppMetadata(cacheKey)) {\r\n _this.removeItem(cacheKey, CacheSchemaType.APP_METADATA);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * Retrieve the cached credentials into a cacherecord\r\n * @param account\r\n * @param clientId\r\n * @param scopes\r\n * @param environment\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readCacheRecord = function (account, clientId, scopes, environment, authScheme) {\r\n var cachedAccount = this.readAccountFromCache(account);\r\n var cachedIdToken = this.readIdTokenFromCache(clientId, account);\r\n var cachedAccessToken = this.readAccessTokenFromCache(clientId, account, scopes, authScheme);\r\n var cachedRefreshToken = this.readRefreshTokenFromCache(clientId, account, false);\r\n var cachedAppMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n if (cachedAccount && cachedIdToken) {\r\n cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\r\n }\r\n return {\r\n account: cachedAccount,\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n refreshToken: cachedRefreshToken,\r\n appMetadata: cachedAppMetadata,\r\n };\r\n };\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param account\r\n */\r\n CacheManager.prototype.readAccountFromCache = function (account) {\r\n var accountKey = AccountEntity.generateAccountCacheKey(account);\r\n return this.getAccount(accountKey);\r\n };\r\n /**\r\n * Retrieve IdTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param inputRealm\r\n */\r\n CacheManager.prototype.readIdTokenFromCache = function (clientId, account) {\r\n var idTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: clientId,\r\n realm: account.tenantId,\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(idTokenFilter);\r\n var idTokens = Object.keys(credentialCache.idTokens).map(function (key) { return credentialCache.idTokens[key]; });\r\n var numIdTokens = idTokens.length;\r\n if (numIdTokens < 1) {\r\n return null;\r\n }\r\n else if (numIdTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return idTokens[0];\r\n };\r\n /**\r\n * Retrieve AccessTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param scopes\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readAccessTokenFromCache = function (clientId, account, scopes, authScheme) {\r\n var credentialType = (authScheme === AuthenticationScheme.POP) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\r\n var accessTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: credentialType,\r\n clientId: clientId,\r\n realm: account.tenantId,\r\n target: scopes.printScopesLowerCase(),\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(accessTokenFilter);\r\n var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });\r\n var numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n return accessTokens[0];\r\n };\r\n /**\r\n * Helper to retrieve the appropriate refresh token from cache\r\n * @param clientId\r\n * @param account\r\n * @param familyRT\r\n */\r\n CacheManager.prototype.readRefreshTokenFromCache = function (clientId, account, familyRT) {\r\n var id = familyRT ? THE_FAMILY_ID : undefined;\r\n var refreshTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n clientId: clientId,\r\n familyId: id\r\n };\r\n var credentialCache = this.getCredentialsFilteredBy(refreshTokenFilter);\r\n var refreshTokens = Object.keys(credentialCache.refreshTokens).map(function (key) { return credentialCache.refreshTokens[key]; });\r\n var numRefreshTokens = refreshTokens.length;\r\n if (numRefreshTokens < 1) {\r\n return null;\r\n }\r\n // address the else case after remove functions address environment aliases\r\n return refreshTokens[0];\r\n };\r\n /**\r\n * Retrieve AppMetadataEntity from cache\r\n */\r\n CacheManager.prototype.readAppMetadataFromCache = function (environment, clientId) {\r\n var appMetadataFilter = {\r\n environment: environment,\r\n clientId: clientId,\r\n };\r\n var appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n var appMetadataEntries = Object.keys(appMetadata).map(function (key) { return appMetadata[key]; });\r\n var numAppMetadata = appMetadataEntries.length;\r\n if (numAppMetadata < 1) {\r\n return null;\r\n }\r\n else if (numAppMetadata > 1) {\r\n throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\r\n }\r\n return appMetadataEntries[0];\r\n };\r\n /**\r\n * Return the family_id value associated with FOCI\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.isAppMetadataFOCI = function (environment, clientId) {\r\n var appMetadata = this.readAppMetadataFromCache(environment, clientId);\r\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param value\r\n * @param homeAccountId\r\n */\r\n CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {\r\n return !!(entity.homeAccountId && homeAccountId === entity.homeAccountId);\r\n };\r\n /**\r\n * helper to match assertion\r\n * @param value\r\n * @param oboAssertion\r\n */\r\n CacheManager.prototype.matchOboAssertion = function (entity, oboAssertion) {\r\n return !!(entity.oboAssertion && oboAssertion === entity.oboAssertion);\r\n };\r\n /**\r\n * helper to match environment\r\n * @param value\r\n * @param environment\r\n */\r\n CacheManager.prototype.matchEnvironment = function (entity, environment) {\r\n var cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * helper to match credential type\r\n * @param entity\r\n * @param credentialType\r\n */\r\n CacheManager.prototype.matchCredentialType = function (entity, credentialType) {\r\n return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n };\r\n /**\r\n * helper to match client ids\r\n * @param entity\r\n * @param clientId\r\n */\r\n CacheManager.prototype.matchClientId = function (entity, clientId) {\r\n return !!(entity.clientId && clientId === entity.clientId);\r\n };\r\n /**\r\n * helper to match family ids\r\n * @param entity\r\n * @param familyId\r\n */\r\n CacheManager.prototype.matchFamilyId = function (entity, familyId) {\r\n return !!(entity.familyId && familyId === entity.familyId);\r\n };\r\n /**\r\n * helper to match realm\r\n * @param entity\r\n * @param realm\r\n */\r\n CacheManager.prototype.matchRealm = function (entity, realm) {\r\n return !!(entity.realm && realm === entity.realm);\r\n };\r\n /**\r\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n * @param entity\r\n * @param target\r\n */\r\n CacheManager.prototype.matchTarget = function (entity, target) {\r\n var isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\r\n if (isNotAccessTokenCredential || !entity.target) {\r\n return false;\r\n }\r\n var entityScopeSet = ScopeSet.fromString(entity.target);\r\n var requestTargetScopeSet = ScopeSet.fromString(target);\r\n if (!requestTargetScopeSet.containsOnlyOIDCScopes()) {\r\n requestTargetScopeSet.removeOIDCScopes(); // ignore OIDC scopes\r\n }\r\n else {\r\n requestTargetScopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n }\r\n return entityScopeSet.containsScopeSet(requestTargetScopeSet);\r\n };\r\n /**\r\n * returns if a given cache entity is of the type appmetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAppMetadata = function (key) {\r\n return key.indexOf(APP_METADATA) !== -1;\r\n };\r\n /**\r\n * returns if a given cache entity is of the type authoritymetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAuthorityMetadata = function (key) {\r\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n };\r\n /**\r\n * returns cache key used for cloud instance metadata\r\n */\r\n CacheManager.prototype.generateAuthorityMetadataCacheKey = function (authority) {\r\n return AUTHORITY_METADATA_CONSTANTS.CACHE_KEY + \"-\" + this.clientId + \"-\" + authority;\r\n };\r\n /**\r\n * Returns the specific credential (IdToken/AccessToken/RefreshToken) from the cache\r\n * @param key\r\n * @param credType\r\n */\r\n CacheManager.prototype.getSpecificCredential = function (key, credType) {\r\n switch (credType) {\r\n case CredentialType.ID_TOKEN: {\r\n return this.getIdTokenCredential(key);\r\n }\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME: {\r\n return this.getAccessTokenCredential(key);\r\n }\r\n case CredentialType.REFRESH_TOKEN: {\r\n return this.getRefreshTokenCredential(key);\r\n }\r\n default:\r\n return null;\r\n }\r\n };\r\n /**\r\n * Helper to convert serialized data to object\r\n * @param obj\r\n * @param json\r\n */\r\n CacheManager.toObject = function (obj, json) {\r\n for (var propertyName in json) {\r\n obj[propertyName] = json[propertyName];\r\n }\r\n return obj;\r\n };\r\n return CacheManager;\r\n}());\r\nvar DefaultStorageClass = /** @class */ (function (_super) {\r\n __extends(DefaultStorageClass, _super);\r\n function DefaultStorageClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultStorageClass.prototype.setAccount = function () {\r\n var notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccount = function () {\r\n var notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAppMetadata = function () {\r\n var notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAppMetadata = function () {\r\n var notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadataKeys = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.removeItem = function () {\r\n var notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.containsKey = function () {\r\n var notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getKeys = function () {\r\n var notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.clear = function () {\r\n var notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n return DefaultStorageClass;\r\n}(CacheManager));\n\nexport { CacheManager, DefaultStorageClass };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType, AuthenticationScheme } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { AuthToken } from '../../account/AuthToken.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ACCESS_TOKEN Credential Type\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * cachedAt: Absolute device time when entry was created in the cache.\r\n * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\r\n * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\r\n * keyId: used for POP and SSH tokenTypes\r\n * tokenType: Type of the token issued. Usually \"Bearer\"\r\n * }\r\n */\r\nvar AccessTokenEntity = /** @class */ (function (_super) {\r\n __extends(AccessTokenEntity, _super);\r\n function AccessTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create AccessTokenEntity\r\n * @param homeAccountId\r\n * @param environment\r\n * @param accessToken\r\n * @param clientId\r\n * @param tenantId\r\n * @param scopes\r\n * @param expiresOn\r\n * @param extExpiresOn\r\n */\r\n AccessTokenEntity.createAccessTokenEntity = function (homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, oboAssertion) {\r\n var _a;\r\n var atEntity = new AccessTokenEntity();\r\n atEntity.homeAccountId = homeAccountId;\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN;\r\n atEntity.secret = accessToken;\r\n var currentTime = TimeUtils.nowSeconds();\r\n atEntity.cachedAt = currentTime.toString();\r\n /*\r\n * Token expiry time.\r\n * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.\r\n */\r\n atEntity.expiresOn = expiresOn.toString();\r\n atEntity.extendedExpiresOn = extExpiresOn.toString();\r\n if (refreshOn) {\r\n atEntity.refreshOn = refreshOn.toString();\r\n }\r\n atEntity.environment = environment;\r\n atEntity.clientId = clientId;\r\n atEntity.realm = tenantId;\r\n atEntity.target = scopes;\r\n atEntity.oboAssertion = oboAssertion;\r\n atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\r\n // Create Access Token With AuthScheme instead of regular access token\r\n if (atEntity.tokenType === AuthenticationScheme.POP) {\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n // Make sure keyId is present and add it to credential\r\n var tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\r\n if (!((_a = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _a === void 0 ? void 0 : _a.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n atEntity.keyId = tokenClaims.cnf.kid;\r\n }\r\n return atEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccessTokenEntity.isAccessTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity.hasOwnProperty(\"target\") &&\r\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n };\r\n return AccessTokenEntity;\r\n}(CredentialEntity));\n\nexport { AccessTokenEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { Separators, CacheAccountType, CacheType, Constants } from '../../utils/Constants.js';\nimport { buildClientInfo } from '../../account/ClientInfo.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\nimport { AuthorityType } from '../../authority/AuthorityType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: --\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n * authorityType: Accounts authority type as a string\r\n * name: Full name for the account, including given name and family name,\r\n * clientInfo: Full base64 encoded client info received from ESTS\r\n * lastModificationTime: last time this entity was modified in the cache\r\n * lastModificationApp:\r\n * oboAssertion: access token passed in as part of OBO request\r\n * idTokenClaims: Object containing claims parsed from ID token\r\n * }\r\n */\r\nvar AccountEntity = /** @class */ (function () {\r\n function AccountEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n AccountEntity.prototype.generateAccountId = function () {\r\n var accountId = [this.homeAccountId, this.environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate Account Cache Key as per the schema: --\r\n */\r\n AccountEntity.prototype.generateAccountKey = function () {\r\n return AccountEntity.generateAccountCacheKey({\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId\r\n });\r\n };\r\n /**\r\n * returns the type of the cache (in this case account)\r\n */\r\n AccountEntity.prototype.generateType = function () {\r\n switch (this.authorityType) {\r\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\r\n return CacheType.ADFS;\r\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\r\n return CacheType.MSA;\r\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\r\n return CacheType.MSSTS;\r\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\r\n return CacheType.GENERIC;\r\n default: {\r\n throw ClientAuthError.createUnexpectedAccountTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the AccountInfo interface for this account.\r\n */\r\n AccountEntity.prototype.getAccountInfo = function () {\r\n return {\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n name: this.name,\r\n idTokenClaims: this.idTokenClaims\r\n };\r\n };\r\n /**\r\n * Generates account key from interface\r\n * @param accountInterface\r\n */\r\n AccountEntity.generateAccountCacheKey = function (accountInterface) {\r\n var accountKey = [\r\n accountInterface.homeAccountId,\r\n accountInterface.environment || \"\",\r\n accountInterface.tenantId || \"\",\r\n ];\r\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n * @param clientInfo\r\n * @param authority\r\n * @param idToken\r\n * @param policy\r\n */\r\n AccountEntity.createAccount = function (clientInfo, homeAccountId, authority, idToken, oboAssertion, cloudGraphHostName, msGraphHost) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var account = new AccountEntity();\r\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n account.clientInfo = clientInfo;\r\n account.homeAccountId = homeAccountId;\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n account.environment = env;\r\n // non AAD scenarios can have empty realm\r\n account.realm = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.tid) || \"\";\r\n account.oboAssertion = oboAssertion;\r\n if (idToken) {\r\n account.idTokenClaims = idToken.claims;\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.oid) || ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.sub) || \"\";\r\n /*\r\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array. In most cases it will contain a single email.\r\n * This field should not be relied upon if a custom policy is configured to return more than 1 email.\r\n */\r\n account.username = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.preferred_username) || (((_e = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _e === void 0 ? void 0 : _e.emails) ? idToken.claims.emails[0] : \"\");\r\n account.name = (_f = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _f === void 0 ? void 0 : _f.name;\r\n }\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n return account;\r\n };\r\n /**\r\n * Builds non-AAD/ADFS account.\r\n * @param authority\r\n * @param idToken\r\n */\r\n AccountEntity.createGenericAccount = function (authority, homeAccountId, idToken, oboAssertion, cloudGraphHostName, msGraphHost) {\r\n var _a, _b, _c, _d;\r\n var account = new AccountEntity();\r\n account.authorityType = (authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n account.homeAccountId = homeAccountId;\r\n // non AAD scenarios can have empty realm\r\n account.realm = \"\";\r\n account.oboAssertion = oboAssertion;\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n if (idToken) {\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.oid) || ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.sub) || \"\";\r\n // upn claim for most ADFS scenarios\r\n account.username = ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.upn) || \"\";\r\n account.name = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.name) || \"\";\r\n account.idTokenClaims = idToken === null || idToken === void 0 ? void 0 : idToken.claims;\r\n }\r\n account.environment = env;\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n /*\r\n * add uniqueName to claims\r\n * account.name = idToken.claims.uniqueName;\r\n */\r\n return account;\r\n };\r\n /**\r\n * Generate HomeAccountId from server response\r\n * @param serverClientInfo\r\n * @param authType\r\n */\r\n AccountEntity.generateHomeAccountId = function (serverClientInfo, authType, logger, cryptoObj, idToken) {\r\n var _a;\r\n var accountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.sub) ? idToken.claims.sub : Constants.EMPTY_STRING;\r\n // since ADFS does not have tid and does not set client_info\r\n if (authType === AuthorityType.Adfs) {\r\n return accountId;\r\n }\r\n // for cases where there is clientInfo\r\n if (serverClientInfo) {\r\n try {\r\n var clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\r\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\r\n return \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid;\r\n }\r\n }\r\n catch (e) { }\r\n }\r\n // default to \"sub\" claim\r\n logger.verbose(\"No client info in response\");\r\n return accountId;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccountEntity.isAccountEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"localAccountId\") &&\r\n entity.hasOwnProperty(\"username\") &&\r\n entity.hasOwnProperty(\"authorityType\"));\r\n };\r\n /**\r\n * Helper function to determine whether 2 accountInfo objects represent the same account\r\n * @param accountA\r\n * @param accountB\r\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\r\n */\r\n AccountEntity.accountInfoIsEqual = function (accountA, accountB, compareClaims) {\r\n if (!accountA || !accountB) {\r\n return false;\r\n }\r\n var claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\r\n if (compareClaims) {\r\n var accountAClaims = (accountA.idTokenClaims || {});\r\n var accountBClaims = (accountB.idTokenClaims || {});\r\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\r\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\r\n (accountAClaims.nonce === accountBClaims.nonce);\r\n }\r\n return (accountA.homeAccountId === accountB.homeAccountId) &&\r\n (accountA.localAccountId === accountB.localAccountId) &&\r\n (accountA.username === accountB.username) &&\r\n (accountA.tenantId === accountB.tenantId) &&\r\n (accountA.environment === accountB.environment) &&\r\n claimsMatch;\r\n };\r\n return AccountEntity;\r\n}());\n\nexport { AccountEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { Separators, APP_METADATA } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * APP_METADATA Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: appmetadata--\r\n *\r\n * Value:\r\n * {\r\n * clientId: client ID of the application\r\n * environment: entity that issued the token, represented as a full host\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * }\r\n */\r\nvar AppMetadataEntity = /** @class */ (function () {\r\n function AppMetadataEntity() {\r\n }\r\n /**\r\n * Generate AppMetadata Cache Key as per the schema: appmetadata--\r\n */\r\n AppMetadataEntity.prototype.generateAppMetadataKey = function () {\r\n return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\r\n };\r\n /**\r\n * Generate AppMetadata Cache Key\r\n */\r\n AppMetadataEntity.generateAppMetadataCacheKey = function (environment, clientId) {\r\n var appMetaDataKeyArray = [\r\n APP_METADATA,\r\n environment,\r\n clientId,\r\n ];\r\n return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Creates AppMetadataEntity\r\n * @param clientId\r\n * @param environment\r\n * @param familyId\r\n */\r\n AppMetadataEntity.createAppMetadataEntity = function (clientId, environment, familyId) {\r\n var appMetadata = new AppMetadataEntity();\r\n appMetadata.clientId = clientId;\r\n appMetadata.environment = environment;\r\n if (familyId) {\r\n appMetadata.familyId = familyId;\r\n }\r\n return appMetadata;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AppMetadataEntity.isAppMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(APP_METADATA) === 0 &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"environment\"));\r\n };\r\n return AppMetadataEntity;\r\n}());\n\nexport { AppMetadataEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { AUTHORITY_METADATA_CONSTANTS } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityMetadataEntity = /** @class */ (function () {\r\n function AuthorityMetadataEntity() {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n }\r\n /**\r\n * Update the entity with new aliases, preferred_cache and preferred_network values\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateCloudDiscoveryMetadata = function (metadata, fromNetwork) {\r\n this.aliases = metadata.aliases;\r\n this.preferred_cache = metadata.preferred_cache;\r\n this.preferred_network = metadata.preferred_network;\r\n this.aliasesFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Update the entity with new endpoints\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateEndpointMetadata = function (metadata, fromNetwork) {\r\n this.authorization_endpoint = metadata.authorization_endpoint;\r\n this.token_endpoint = metadata.token_endpoint;\r\n this.end_session_endpoint = metadata.end_session_endpoint;\r\n this.issuer = metadata.issuer;\r\n this.endpointsFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Save the authority that was used to create this cache entry\r\n * @param authority\r\n */\r\n AuthorityMetadataEntity.prototype.updateCanonicalAuthority = function (authority) {\r\n this.canonical_authority = authority;\r\n };\r\n /**\r\n * Reset the exiresAt value\r\n */\r\n AuthorityMetadataEntity.prototype.resetExpiresAt = function () {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n };\r\n /**\r\n * Returns whether or not the data needs to be refreshed\r\n */\r\n AuthorityMetadataEntity.prototype.isExpired = function () {\r\n return this.expiresAt <= TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AuthorityMetadataEntity.isAuthorityMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n entity.hasOwnProperty(\"aliases\") &&\r\n entity.hasOwnProperty(\"preferred_cache\") &&\r\n entity.hasOwnProperty(\"preferred_network\") &&\r\n entity.hasOwnProperty(\"canonical_authority\") &&\r\n entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n entity.hasOwnProperty(\"token_endpoint\") &&\r\n entity.hasOwnProperty(\"end_session_endpoint\") &&\r\n entity.hasOwnProperty(\"issuer\") &&\r\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n entity.hasOwnProperty(\"expiresAt\"));\r\n };\r\n return AuthorityMetadataEntity;\r\n}());\n\nexport { AuthorityMetadataEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CacheRecord = /** @class */ (function () {\r\n function CacheRecord(accountEntity, idTokenEntity, accessTokenEntity, refreshTokenEntity, appMetadataEntity) {\r\n this.account = accountEntity || null;\r\n this.idToken = idTokenEntity || null;\r\n this.accessToken = accessTokenEntity || null;\r\n this.refreshToken = refreshTokenEntity || null;\r\n this.appMetadata = appMetadataEntity || null;\r\n }\r\n return CacheRecord;\r\n}());\n\nexport { CacheRecord };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { CredentialType, CacheType, Constants, Separators } from '../../utils/Constants.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: -----\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * oboAssertion: access token passed in as part of OBO request\r\n * }\r\n */\r\nvar CredentialEntity = /** @class */ (function () {\r\n function CredentialEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n CredentialEntity.prototype.generateAccountId = function () {\r\n return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\r\n };\r\n /**\r\n * Generate Credential Id key component as per the schema: --\r\n */\r\n CredentialEntity.prototype.generateCredentialId = function () {\r\n return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.prototype.generateTarget = function () {\r\n return CredentialEntity.generateTargetForCacheKey(this.target);\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.prototype.generateCredentialKey = function () {\r\n return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId);\r\n };\r\n /**\r\n * returns the type of the cache (in this case credential)\r\n */\r\n CredentialEntity.prototype.generateType = function () {\r\n switch (this.credentialType) {\r\n case CredentialType.ID_TOKEN:\r\n return CacheType.ID_TOKEN;\r\n case CredentialType.ACCESS_TOKEN:\r\n return CacheType.ACCESS_TOKEN;\r\n case CredentialType.REFRESH_TOKEN:\r\n return CacheType.REFRESH_TOKEN;\r\n default: {\r\n throw ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * helper function to return `CredentialType`\r\n * @param key\r\n */\r\n CredentialEntity.getCredentialType = function (key) {\r\n // First keyword search will match all \"AccessToken\" and \"AccessToken_With_AuthScheme\" credentials\r\n if (key.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) !== -1) {\r\n // Perform second search to differentiate between \"AccessToken\" and \"AccessToken_With_AuthScheme\" credential types\r\n if (key.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) !== -1) {\r\n return CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n }\r\n return CredentialType.ACCESS_TOKEN;\r\n }\r\n else if (key.indexOf(CredentialType.ID_TOKEN.toLowerCase()) !== -1) {\r\n return CredentialType.ID_TOKEN;\r\n }\r\n else if (key.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) !== -1) {\r\n return CredentialType.REFRESH_TOKEN;\r\n }\r\n return Constants.NOT_DEFINED;\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.generateCredentialCacheKey = function (homeAccountId, environment, credentialType, clientId, realm, target, familyId) {\r\n var credentialKey = [\r\n this.generateAccountIdForCacheKey(homeAccountId, environment),\r\n this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\r\n this.generateTargetForCacheKey(target),\r\n ];\r\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * generates Account Id for keys\r\n * @param homeAccountId\r\n * @param environment\r\n */\r\n CredentialEntity.generateAccountIdForCacheKey = function (homeAccountId, environment) {\r\n var accountId = [homeAccountId, environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generates Credential Id for keys\r\n * @param credentialType\r\n * @param realm\r\n * @param clientId\r\n * @param familyId\r\n */\r\n CredentialEntity.generateCredentialIdForCacheKey = function (credentialType, clientId, realm, familyId) {\r\n var clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN\r\n ? familyId || clientId\r\n : clientId;\r\n var credentialId = [\r\n credentialType,\r\n clientOrFamilyId,\r\n realm || \"\",\r\n ];\r\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.generateTargetForCacheKey = function (scopes) {\r\n return (scopes || \"\").toLowerCase();\r\n };\r\n return CredentialEntity;\r\n}());\n\nexport { CredentialEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ID_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * }\r\n */\r\nvar IdTokenEntity = /** @class */ (function (_super) {\r\n __extends(IdTokenEntity, _super);\r\n function IdTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create IdTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n IdTokenEntity.createIdTokenEntity = function (homeAccountId, environment, idToken, clientId, tenantId, oboAssertion) {\r\n var idTokenEntity = new IdTokenEntity();\r\n idTokenEntity.credentialType = CredentialType.ID_TOKEN;\r\n idTokenEntity.homeAccountId = homeAccountId;\r\n idTokenEntity.environment = environment;\r\n idTokenEntity.clientId = clientId;\r\n idTokenEntity.secret = idToken;\r\n idTokenEntity.realm = tenantId;\r\n idTokenEntity.oboAssertion = oboAssertion;\r\n return idTokenEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n IdTokenEntity.isIdTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n };\r\n return IdTokenEntity;\r\n}(CredentialEntity));\n\nexport { IdTokenEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * REFRESH_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\r\n *\r\n * Value:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * }\r\n */\r\nvar RefreshTokenEntity = /** @class */ (function (_super) {\r\n __extends(RefreshTokenEntity, _super);\r\n function RefreshTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create RefreshTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n RefreshTokenEntity.createRefreshTokenEntity = function (homeAccountId, environment, refreshToken, clientId, familyId, oboAssertion) {\r\n var rtEntity = new RefreshTokenEntity();\r\n rtEntity.clientId = clientId;\r\n rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\r\n rtEntity.environment = environment;\r\n rtEntity.homeAccountId = homeAccountId;\r\n rtEntity.secret = refreshToken;\r\n rtEntity.oboAssertion = oboAssertion;\r\n if (familyId)\r\n rtEntity.familyId = familyId;\r\n return rtEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n RefreshTokenEntity.isRefreshTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n };\r\n return RefreshTokenEntity;\r\n}(CredentialEntity));\n\nexport { RefreshTokenEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryEntity = /** @class */ (function () {\r\n function ServerTelemetryEntity() {\r\n this.failedRequests = [];\r\n this.errors = [];\r\n this.cacheHits = 0;\r\n }\r\n /**\r\n * validates if a given cache entry is \"Telemetry\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ServerTelemetryEntity.isServerTelemetryEntity = function (key, entity) {\r\n var validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity =\r\n entity.hasOwnProperty(\"failedRequests\") &&\r\n entity.hasOwnProperty(\"errors\") &&\r\n entity.hasOwnProperty(\"cacheHits\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ServerTelemetryEntity;\r\n}());\n\nexport { ServerTelemetryEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ThrottlingConstants } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingEntity = /** @class */ (function () {\r\n function ThrottlingEntity() {\r\n }\r\n /**\r\n * validates if a given cache entry is \"Throttling\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ThrottlingEntity.isThrottlingEntity = function (key, entity) {\r\n var validateKey = false;\r\n if (key) {\r\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n }\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ThrottlingEntity;\r\n}());\n\nexport { ThrottlingEntity };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ var TokenCacheContext = /** @class */ (function () {\r\n function TokenCacheContext(tokenCache, hasChanged) {\r\n this.cache = tokenCache;\r\n this.hasChanged = hasChanged;\r\n }\r\n Object.defineProperty(TokenCacheContext.prototype, \"cacheHasChanged\", {\r\n /**\r\n * boolean which indicates the changes in cache\r\n */\r\n get: function () {\r\n return this.hasChanged;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TokenCacheContext.prototype, \"tokenCache\", {\r\n /**\r\n * function to retrieve the token cache\r\n */\r\n get: function () {\r\n return this.cache;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TokenCacheContext;\r\n}());\n\nexport { TokenCacheContext };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign, __spreadArrays } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { PromptValue, Separators, GrantType, AuthenticationScheme } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { buildClientInfoFromHomeAccountId, buildClientInfo } from '../account/ClientInfo.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n */\r\nvar AuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(AuthorizationCodeClient, _super);\r\n function AuthorizationCodeClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n * application. The URL target the /authorize endpoint of the authority configured in the\r\n * application object.\r\n *\r\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n * acquireToken(AuthorizationCodeRequest)\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.getAuthCodeUrl = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryString;\r\n return __generator(this, function (_a) {\r\n queryString = this.createAuthCodeUrlQueryString(request);\r\n return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];\r\n });\r\n });\r\n };\r\n /**\r\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n * authorization_code_grant\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.acquireToken = function (request, authCodePayload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqTimestamp, response, responseHandler;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.info(\"in acquireToken call\");\r\n if (!request || StringUtils.isEmpty(request.code)) {\r\n throw ClientAuthError.createTokenRequestCannotBeMadeError();\r\n }\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n return [4 /*yield*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handles the hash fragment response from public client code request. Returns a code response used by\r\n * the client to exchange for a token in acquireToken.\r\n * @param hashFragment\r\n */\r\n AuthorizationCodeClient.prototype.handleFragmentResponse = function (hashFragment, cachedState) {\r\n // Handle responses.\r\n var responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n // Deserialize hash fragment response parameters.\r\n var hashUrlString = new UrlString(hashFragment);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hashUrlString.getHash());\r\n // Get code response\r\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\r\n // throw when there is no auth code in the response\r\n if (!serverParams.code) {\r\n throw ClientAuthError.createNoAuthCodeInServerResponseError();\r\n }\r\n return __assign(__assign({}, serverParams), { \r\n // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\r\n code: serverParams.code });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param authorityUri\r\n */\r\n AuthorizationCodeClient.prototype.getLogoutUri = function (logoutRequest) {\r\n // Throw error if logoutRequest is null/undefined\r\n if (!logoutRequest) {\r\n throw ClientConfigurationError.createEmptyLogoutRequestError();\r\n }\r\n if (logoutRequest.account) {\r\n // Clear given account.\r\n this.cacheManager.removeAccount(AccountEntity.generateAccountCacheKey(logoutRequest.account));\r\n }\r\n else {\r\n // Clear all accounts and tokens\r\n this.cacheManager.clear();\r\n }\r\n var queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n // Construct logout URI.\r\n return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\r\n };\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.executeTokenRequest = function (authority, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var thumbprint, requestBody, queryParameters, ccsCredential, clientInfo, headers, endpoint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes\r\n };\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _a.sent();\r\n queryParameters = this.createTokenQueryParameters(request);\r\n ccsCredential = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCredential = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n headers = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\r\n endpoint = StringUtils.isEmpty(queryParameters) ? authority.tokenEndpoint : authority.tokenEndpoint + \"?\" + queryParameters;\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenRequestBody = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, clientAssertion, popTokenGenerator, cnfString, correlationId, ccsCred, clientInfo, clientInfo;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n // Add scope array, parameter builder will add default scopes and dedupe\r\n parameterBuilder.addScopes(request.scopes);\r\n // add code: user set, not validated\r\n parameterBuilder.addAuthorizationCode(request.code);\r\n // Add library metadata\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n // add code_verifier if passed\r\n if (request.codeVerifier) {\r\n parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n }\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n parameterBuilder.addClientInfo();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n cnfString = _a.sent();\r\n parameterBuilder.addPopToken(cnfString);\r\n _a.label = 2;\r\n case 2:\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n ccsCred = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCred = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n else {\r\n ccsCred = request.ccsCredential;\r\n }\r\n // Adds these as parameters in the request instead of headers to prevent CORS preflight request\r\n if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(ccsCred.credential);\r\n break;\r\n }\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n var requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);\r\n parameterBuilder.addScopes(requestScopes);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n // generate the correlationId if not set by the user and add\r\n var correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n // add response_mode. If not passed in it defaults to query.\r\n parameterBuilder.addResponseMode(request.responseMode);\r\n // add response_type = code\r\n parameterBuilder.addResponseTypeCode();\r\n // add library info parameters\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n // add client_info=1\r\n parameterBuilder.addClientInfo();\r\n if (request.codeChallenge && request.codeChallengeMethod) {\r\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n }\r\n if (request.prompt) {\r\n parameterBuilder.addPrompt(request.prompt);\r\n }\r\n if (request.domainHint) {\r\n parameterBuilder.addDomainHint(request.domainHint);\r\n }\r\n // Add sid or loginHint with preference for sid -> loginHint -> username of AccountInfo object\r\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n // AAD will throw if prompt=select_account is passed with an account hint\r\n if (request.sid && request.prompt === PromptValue.NONE) {\r\n // SessionID is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n parameterBuilder.addSid(request.sid);\r\n }\r\n else if (request.account) {\r\n var accountSid = this.extractAccountSid(request.account);\r\n // If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n if (accountSid && request.prompt === PromptValue.NONE) {\r\n // SessionId is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n parameterBuilder.addSid(accountSid);\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n else if (request.account.username) {\r\n // Fallback to account username if provided\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n parameterBuilder.addLoginHint(request.account.username);\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n }\r\n if (request.nonce) {\r\n parameterBuilder.addNonce(request.nonce);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * This API validates the `EndSessionRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createLogoutUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.postLogoutRedirectUri) {\r\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n }\r\n if (request.correlationId) {\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n }\r\n if (request.idTokenHint) {\r\n parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n * @param account\r\n */\r\n AuthorizationCodeClient.prototype.extractAccountSid = function (account) {\r\n if (account.idTokenClaims) {\r\n var tokenClaims = account.idTokenClaims;\r\n return tokenClaims.sid || null;\r\n }\r\n return null;\r\n };\r\n return AuthorizationCodeClient;\r\n}(BaseClient));\n\nexport { AuthorizationCodeClient };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientConfiguration } from '../config/ClientConfiguration.js';\nimport { NetworkManager } from '../network/NetworkManager.js';\nimport { Logger } from '../logger/Logger.js';\nimport { HeaderNames, Constants } from '../utils/Constants.js';\nimport { name, version } from '../packageMetadata.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n */\r\nvar BaseClient = /** @class */ (function () {\r\n function BaseClient(configuration) {\r\n // Set the configuration\r\n this.config = buildClientConfiguration(configuration);\r\n // Initialize the logger\r\n this.logger = new Logger(this.config.loggerOptions, name, version);\r\n // Initialize crypto\r\n this.cryptoUtils = this.config.cryptoInterface;\r\n // Initialize storage interface\r\n this.cacheManager = this.config.storageInterface;\r\n // Set the network interface\r\n this.networkClient = this.config.networkInterface;\r\n // Set the NetworkManager\r\n this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\r\n // Set TelemetryManager\r\n this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n // set Authority\r\n this.authority = this.config.authOptions.authority;\r\n }\r\n /**\r\n * Creates default headers for requests to token endpoint\r\n */\r\n BaseClient.prototype.createTokenRequestHeaders = function (ccsCred) {\r\n var headers = {};\r\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n headers[HeaderNames.CCS_HEADER] = \"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid;\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n headers[HeaderNames.CCS_HEADER] = \"UPN: \" + ccsCred.credential;\r\n break;\r\n }\r\n }\r\n return headers;\r\n };\r\n /**\r\n * Http post to token endpoint\r\n * @param tokenEndpoint\r\n * @param queryString\r\n * @param headers\r\n * @param thumbprint\r\n */\r\n BaseClient.prototype.executePostToTokenEndpoint = function (tokenEndpoint, queryString, headers, thumbprint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers })];\r\n case 1:\r\n response = _a.sent();\r\n if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\r\n // Telemetry data successfully logged by server, clear Telemetry cache\r\n this.config.serverTelemetryManager.clearTelemetryCache();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the authority object of the client. Endpoint discovery must be completed.\r\n * @param updatedAuthority\r\n */\r\n BaseClient.prototype.updateAuthority = function (updatedAuthority) {\r\n if (!updatedAuthority.discoveryComplete()) {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\r\n }\r\n this.authority = updatedAuthority;\r\n };\r\n return BaseClient;\r\n}());\n\nexport { BaseClient };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { AuthenticationScheme, GrantType, Errors } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 refresh token client\r\n */\r\nvar RefreshTokenClient = /** @class */ (function (_super) {\r\n __extends(RefreshTokenClient, _super);\r\n function RefreshTokenClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n RefreshTokenClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqTimestamp, response, responseHandler;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1:\r\n response = _a.sent();\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenByRefreshToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isFOCI, noFamilyRTInCache, clientMismatchErrorWithFamilyRT;\r\n return __generator(this, function (_a) {\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment, this.config.authOptions.clientId);\r\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n if (isFOCI) {\r\n try {\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, true)];\r\n }\r\n catch (e) {\r\n noFamilyRTInCache = e instanceof ClientAuthError && e.errorCode === ClientAuthErrorMessage.noTokensFoundError.code;\r\n clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n // throw in all other cases\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n // fall back to application refresh token acquisition\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n });\r\n });\r\n };\r\n /**\r\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenWithCachedRefreshToken = function (request, foci) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var refreshToken, refreshTokenRequest;\r\n return __generator(this, function (_a) {\r\n refreshToken = this.cacheManager.readRefreshTokenFromCache(this.config.authOptions.clientId, request.account, foci);\r\n // no refresh Token\r\n if (!refreshToken) {\r\n throw ClientAuthError.createNoTokensFoundError();\r\n }\r\n refreshTokenRequest = __assign(__assign({}, request), { refreshToken: refreshToken.secret, authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER, ccsCredential: {\r\n credential: request.account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n } });\r\n return [2 /*return*/, this.acquireToken(refreshTokenRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Constructs the network message and makes a NW call to the underlying secure token service\r\n * @param request\r\n * @param authority\r\n */\r\n RefreshTokenClient.prototype.executeTokenRequest = function (request, authority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var requestBody, queryParameters, headers, thumbprint, endpoint;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _a.sent();\r\n queryParameters = this.createTokenQueryParameters(request);\r\n headers = this.createTokenRequestHeaders(request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes\r\n };\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParameters);\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper function to create the token request body\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenRequestBody = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, correlationId, clientAssertion, popTokenGenerator, _a, _b, clientInfo;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n parameterBuilder.addClientInfo();\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n parameterBuilder.addRefreshToken(request.refreshToken);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n _b = (_a = parameterBuilder).addPopToken;\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n _b.apply(_a, [_c.sent()]);\r\n _c.label = 2;\r\n case 2:\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\r\n switch (request.ccsCredential.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\r\n break;\r\n }\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n return RefreshTokenClient;\r\n}(BaseClient));\n\nexport { RefreshTokenClient };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { RefreshTokenClient } from './RefreshTokenClient.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { CacheOutcome, AuthenticationScheme } from '../utils/Constants.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentFlowClient = /** @class */ (function (_super) {\r\n __extends(SilentFlowClient, _super);\r\n function SilentFlowClient(configuration) {\r\n return _super.call(this, configuration) || this;\r\n }\r\n /**\r\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n * the given token and returns the renewed token\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1, refreshTokenClient;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.acquireCachedToken(request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof ClientAuthError && e_1.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\r\n refreshTokenClient = new RefreshTokenClient(this.config);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(request)];\r\n }\r\n else {\r\n throw e_1;\r\n }\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves token from cache or throws an error if it must be refreshed.\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireCachedToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var requestScopes, environment, authScheme, cacheRecord;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n requestScopes = new ScopeSet(request.scopes || []);\r\n environment = request.authority || this.authority.getPreferredCache();\r\n authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n cacheRecord = this.cacheManager.readCacheRecord(request.account, this.config.authOptions.clientId, requestScopes, environment, authScheme);\r\n if (request.forceRefresh) {\r\n // Must refresh due to present force_refresh flag.\r\n (_a = this.serverTelemetryManager) === null || _a === void 0 ? void 0 : _a.setCacheOutcome(CacheOutcome.FORCE_REFRESH);\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (!cacheRecord.accessToken) {\r\n // Must refresh due to non-existent access_token.\r\n (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||\r\n TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n // Must refresh due to expired access_token.\r\n (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {\r\n // Must refresh due to the refresh_in value.\r\n (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (!StringUtils.isEmptyObj(request.claims)) {\r\n // Must refresh due to request parameters.\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n if (this.config.serverTelemetryManager) {\r\n this.config.serverTelemetryManager.incrementCacheHits();\r\n }\r\n return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];\r\n case 1: return [2 /*return*/, _e.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to build response object from the CacheRecord\r\n * @param cacheRecord\r\n */\r\n SilentFlowClient.prototype.generateResultFromCacheRecord = function (cacheRecord, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (cacheRecord.idToken) {\r\n idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return SilentFlowClient;\r\n}(BaseClient));\n\nexport { SilentFlowClient };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { LogLevel } from '../logger/Logger.js';\nimport { Constants } from '../utils/Constants.js';\nimport { version } from '../packageMetadata.js';\nimport { DefaultStorageClass } from '../cache/CacheManager.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Token renewal offset default in seconds\r\nvar DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\r\n preventCorsPreflight: false\r\n};\r\nvar DEFAULT_LOGGER_IMPLEMENTATION = {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info,\r\n correlationId: \"\"\r\n};\r\nvar DEFAULT_NETWORK_IMPLEMENTATION = {\r\n sendGetRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n sendPostRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\r\nvar DEFAULT_LIBRARY_INFO = {\r\n sku: Constants.SKU,\r\n version: version,\r\n cpu: \"\",\r\n os: \"\"\r\n};\r\nvar DEFAULT_CLIENT_CREDENTIALS = {\r\n clientSecret: \"\",\r\n clientAssertion: undefined\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration(_a) {\r\n var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;\r\n return {\r\n authOptions: buildAuthOptions(userAuthOptions),\r\n systemOptions: __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),\r\n loggerOptions: __assign(__assign({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption),\r\n storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION),\r\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n libraryInfo: __assign(__assign({}, DEFAULT_LIBRARY_INFO), libraryInfo),\r\n serverTelemetryManager: serverTelemetryManager || null,\r\n persistencePlugin: persistencePlugin || null,\r\n serializableCache: serializableCache || null\r\n };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n return __assign({ clientCapabilities: [] }, authOptions);\r\n}\n\nexport { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n createNewGuid: function () {\r\n var notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Decode: function () {\r\n var notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Encode: function () {\r\n var notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n generatePkceCodes: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n getPublicKeyThumbprint: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n signJwt: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - signJwt() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\n\nexport { DEFAULT_CRYPTO_IMPLEMENTATION };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar KeyLocation;\r\n(function (KeyLocation) {\r\n KeyLocation[\"SW\"] = \"sw\";\r\n KeyLocation[\"UHW\"] = \"uhw\";\r\n})(KeyLocation || (KeyLocation = {}));\r\nvar PopTokenGenerator = /** @class */ (function () {\r\n function PopTokenGenerator(cryptoUtils) {\r\n this.cryptoUtils = cryptoUtils;\r\n }\r\n PopTokenGenerator.prototype.generateCnf = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var kidThumbprint, reqCnf;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cryptoUtils.getPublicKeyThumbprint(request)];\r\n case 1:\r\n kidThumbprint = _a.sent();\r\n reqCnf = {\r\n kid: kidThumbprint,\r\n xms_ksl: KeyLocation.SW\r\n };\r\n return [2 /*return*/, this.cryptoUtils.base64Encode(JSON.stringify(reqCnf))];\r\n }\r\n });\r\n });\r\n };\r\n PopTokenGenerator.prototype.signPopToken = function (accessToken, request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var tokenClaims, resourceRequestMethod, resourceRequestUri, shrClaims, resourceUrlString, resourceUrlComponents;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n tokenClaims = AuthToken.extractTokenClaims(accessToken, this.cryptoUtils);\r\n resourceRequestMethod = request.resourceRequestMethod, resourceRequestUri = request.resourceRequestUri, shrClaims = request.shrClaims;\r\n resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\r\n resourceUrlComponents = resourceUrlString === null || resourceUrlString === void 0 ? void 0 : resourceUrlString.getUrlComponents();\r\n if (!((_a = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _a === void 0 ? void 0 : _a.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n return [4 /*yield*/, this.cryptoUtils.signJwt({\r\n at: accessToken,\r\n ts: TimeUtils.nowSeconds(),\r\n m: resourceRequestMethod === null || resourceRequestMethod === void 0 ? void 0 : resourceRequestMethod.toUpperCase(),\r\n u: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.HostNameAndPort,\r\n nonce: this.cryptoUtils.createNewGuid(),\r\n p: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.AbsolutePath,\r\n q: (resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined,\r\n client_claims: shrClaims || undefined\r\n }, tokenClaims.cnf.kid)];\r\n case 1: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return PopTokenGenerator;\r\n}());\n\nexport { PopTokenGenerator };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\r\n }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n __extends(AuthError, _super);\r\n function AuthError(errorCode, errorMessage, suberror) {\r\n var _this = this;\r\n var errorString = errorMessage ? errorCode + \": \" + errorMessage : errorCode;\r\n _this = _super.call(this, errorString) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n _this.errorMessage = errorMessage || \"\";\r\n _this.subError = suberror || \"\";\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error that is thrown when something unexpected happens in the library.\r\n * @param errDesc\r\n */\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\n\nexport { AuthError, AuthErrorMessage };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientAuthErrorMessage = {\r\n clientInfoDecodingError: {\r\n code: \"client_info_decoding_error\",\r\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n },\r\n clientInfoEmptyError: {\r\n code: \"client_info_empty_error\",\r\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\r\n },\r\n tokenParsingError: {\r\n code: \"token_parsing_error\",\r\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n nullOrEmptyToken: {\r\n code: \"null_or_empty_token\",\r\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\r\n },\r\n endpointResolutionError: {\r\n code: \"endpoints_resolution_error\",\r\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n },\r\n networkError: {\r\n code: \"network_error\",\r\n desc: \"Network request failed. Please check network trace to determine root cause.\"\r\n },\r\n unableToGetOpenidConfigError: {\r\n code: \"openid_config_error\",\r\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\r\n },\r\n hashNotDeserialized: {\r\n code: \"hash_not_deserialized\",\r\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\r\n },\r\n blankGuidGenerated: {\r\n code: \"blank_guid_generated\",\r\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state\",\r\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\r\n },\r\n stateMismatchError: {\r\n code: \"state_mismatch\",\r\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\r\n },\r\n stateNotFoundError: {\r\n code: \"state_not_found\",\r\n desc: \"State not found\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch\",\r\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\r\n },\r\n nonceNotFoundError: {\r\n code: \"nonce_not_found\",\r\n desc: \"nonce not found\"\r\n },\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\r\n },\r\n multipleMatchingTokens: {\r\n code: \"multiple_matching_tokens\",\r\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements such as authority or account.\"\r\n },\r\n multipleMatchingAccounts: {\r\n code: \"multiple_matching_accounts\",\r\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\r\n },\r\n multipleMatchingAppMetadata: {\r\n code: \"multiple_matching_appMetadata\",\r\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\r\n },\r\n tokenRequestCannotBeMade: {\r\n code: \"request_cannot_be_made\",\r\n desc: \"Token request cannot be made without authorization code or refresh token.\"\r\n },\r\n appendEmptyScopeError: {\r\n code: \"cannot_append_empty_scope\",\r\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n removeEmptyScopeError: {\r\n code: \"cannot_remove_empty_scope\",\r\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n appendScopeSetError: {\r\n code: \"cannot_append_scopeset\",\r\n desc: \"Cannot append ScopeSet due to error.\"\r\n },\r\n emptyInputScopeSetError: {\r\n code: \"empty_input_scopeset\",\r\n desc: \"Empty input ScopeSet cannot be processed.\"\r\n },\r\n DeviceCodePollingCancelled: {\r\n code: \"device_code_polling_cancelled\",\r\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\r\n },\r\n DeviceCodeExpired: {\r\n code: \"device_code_expired\",\r\n desc: \"Device code is expired.\"\r\n },\r\n DeviceCodeUnknownError: {\r\n code: \"device_code_unknown_error\",\r\n desc: \"Device code stopped polling for unknown reasons.\"\r\n },\r\n NoAccountInSilentRequest: {\r\n code: \"no_account_in_silent_request\",\r\n desc: \"Please pass an account object, silent flow is not supported without account information\"\r\n },\r\n invalidCacheRecord: {\r\n code: \"invalid_cache_record\",\r\n desc: \"Cache record object was null or undefined.\"\r\n },\r\n invalidCacheEnvironment: {\r\n code: \"invalid_cache_environment\",\r\n desc: \"Invalid environment when attempting to create cache entry\"\r\n },\r\n noAccountFound: {\r\n code: \"no_account_found\",\r\n desc: \"No account found in cache for given key.\"\r\n },\r\n CachePluginError: {\r\n code: \"no cache plugin set on CacheManager\",\r\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\r\n },\r\n noCryptoObj: {\r\n code: \"no_crypto_object\",\r\n desc: \"No crypto object detected. This is required for the following operation: \"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n unexpectedAccountType: {\r\n code: \"unexpected_account_type\",\r\n desc: \"Unexpected account type.\"\r\n },\r\n unexpectedCredentialType: {\r\n code: \"unexpected_credential_type\",\r\n desc: \"Unexpected credential type.\"\r\n },\r\n invalidAssertion: {\r\n code: \"invalid_assertion\",\r\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\r\n },\r\n invalidClientCredential: {\r\n code: \"invalid_client_credential\",\r\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\r\n },\r\n tokenRefreshRequired: {\r\n code: \"token_refresh_required\",\r\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\r\n },\r\n userTimeoutReached: {\r\n code: \"user_timeout_reached\",\r\n desc: \"User defined timeout for device code polling reached\",\r\n },\r\n tokenClaimsRequired: {\r\n code: \"token_claims_cnf_required_for_signedjwt\",\r\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\r\n },\r\n noAuthorizationCodeFromServer: {\r\n code: \"authorization_code_missing_from_server_response\",\r\n desc: \"Server response does not contain an authorization code to proceed\"\r\n },\r\n noAzureRegionDetected: {\r\n code: \"no_azure_region_detected\",\r\n desc: \"No azure region was detected and no fallback was made available\"\r\n },\r\n accessTokenEntityNullError: {\r\n code: \"access_token_entity_null\",\r\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n __extends(ClientAuthError, _super);\r\n function ClientAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when client info object doesn't decode correctly.\r\n * @param caughtError\r\n */\r\n ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n /**\r\n * Creates an error thrown if the client info is empty.\r\n * @param rawClientInfo\r\n */\r\n ClientAuthError.createClientInfoEmptyError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, \"\" + ClientAuthErrorMessage.clientInfoEmptyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the id token extraction errors out.\r\n * @param err\r\n */\r\n ClientAuthError.createTokenParsingError = function (caughtExtractionError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + \" Failed with error: \" + caughtExtractionError);\r\n };\r\n /**\r\n * Creates an error thrown when the id token string is null or empty.\r\n * @param invalidRawTokenString\r\n */\r\n ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + \" Raw Token Value: \" + invalidRawTokenString);\r\n };\r\n /**\r\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\r\n */\r\n ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + \" Detail: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the fetch client throws\r\n */\r\n ClientAuthError.createNetworkError = function (endpoint, errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + \" | Fetch client threw: \" + errDetail + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\r\n */\r\n ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + \" Attempted to retrieve endpoints from: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the hash cannot be deserialized.\r\n * @param hashParamObj\r\n */\r\n ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {\r\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + \" Given Object: \" + hashParamObj);\r\n };\r\n /**\r\n * Creates an error thrown when the state cannot be parsed.\r\n * @param invalidState\r\n */\r\n ClientAuthError.createInvalidStateError = function (invalidState, errorString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" Invalid State: \" + invalidState + \", Root Err: \" + errorString);\r\n };\r\n /**\r\n * Creates an error thrown when two states do not match.\r\n */\r\n ClientAuthError.createStateMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state is not present\r\n * @param missingState\r\n */\r\n ClientAuthError.createStateNotFoundError = function (missingState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + \": \" + missingState);\r\n };\r\n /**\r\n * Creates an error thrown when the nonce does not match.\r\n */\r\n ClientAuthError.createNonceMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the mnonce is not present\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createNonceNotFoundError = function (missingNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + \": \" + missingNonce);\r\n };\r\n /**\r\n * Creates an error thrown when the authorization code required for a token request is null or empty.\r\n */\r\n ClientAuthError.createNoTokensFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noTokensFoundError.code, ClientAuthErrorMessage.noTokensFoundError.desc);\r\n };\r\n /**\r\n * Throws error when multiple tokens are in cache.\r\n */\r\n ClientAuthError.createMultipleMatchingTokensInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n };\r\n /**\r\n * Throws error when multiple accounts are in cache for the given params\r\n */\r\n ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);\r\n };\r\n /**\r\n * Throws error when multiple appMetada are in cache for the given clientId.\r\n */\r\n ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\r\n };\r\n /**\r\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\r\n */\r\n ClientAuthError.createTokenRequestCannotBeMadeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append null or empty ScopeSet.\r\n * @param appendError\r\n */\r\n ClientAuthError.createAppendScopeSetError = function (appendError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + \" Detail Error: \" + appendError);\r\n };\r\n /**\r\n * Throws error if ScopeSet is null or undefined.\r\n * @param givenScopeSet\r\n */\r\n ClientAuthError.createEmptyInputScopeSetError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, \"\" + ClientAuthErrorMessage.emptyInputScopeSetError.desc);\r\n };\r\n /**\r\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\r\n */\r\n ClientAuthError.createDeviceCodeCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, \"\" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeExpiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, \"\" + ClientAuthErrorMessage.DeviceCodeExpired.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeUnknownError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, \"\" + ClientAuthErrorMessage.DeviceCodeUnknownError.desc);\r\n };\r\n /**\r\n * Throws error when silent requests are made without an account object\r\n */\r\n ClientAuthError.createNoAccountInSilentRequestError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, \"\" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);\r\n };\r\n /**\r\n * Throws error when cache record is null or undefined.\r\n */\r\n ClientAuthError.createNullOrUndefinedCacheRecord = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\r\n };\r\n /**\r\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\r\n */\r\n ClientAuthError.createInvalidCacheEnvironmentError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\r\n };\r\n /**\r\n * Throws error when account is not found in cache.\r\n */\r\n ClientAuthError.createNoAccountFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\r\n };\r\n /**\r\n * Throws error if ICachePlugin not set on CacheManager.\r\n */\r\n ClientAuthError.createCachePluginError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, \"\" + ClientAuthErrorMessage.CachePluginError.desc);\r\n };\r\n /**\r\n * Throws error if crypto object not found.\r\n * @param operationName\r\n */\r\n ClientAuthError.createNoCryptoObjectError = function (operationName) {\r\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, \"\" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);\r\n };\r\n /**\r\n * Throws error if cache type is invalid.\r\n */\r\n ClientAuthError.createInvalidCacheTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, \"\" + ClientAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected account type.\r\n */\r\n ClientAuthError.createUnexpectedAccountTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, \"\" + ClientAuthErrorMessage.unexpectedAccountType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected credential type.\r\n */\r\n ClientAuthError.createUnexpectedCredentialTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, \"\" + ClientAuthErrorMessage.unexpectedCredentialType.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidAssertionError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, \"\" + ClientAuthErrorMessage.invalidAssertion.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidCredentialError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, \"\" + ClientAuthErrorMessage.invalidClientCredential.desc);\r\n };\r\n /**\r\n * Throws error if token cannot be retrieved from cache due to refresh being required.\r\n */\r\n ClientAuthError.createRefreshRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\r\n };\r\n /**\r\n * Throws error if the user defined timeout is reached.\r\n */\r\n ClientAuthError.createUserTimeoutReachedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\r\n };\r\n /*\r\n * Throws error if token claims are not populated for a signed jwt generation\r\n */\r\n ClientAuthError.createTokenClaimsRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\r\n };\r\n /**\r\n * Throws error when the authorization code is missing from the server response\r\n */\r\n ClientAuthError.createNoAuthCodeInServerResponseError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\n\nexport { ClientAuthError, ClientAuthErrorMessage };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ClientAuthError } from './ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientConfigurationErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n claimsRequestParsingError: {\r\n code: \"claims_request_parsing_error\",\r\n desc: \"Could not parse the given claims request object.\"\r\n },\r\n authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\"\r\n },\r\n urlParseError: {\r\n code: \"url_parse_error\",\r\n desc: \"URL could not be parsed into appropriate segments.\"\r\n },\r\n urlEmptyError: {\r\n code: \"empty_url_error\",\r\n desc: \"URL was empty or null.\"\r\n },\r\n emptyScopesError: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\r\n },\r\n nonArrayScopesError: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n clientIdSingleScopeError: {\r\n code: \"clientid_input_scopes_error\",\r\n desc: \"Client ID can only be provided as a single scope.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent', 'create' and 'none'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\r\n },\r\n invalidClaimsRequest: {\r\n code: \"invalid_claims\",\r\n desc: \"Given claims parameter must be a stringified JSON object.\"\r\n },\r\n tokenRequestEmptyError: {\r\n code: \"token_request_empty\",\r\n desc: \"Token request was empty and not found in cache.\"\r\n },\r\n logoutRequestEmptyError: {\r\n code: \"logout_request_empty\",\r\n desc: \"The logout request was null or undefined.\"\r\n },\r\n invalidCodeChallengeMethod: {\r\n code: \"invalid_code_challenge_method\",\r\n desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\r\n },\r\n invalidCodeChallengeParams: {\r\n code: \"pkce_params_missing\",\r\n desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\r\n },\r\n invalidCloudDiscoveryMetadata: {\r\n code: \"invalid_cloud_discovery_metadata\",\r\n desc: \"Invalid cloudDiscoveryMetadata provided. Must be a JSON object containing tenant_discovery_endpoint and metadata fields\"\r\n },\r\n invalidAuthorityMetadata: {\r\n code: \"invalid_authority_metadata\",\r\n desc: \"Invalid authorityMetadata provided. Must by a JSON object containing authorization_endpoint, token_endpoint, end_session_endpoint, issuer fields.\"\r\n },\r\n untrustedAuthority: {\r\n code: \"untrusted_authority\",\r\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n __extends(ClientConfigurationError, _super);\r\n function ClientConfigurationError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code, ClientConfigurationErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code, ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the claims request could not be successfully parsed\r\n */\r\n ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n };\r\n /**\r\n * Creates an error thrown if authority uri is given an insecure protocol.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createInsecureAuthorityUriError = function (urlString) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code, ClientConfigurationErrorMessage.authorityUriInsecure.desc + \" Given URI: \" + urlString);\r\n };\r\n /**\r\n * Creates an error thrown if URL string does not parse into separate segments.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlParseError = function (urlParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code, ClientConfigurationErrorMessage.urlParseError.desc + \" Given Error: \" + urlParseError);\r\n };\r\n /**\r\n * Creates an error thrown if URL string is empty or null.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code, ClientConfigurationErrorMessage.urlEmptyError.desc);\r\n };\r\n /**\r\n * Error thrown when scopes are empty.\r\n * @param scopesValue\r\n */\r\n ClientConfigurationError.createEmptyScopesArrayError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code, \"\" + ClientConfigurationErrorMessage.emptyScopesError.desc);\r\n };\r\n /**\r\n * Error thrown when client id scope is not provided as single scope.\r\n * @param inputScopes\r\n */\r\n ClientConfigurationError.createClientIdSingleScopeError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code, ClientConfigurationErrorMessage.clientIdSingleScopeError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when prompt is not an allowed type.\r\n * @param promptValue\r\n */\r\n ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n };\r\n /**\r\n * Creates error thrown when claims parameter is not a stringified JSON object\r\n */\r\n ClientConfigurationError.createInvalidClaimsRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code, ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyLogoutRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.logoutRequestEmptyError.code, ClientConfigurationErrorMessage.logoutRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyTokenRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.tokenRequestEmptyError.code, ClientConfigurationErrorMessage.tokenRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when an invalid code_challenge_method is passed by the user\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeMethodError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code, ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc);\r\n };\r\n /**\r\n * Throws error when both params: code_challenge and code_challenge_method are not passed together\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeParamsError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeParams.code, ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidCloudDiscoveryMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code, ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code, ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\r\n };\r\n /**\r\n * Throws error when provided authority is not a member of the trusted host list\r\n */\r\n ClientConfigurationError.createUntrustedAuthorityError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\n\nexport { ClientConfigurationError, ClientConfigurationErrorMessage };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ServerError } from './ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar InteractionRequiredAuthErrorMessage = [\r\n \"interaction_required\",\r\n \"consent_required\",\r\n \"login_required\"\r\n];\r\nvar InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\"\r\n];\r\n/**\r\n * Error thrown when user interaction is required at the auth server.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n __extends(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n return _this;\r\n }\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorCode, errorString, subError) {\r\n var isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredAuthErrorMessage.indexOf(errorCode) > -1;\r\n var isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n var isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredAuthErrorMessage.some(function (irErrorCode) {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\r\n };\r\n return InteractionRequiredAuthError;\r\n}(ServerError));\n\nexport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, InteractionRequiredAuthSubErrorMessage };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n __extends(ServerError, _super);\r\n function ServerError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n return ServerError;\r\n}(AuthError));\n\nexport { ServerError };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = LogLevel.Info;\r\n var defaultLoggerCallback = function () { };\r\n this.localCallback = loggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;\r\n this.level = loggerOptions.logLevel || LogLevel.Info;\r\n this.correlationId = loggerOptions.correlationId || \"\";\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n Logger.prototype.clone = function (packageName, packageVersion, correlationId) {\r\n return new Logger({ loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId }, packageName, packageVersion);\r\n };\r\n /**\r\n * Log message with required options.\r\n */\r\n Logger.prototype.logMessage = function (logMessage, options) {\r\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n var logHeader;\r\n if (!StringUtils.isEmpty(options.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + options.correlationId + \"]\";\r\n }\r\n else if (!StringUtils.isEmpty(this.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + this.correlationId + \"]\";\r\n }\r\n else {\r\n logHeader = \"[\" + timestamp + \"]\";\r\n }\r\n var log = logHeader + \" : \" + this.packageName + \"@\" + this.packageVersion + \" : \" + LogLevel[options.logLevel] + \" - \" + logMessage;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": \"\"}${options.context ? `:${options.context}` : \"\"}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n };\r\n /**\r\n * Execute callback with message.\r\n */\r\n Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n };\r\n /**\r\n * Logs error messages.\r\n */\r\n Logger.prototype.error = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n Logger.prototype.errorPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs warning messages.\r\n */\r\n Logger.prototype.warning = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n Logger.prototype.warningPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs info messages.\r\n */\r\n Logger.prototype.info = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n Logger.prototype.infoPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs verbose messages.\r\n */\r\n Logger.prototype.verbose = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n Logger.prototype.verbosePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs trace messages.\r\n */\r\n Logger.prototype.trace = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n Logger.prototype.tracePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n };\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled || false;\r\n };\r\n return Logger;\r\n}());\n\nexport { LogLevel, Logger };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubbedNetworkModule = {\r\n sendGetRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n },\r\n sendPostRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n }\r\n};\n\nexport { StubbedNetworkModule };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { ThrottlingUtils } from './ThrottlingUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NetworkManager = /** @class */ (function () {\r\n function NetworkManager(networkClient, cacheManager) {\r\n this.networkClient = networkClient;\r\n this.cacheManager = cacheManager;\r\n }\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint\r\n * @param tokenEndpoint\r\n * @param options\r\n */\r\n NetworkManager.prototype.sendPostRequest = function (thumbprint, tokenEndpoint, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkClient.sendPostRequestAsync(tokenEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n throw e_1;\r\n }\r\n else {\r\n throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);\r\n }\r\n case 4:\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n return NetworkManager;\r\n}());\n\nexport { NetworkManager };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ThrottlingConstants, CacheSchemaType, Constants, HeaderNames } from '../utils/Constants.js';\nimport { ServerError } from '../error/ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingUtils = /** @class */ (function () {\r\n function ThrottlingUtils() {\r\n }\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.generateThrottlingStorageKey = function (thumbprint) {\r\n return ThrottlingConstants.THROTTLING_PREFIX + \".\" + JSON.stringify(thumbprint);\r\n };\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.preProcess = function (cacheManager, thumbprint) {\r\n var _a;\r\n var key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n var value = cacheManager.getThrottlingCache(key);\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n return;\r\n }\r\n throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n };\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n ThrottlingUtils.postProcess = function (cacheManager, thumbprint, response) {\r\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n var thumbprintValue = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror\r\n };\r\n cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n }\r\n };\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseStatus = function (response) {\r\n return response.status === 429 || response.status >= 500 && response.status < 600;\r\n };\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseForRetryAfter = function (response) {\r\n if (response.headers) {\r\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n }\r\n return false;\r\n };\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n ThrottlingUtils.calculateThrottleTime = function (throttleTime) {\r\n var time = throttleTime <= 0 ? 0 : throttleTime;\r\n var currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n };\r\n ThrottlingUtils.removeThrottle = function (cacheManager, clientId, authority, scopes, homeAccountIdentifier) {\r\n var thumbprint = {\r\n clientId: clientId,\r\n authority: authority,\r\n scopes: scopes,\r\n homeAccountIdentifier: homeAccountIdentifier\r\n };\r\n var key = this.generateThrottlingStorageKey(thumbprint);\r\n return cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n };\r\n return ThrottlingUtils;\r\n}());\n\nexport { ThrottlingUtils };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-common\";\r\nvar version = \"4.5.1\";\n\nexport { name, version };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';\nimport { ScopeSet } from './ScopeSet.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from './RequestValidator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RequestParameterBuilder = /** @class */ (function () {\r\n function RequestParameterBuilder() {\r\n this.parameters = new Map();\r\n }\r\n /**\r\n * add response_type = code\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeCode = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));\r\n };\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {\r\n if (addOidcScopes === void 0) { addOidcScopes = true; }\r\n var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];\r\n var scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n };\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n RequestParameterBuilder.prototype.addClientId = function (clientId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n };\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {\r\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n };\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {\r\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n };\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {\r\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsUpn = function (loginHint) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"UPN:\" + loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for account object\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsOid = function (clientInfo) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid));\r\n };\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n RequestParameterBuilder.prototype.addSid = function (sid) {\r\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n };\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {\r\n var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n };\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n };\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {\r\n // Telemetry Info\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n };\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n RequestParameterBuilder.prototype.addPrompt = function (prompt) {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(\"\" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));\r\n };\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n RequestParameterBuilder.prototype.addState = function (state) {\r\n if (!StringUtils.isEmpty(state)) {\r\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n }\r\n };\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n RequestParameterBuilder.prototype.addNonce = function (nonce) {\r\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n };\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n }\r\n else {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addDeviceCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {\r\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n };\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {\r\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n };\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n };\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n };\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n };\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {\r\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {\r\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addGrantType = function (grantType) {\r\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n };\r\n /**\r\n * add client info\r\n *\r\n */\r\n RequestParameterBuilder.prototype.addClientInfo = function () {\r\n this.parameters.set(CLIENT_INFO, \"1\");\r\n };\r\n /**\r\n * add extraQueryParams\r\n * @param eQparams\r\n */\r\n RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQparams) {\r\n var _this = this;\r\n RequestValidator.sanitizeEQParams(eQparams, this.parameters);\r\n Object.keys(eQparams).forEach(function (key) {\r\n _this.parameters.set(key, eQparams[key]);\r\n });\r\n };\r\n RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {\r\n var mergedClaims;\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n }\r\n else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n }\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities\r\n };\r\n }\r\n return JSON.stringify(mergedClaims);\r\n };\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n RequestParameterBuilder.prototype.addUsername = function (username) {\r\n this.parameters.set(PasswordGrantConstants.username, username);\r\n };\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n RequestParameterBuilder.prototype.addPassword = function (password) {\r\n this.parameters.set(PasswordGrantConstants.password, password);\r\n };\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n RequestParameterBuilder.prototype.addPopToken = function (cnfString) {\r\n if (!StringUtils.isEmpty(cnfString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n };\r\n /**\r\n * add server telemetry fields\r\n * @param serverTelemetryManager\r\n */\r\n RequestParameterBuilder.prototype.addServerTelemetry = function (serverTelemetryManager) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n };\r\n /**\r\n * Adds parameter that indicates to the server that throttling is supported\r\n */\r\n RequestParameterBuilder.prototype.addThrottling = function () {\r\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n };\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n RequestParameterBuilder.prototype.createQueryString = function () {\r\n var queryParameterArray = new Array();\r\n this.parameters.forEach(function (value, key) {\r\n queryParameterArray.push(key + \"=\" + value);\r\n });\r\n return queryParameterArray.join(\"&\");\r\n };\r\n return RequestParameterBuilder;\r\n}());\n\nexport { RequestParameterBuilder };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { CodeChallengeMethodValues, PromptValue } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nvar RequestValidator = /** @class */ (function () {\r\n function RequestValidator() {\r\n }\r\n /**\r\n * Utility to check if the `redirectUri` in the request is a non-null value\r\n * @param redirectUri\r\n */\r\n RequestValidator.validateRedirectUri = function (redirectUri) {\r\n if (StringUtils.isEmpty(redirectUri)) {\r\n throw ClientConfigurationError.createRedirectUriEmptyError();\r\n }\r\n };\r\n /**\r\n * Utility to validate prompt sent by the user in the request\r\n * @param prompt\r\n */\r\n RequestValidator.validatePrompt = function (prompt) {\r\n var promptValues = [];\r\n for (var value in PromptValue) {\r\n promptValues.push(PromptValue[value]);\r\n }\r\n if (promptValues.indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n };\r\n RequestValidator.validateClaims = function (claims) {\r\n try {\r\n JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge and code_challenge_method\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n else {\r\n this.validateCodeChallengeMethod(codeChallengeMethod);\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge_method\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeMethod = function (codeChallengeMethod) {\r\n if ([\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n ].indexOf(codeChallengeMethod) < 0) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\r\n }\r\n };\r\n /**\r\n * Removes unnecessary or duplicate query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestValidator.sanitizeEQParams = function (eQParams, queryParams) {\r\n if (!eQParams) {\r\n return {};\r\n }\r\n // Remove any query parameters already included in SSO params\r\n queryParams.forEach(function (value, key) {\r\n if (eQParams[key]) {\r\n delete eQParams[key];\r\n }\r\n });\r\n return eQParams;\r\n };\r\n return RequestValidator;\r\n}());\n\nexport { RequestValidator };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { OIDC_SCOPES } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet(inputScopes) {\r\n var _this = this;\r\n // Filter empty string and null/undefined array items\r\n var scopeArr = inputScopes ? StringUtils.trimArrayEntries(__spreadArrays(inputScopes)) : [];\r\n var filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\r\n // Validate and filter scopes (validate function throws if validation fails)\r\n this.validateInputScopes(filteredInput);\r\n this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n filteredInput.forEach(function (scope) { return _this.scopes.add(scope); });\r\n }\r\n /**\r\n * Factory method to create ScopeSet from space-delimited string\r\n * @param inputScopeString\r\n * @param appClientId\r\n * @param scopesRequired\r\n */\r\n ScopeSet.fromString = function (inputScopeString) {\r\n var scopeString = inputScopeString || \"\";\r\n var inputScopes = scopeString.split(\" \");\r\n return new ScopeSet(inputScopes);\r\n };\r\n /**\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} inputScopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n */\r\n ScopeSet.prototype.validateInputScopes = function (inputScopes) {\r\n // Check if scopes are required but not given or is an empty array\r\n if (!inputScopes || inputScopes.length < 1) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError();\r\n }\r\n };\r\n /**\r\n * Check if a given scope is present in this set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.containsScope = function (scope) {\r\n var lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n var lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n // compare lowercase scopes\r\n return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\r\n };\r\n /**\r\n * Check if a set of scopes is present in this set of scopes.\r\n * @param scopeSet\r\n */\r\n ScopeSet.prototype.containsScopeSet = function (scopeSet) {\r\n var _this = this;\r\n if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n return false;\r\n }\r\n return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(function (scope) { return _this.containsScope(scope); }));\r\n };\r\n /**\r\n * Check if set of scopes contains only the defaults\r\n */\r\n ScopeSet.prototype.containsOnlyOIDCScopes = function () {\r\n var _this = this;\r\n var defaultScopeCount = 0;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n if (_this.containsScope(defaultScope)) {\r\n defaultScopeCount += 1;\r\n }\r\n });\r\n return this.scopes.size === defaultScopeCount;\r\n };\r\n /**\r\n * Appends single scope if passed\r\n * @param newScope\r\n */\r\n ScopeSet.prototype.appendScope = function (newScope) {\r\n if (!StringUtils.isEmpty(newScope)) {\r\n this.scopes.add(newScope.trim());\r\n }\r\n };\r\n /**\r\n * Appends multiple scopes if passed\r\n * @param newScopes\r\n */\r\n ScopeSet.prototype.appendScopes = function (newScopes) {\r\n var _this = this;\r\n try {\r\n newScopes.forEach(function (newScope) { return _this.appendScope(newScope); });\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createAppendScopeSetError(e);\r\n }\r\n };\r\n /**\r\n * Removes element from set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.removeScope = function (scope) {\r\n if (StringUtils.isEmpty(scope)) {\r\n throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\r\n }\r\n this.scopes.delete(scope.trim());\r\n };\r\n /**\r\n * Removes default scopes from set of scopes\r\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n */\r\n ScopeSet.prototype.removeOIDCScopes = function () {\r\n var _this = this;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n _this.scopes.delete(defaultScope);\r\n });\r\n };\r\n /**\r\n * Combines an array of scopes with the current set of scopes.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.unionScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n var unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n otherScopes.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n this.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n return unionScopes;\r\n };\r\n /**\r\n * Check if scopes intersect between this set and another.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.intersectingScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n // Do not allow OIDC scopes to be the only intersecting scopes\r\n if (!otherScopes.containsOnlyOIDCScopes()) {\r\n otherScopes.removeOIDCScopes();\r\n }\r\n var unionScopes = this.unionScopeSets(otherScopes);\r\n var sizeOtherScopes = otherScopes.getScopeCount();\r\n var sizeThisScopes = this.getScopeCount();\r\n var sizeUnionScopes = unionScopes.size;\r\n return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\r\n };\r\n /**\r\n * Returns size of set of scopes.\r\n */\r\n ScopeSet.prototype.getScopeCount = function () {\r\n return this.scopes.size;\r\n };\r\n /**\r\n * Returns the scopes as an array of string values\r\n */\r\n ScopeSet.prototype.asArray = function () {\r\n var array = [];\r\n this.scopes.forEach(function (val) { return array.push(val); });\r\n return array;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited string\r\n */\r\n ScopeSet.prototype.printScopes = function () {\r\n if (this.scopes) {\r\n var scopeArr = this.asArray();\r\n return scopeArr.join(\" \");\r\n }\r\n return \"\";\r\n };\r\n /**\r\n * Prints scopes into a space-delimited lower-case string (used for caching)\r\n */\r\n ScopeSet.prototype.printScopesLowerCase = function () {\r\n return this.printScopes().toLowerCase();\r\n };\r\n return ScopeSet;\r\n}());\n\nexport { ScopeSet };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientInfo } from '../account/ClientInfo.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { AuthorityType } from '../authority/AuthorityType.js';\nimport { IdTokenEntity } from '../cache/entities/IdTokenEntity.js';\nimport { AccessTokenEntity } from '../cache/entities/AccessTokenEntity.js';\nimport { RefreshTokenEntity } from '../cache/entities/RefreshTokenEntity.js';\nimport { InteractionRequiredAuthError } from '../error/InteractionRequiredAuthError.js';\nimport { CacheRecord } from '../cache/entities/CacheRecord.js';\nimport { ProtocolUtils } from '../utils/ProtocolUtils.js';\nimport { Constants, AuthenticationScheme, THE_FAMILY_ID } from '../utils/Constants.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { AppMetadataEntity } from '../cache/entities/AppMetadataEntity.js';\nimport { TokenCacheContext } from '../cache/persistence/TokenCacheContext.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class that handles response parsing.\r\n */\r\nvar ResponseHandler = /** @class */ (function () {\r\n function ResponseHandler(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin) {\r\n this.clientId = clientId;\r\n this.cacheStorage = cacheStorage;\r\n this.cryptoObj = cryptoObj;\r\n this.logger = logger;\r\n this.serializableCache = serializableCache;\r\n this.persistencePlugin = persistencePlugin;\r\n }\r\n /**\r\n * Function which validates server authorization code response.\r\n * @param serverResponseHash\r\n * @param cachedState\r\n * @param cryptoObj\r\n */\r\n ResponseHandler.prototype.validateServerAuthorizationCodeResponse = function (serverResponseHash, cachedState, cryptoObj) {\r\n if (!serverResponseHash.state || !cachedState) {\r\n throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\r\n throw ClientAuthError.createStateMismatchError();\r\n }\r\n // Check for error\r\n if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n if (serverResponseHash.client_info) {\r\n buildClientInfo(serverResponseHash.client_info, cryptoObj);\r\n }\r\n };\r\n /**\r\n * Function which validates server authorization token response.\r\n * @param serverResponse\r\n */\r\n ResponseHandler.prototype.validateTokenResponse = function (serverResponse) {\r\n // Check for error\r\n if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror);\r\n }\r\n var errString = serverResponse.error_codes + \" - [\" + serverResponse.timestamp + \"]: \" + serverResponse.error_description + \" - Correlation ID: \" + serverResponse.correlation_id + \" - Trace ID: \" + serverResponse.trace_id;\r\n throw new ServerError(serverResponse.error, errString, serverResponse.suberror);\r\n }\r\n };\r\n /**\r\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n * @param serverTokenResponse\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.handleServerTokenResponse = function (serverTokenResponse, authority, reqTimestamp, request, authCodePayload, oboAssertion, handlingRefreshTokenResponse) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, requestStateObj, cacheRecord, cacheContext, key, account;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (serverTokenResponse.id_token) {\r\n idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\r\n // token nonce check (TODO: Add a warning if no nonce is given?)\r\n if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\r\n if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\r\n throw ClientAuthError.createNonceMismatchError();\r\n }\r\n }\r\n }\r\n // generate homeAccountId\r\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\r\n if (!!authCodePayload && !!authCodePayload.state) {\r\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n }\r\n cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, idTokenObj, request.scopes, oboAssertion, authCodePayload);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 4, 7]);\r\n if (!(this.persistencePlugin && this.serializableCache)) return [3 /*break*/, 3];\r\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n return [4 /*yield*/, this.persistencePlugin.beforeCacheAccess(cacheContext)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n /*\r\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal.\r\n */\r\n if (handlingRefreshTokenResponse && cacheRecord.account) {\r\n key = cacheRecord.account.generateAccountKey();\r\n account = this.cacheStorage.getAccount(key);\r\n if (!account) {\r\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj)];\r\n }\r\n }\r\n this.cacheStorage.saveCacheRecord(cacheRecord);\r\n return [3 /*break*/, 7];\r\n case 4:\r\n if (!(this.persistencePlugin && this.serializableCache && cacheContext)) return [3 /*break*/, 6];\r\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n return [4 /*yield*/, this.persistencePlugin.afterCacheAccess(cacheContext)];\r\n case 5:\r\n _a.sent();\r\n _a.label = 6;\r\n case 6: return [7 /*endfinally*/];\r\n case 7: return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates CacheRecord\r\n * @param serverTokenResponse\r\n * @param idTokenObj\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateCacheRecord = function (serverTokenResponse, authority, reqTimestamp, idTokenObj, requestScopes, oboAssertion, authCodePayload) {\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n // IdToken: non AAD scenarios can have empty realm\r\n var cachedIdToken;\r\n var cachedAccount;\r\n if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\r\n cachedIdToken = IdTokenEntity.createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token || Constants.EMPTY_STRING, this.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING, oboAssertion);\r\n cachedAccount = this.generateAccountEntity(serverTokenResponse, idTokenObj, authority, oboAssertion, authCodePayload);\r\n }\r\n // AccessToken\r\n var cachedAccessToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\r\n // If scopes not returned in server response, use request scopes\r\n var responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(requestScopes || []);\r\n /*\r\n * Use timestamp calculated before request\r\n * Server may return timestamps as strings, parse to numbers if so.\r\n */\r\n var expiresIn = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\r\n var extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\r\n var refreshIn = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n var refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\r\n // non AAD scenarios can have empty realm\r\n cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token || Constants.EMPTY_STRING, this.clientId, idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant, responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj, refreshOnSeconds, serverTokenResponse.token_type, oboAssertion);\r\n }\r\n // refreshToken\r\n var cachedRefreshToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\r\n cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token || Constants.EMPTY_STRING, this.clientId, serverTokenResponse.foci, oboAssertion);\r\n }\r\n // appMetadata\r\n var cachedAppMetadata = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\r\n cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\r\n }\r\n return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\r\n };\r\n /**\r\n * Generate Account\r\n * @param serverTokenResponse\r\n * @param idToken\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateAccountEntity = function (serverTokenResponse, idToken, authority, oboAssertion, authCodePayload) {\r\n var authorityType = authority.authorityType;\r\n var cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : \"\";\r\n var msGraphhost = authCodePayload ? authCodePayload.msgraph_host : \"\";\r\n // ADFS does not require client_info in the response\r\n if (authorityType === AuthorityType.Adfs) {\r\n this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\r\n return AccountEntity.createGenericAccount(authority, this.homeAccountIdentifier, idToken, oboAssertion, cloudGraphHostName, msGraphhost);\r\n }\r\n // This fallback applies to B2C as well as they fall under an AAD account type.\r\n if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n return serverTokenResponse.client_info ?\r\n AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, authority, idToken, oboAssertion, cloudGraphHostName, msGraphhost) :\r\n AccountEntity.createGenericAccount(authority, this.homeAccountIdentifier, idToken, oboAssertion, cloudGraphHostName, msGraphhost);\r\n };\r\n /**\r\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n *\r\n * Optionally takes a state string that is set as-is in the response.\r\n *\r\n * @param cacheRecord\r\n * @param idTokenObj\r\n * @param fromTokenCache\r\n * @param stateString\r\n */\r\n ResponseHandler.generateAuthenticationResult = function (cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenObj, requestState) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessToken, responseScopes, expiresOn, extExpiresOn, familyId, popTokenGenerator, uid, tid;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n accessToken = \"\";\r\n responseScopes = [];\r\n expiresOn = null;\r\n familyId = Constants.EMPTY_STRING;\r\n if (!cacheRecord.accessToken) return [3 /*break*/, 4];\r\n if (!(cacheRecord.accessToken.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(cacheRecord.accessToken.secret, request)];\r\n case 1:\r\n accessToken = _d.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n accessToken = cacheRecord.accessToken.secret;\r\n _d.label = 3;\r\n case 3:\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n _d.label = 4;\r\n case 4:\r\n if (cacheRecord.appMetadata) {\r\n familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\r\n }\r\n uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n return [2 /*return*/, {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: fromTokenCache,\r\n expiresOn: expiresOn,\r\n extExpiresOn: extExpiresOn,\r\n familyId: familyId,\r\n tokenType: ((_a = cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n return ResponseHandler;\r\n}());\n\nexport { ResponseHandler };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS, CacheOutcome, Constants, Separators } from '../../utils/Constants.js';\nimport { ServerTelemetryEntity } from '../../cache/entities/ServerTelemetryEntity.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryManager = /** @class */ (function () {\r\n function ServerTelemetryManager(telemetryRequest, cacheManager) {\r\n this.cacheOutcome = CacheOutcome.NO_CACHE_HIT;\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n ServerTelemetryManager.prototype.generateCurrentRequestHeaderValue = function () {\r\n var request = \"\" + this.apiId + SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR + this.cacheOutcome;\r\n var platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n var requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n ServerTelemetryManager.prototype.generateLastRequestHeaderValue = function () {\r\n var lastRequests = this.getLastRequests();\r\n var maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var failedRequests = lastRequests.failedRequests.slice(0, 2 * maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n var overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n var platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n ServerTelemetryManager.prototype.cacheFailedRequest = function (error) {\r\n var lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (!StringUtils.isEmpty(error.subError)) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (!StringUtils.isEmpty(error.errorCode)) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else if (!!error && error.toString()) {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n };\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n ServerTelemetryManager.prototype.incrementCacheHits = function () {\r\n var lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n };\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n ServerTelemetryManager.prototype.getLastRequests = function () {\r\n var initialValue = new ServerTelemetryEntity();\r\n var lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n };\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n ServerTelemetryManager.prototype.clearTelemetryCache = function () {\r\n var lastRequests = this.getLastRequests();\r\n var numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n var serverTelemEntity = new ServerTelemetryEntity();\r\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed * 2); // failedRequests contains 2 items for each error\r\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n };\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n ServerTelemetryManager.maxErrorsToSend = function (serverTelemetryEntity) {\r\n var i;\r\n var maxErrors = 0;\r\n var dataSize = 0;\r\n var errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n var apiId = serverTelemetryEntity.failedRequests[2 * i] || Constants.EMPTY_STRING;\r\n var correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] || Constants.EMPTY_STRING;\r\n var errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n };\r\n /**\r\n * Get the region discovery fields\r\n *\r\n * @returns string\r\n */\r\n ServerTelemetryManager.prototype.getRegionDiscoveryFields = function () {\r\n var regionDiscoveryFields = [];\r\n regionDiscoveryFields.push(this.regionUsed || \"\");\r\n regionDiscoveryFields.push(this.regionSource || \"\");\r\n regionDiscoveryFields.push(this.regionOutcome || \"\");\r\n return regionDiscoveryFields.join(\",\");\r\n };\r\n /**\r\n * Update the region discovery metadata\r\n *\r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n ServerTelemetryManager.prototype.updateRegionDiscoveryMetadata = function (regionDiscoveryMetadata) {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n };\r\n /**\r\n * Set cache outcome\r\n */\r\n ServerTelemetryManager.prototype.setCacheOutcome = function (cacheOutcome) {\r\n this.cacheOutcome = cacheOutcome;\r\n };\r\n return ServerTelemetryManager;\r\n}());\n\nexport { ServerTelemetryManager };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { AADAuthorityConstants, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nvar UrlString = /** @class */ (function () {\r\n function UrlString(url) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n Object.defineProperty(UrlString.prototype, \"urlString\", {\r\n get: function () {\r\n return this._urlString;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n UrlString.canonicalizeUri = function (url) {\r\n if (url) {\r\n var lowerCaseUrl = url.toLowerCase();\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n }\r\n else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n return lowerCaseUrl;\r\n }\r\n return url;\r\n };\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n UrlString.prototype.validateAsUri = function () {\r\n // Attempts to parse url for uri components\r\n var components;\r\n try {\r\n components = this.getUrlComponents();\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Throw error if uri is insecure.\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n };\r\n /**\r\n * Function to remove query string params from url. Returns the new url.\r\n * @param url\r\n * @param name\r\n */\r\n UrlString.prototype.urlRemoveQueryStringParameter = function (name) {\r\n var regex = new RegExp(\"(\\\\&\" + name + \"=)[^\\&]+\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n // name=value&\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+&\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n // name=value\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n return this.urlString;\r\n };\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url\r\n * @param queryString\r\n */\r\n UrlString.appendQueryString = function (url, queryString) {\r\n if (StringUtils.isEmpty(queryString)) {\r\n return url;\r\n }\r\n return url.indexOf(\"?\") < 0 ? url + \"?\" + queryString : url + \"&\" + queryString;\r\n };\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url\r\n */\r\n UrlString.removeHashFromUrl = function (url) {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n };\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n UrlString.prototype.replaceTenantPath = function (tenantId) {\r\n var urlObject = this.getUrlComponents();\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n };\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlString.prototype.getHash = function () {\r\n return UrlString.parseHash(this.urlString);\r\n };\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n UrlString.prototype.getUrlComponents = function () {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n // If url string does not match regEx, we throw an error\r\n var match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Url component object\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\r\n };\r\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n }\r\n return urlComponents;\r\n };\r\n UrlString.getDomainFromUrl = function (url) {\r\n var regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n var match = url.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + url);\r\n }\r\n return match[2];\r\n };\r\n UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n var url = new UrlString(baseUrl);\r\n var baseComponents = url.getUrlComponents();\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n return relativeUrl;\r\n };\r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\n UrlString.parseHash = function (hashString) {\r\n var hashIndex1 = hashString.indexOf(\"#\");\r\n var hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return \"\";\r\n };\r\n UrlString.constructAuthorityUriFromObject = function (urlObject) {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n };\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n UrlString.getDeserializedHash = function (hash) {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n var parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n };\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n UrlString.hashContainsKnownProperties = function (hash) {\r\n if (StringUtils.isEmpty(hash)) {\r\n return false;\r\n }\r\n var parameters = UrlString.getDeserializedHash(hash);\r\n return !!(parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state);\r\n };\r\n return UrlString;\r\n}());\n\nexport { UrlString };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"]\r\n};\r\nvar OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\nvar OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [\r\n Constants.EMAIL_SCOPE\r\n]);\r\n/**\r\n * Request header names\r\n */\r\nvar HeaderNames;\r\n(function (HeaderNames) {\r\n HeaderNames[\"CONTENT_TYPE\"] = \"Content-Type\";\r\n HeaderNames[\"RETRY_AFTER\"] = \"Retry-After\";\r\n HeaderNames[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n})(HeaderNames || (HeaderNames = {}));\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nvar PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"ID_TOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n PersistentCacheKeys[\"ADAL_ID_TOKEN\"] = \"adal.idtoken\";\r\n PersistentCacheKeys[\"ERROR\"] = \"error\";\r\n PersistentCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT\"] = \"active-account\";\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nvar AADAuthorityConstants;\r\n(function (AADAuthorityConstants) {\r\n AADAuthorityConstants[\"COMMON\"] = \"common\";\r\n AADAuthorityConstants[\"ORGANIZATIONS\"] = \"organizations\";\r\n AADAuthorityConstants[\"CONSUMERS\"] = \"consumers\";\r\n})(AADAuthorityConstants || (AADAuthorityConstants = {}));\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nvar AADServerParamKeys;\r\n(function (AADServerParamKeys) {\r\n AADServerParamKeys[\"CLIENT_ID\"] = \"client_id\";\r\n AADServerParamKeys[\"REDIRECT_URI\"] = \"redirect_uri\";\r\n AADServerParamKeys[\"RESPONSE_TYPE\"] = \"response_type\";\r\n AADServerParamKeys[\"RESPONSE_MODE\"] = \"response_mode\";\r\n AADServerParamKeys[\"GRANT_TYPE\"] = \"grant_type\";\r\n AADServerParamKeys[\"CLAIMS\"] = \"claims\";\r\n AADServerParamKeys[\"SCOPE\"] = \"scope\";\r\n AADServerParamKeys[\"ERROR\"] = \"error\";\r\n AADServerParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n AADServerParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n AADServerParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n AADServerParamKeys[\"REFRESH_TOKEN\"] = \"refresh_token\";\r\n AADServerParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n AADServerParamKeys[\"STATE\"] = \"state\";\r\n AADServerParamKeys[\"NONCE\"] = \"nonce\";\r\n AADServerParamKeys[\"PROMPT\"] = \"prompt\";\r\n AADServerParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n AADServerParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n AADServerParamKeys[\"CODE\"] = \"code\";\r\n AADServerParamKeys[\"CODE_CHALLENGE\"] = \"code_challenge\";\r\n AADServerParamKeys[\"CODE_CHALLENGE_METHOD\"] = \"code_challenge_method\";\r\n AADServerParamKeys[\"CODE_VERIFIER\"] = \"code_verifier\";\r\n AADServerParamKeys[\"CLIENT_REQUEST_ID\"] = \"client-request-id\";\r\n AADServerParamKeys[\"X_CLIENT_SKU\"] = \"x-client-SKU\";\r\n AADServerParamKeys[\"X_CLIENT_VER\"] = \"x-client-VER\";\r\n AADServerParamKeys[\"X_CLIENT_OS\"] = \"x-client-OS\";\r\n AADServerParamKeys[\"X_CLIENT_CPU\"] = \"x-client-CPU\";\r\n AADServerParamKeys[\"X_CLIENT_CURR_TELEM\"] = \"x-client-current-telemetry\";\r\n AADServerParamKeys[\"X_CLIENT_LAST_TELEM\"] = \"x-client-last-telemetry\";\r\n AADServerParamKeys[\"X_MS_LIB_CAPABILITY\"] = \"x-ms-lib-capability\";\r\n AADServerParamKeys[\"POST_LOGOUT_URI\"] = \"post_logout_redirect_uri\";\r\n AADServerParamKeys[\"ID_TOKEN_HINT\"] = \"id_token_hint\";\r\n AADServerParamKeys[\"DEVICE_CODE\"] = \"device_code\";\r\n AADServerParamKeys[\"CLIENT_SECRET\"] = \"client_secret\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION\"] = \"client_assertion\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION_TYPE\"] = \"client_assertion_type\";\r\n AADServerParamKeys[\"TOKEN_TYPE\"] = \"token_type\";\r\n AADServerParamKeys[\"REQ_CNF\"] = \"req_cnf\";\r\n AADServerParamKeys[\"OBO_ASSERTION\"] = \"assertion\";\r\n AADServerParamKeys[\"REQUESTED_TOKEN_USE\"] = \"requested_token_use\";\r\n AADServerParamKeys[\"ON_BEHALF_OF\"] = \"on_behalf_of\";\r\n AADServerParamKeys[\"FOCI\"] = \"foci\";\r\n AADServerParamKeys[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n})(AADServerParamKeys || (AADServerParamKeys = {}));\r\n/**\r\n * Claims request keys\r\n */\r\nvar ClaimsRequestKeys;\r\n(function (ClaimsRequestKeys) {\r\n ClaimsRequestKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ClaimsRequestKeys[\"XMS_CC\"] = \"xms_cc\";\r\n})(ClaimsRequestKeys || (ClaimsRequestKeys = {}));\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nvar PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\"\r\n};\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nvar SSOTypes;\r\n(function (SSOTypes) {\r\n SSOTypes[\"ACCOUNT\"] = \"account\";\r\n SSOTypes[\"SID\"] = \"sid\";\r\n SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"DOMAIN_HINT\"] = \"domain_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nvar CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nvar ResponseMode;\r\n(function (ResponseMode) {\r\n ResponseMode[\"QUERY\"] = \"query\";\r\n ResponseMode[\"FRAGMENT\"] = \"fragment\";\r\n ResponseMode[\"FORM_POST\"] = \"form_post\";\r\n})(ResponseMode || (ResponseMode = {}));\r\n/**\r\n * allowed grant_type\r\n */\r\nvar GrantType;\r\n(function (GrantType) {\r\n GrantType[\"IMPLICIT_GRANT\"] = \"implicit\";\r\n GrantType[\"AUTHORIZATION_CODE_GRANT\"] = \"authorization_code\";\r\n GrantType[\"CLIENT_CREDENTIALS_GRANT\"] = \"client_credentials\";\r\n GrantType[\"RESOURCE_OWNER_PASSWORD_GRANT\"] = \"password\";\r\n GrantType[\"REFRESH_TOKEN_GRANT\"] = \"refresh_token\";\r\n GrantType[\"DEVICE_CODE_GRANT\"] = \"device_code\";\r\n GrantType[\"JWT_BEARER\"] = \"urn:ietf:params:oauth:grant-type:jwt-bearer\";\r\n})(GrantType || (GrantType = {}));\r\n/**\r\n * Account types in Cache\r\n */\r\nvar CacheAccountType;\r\n(function (CacheAccountType) {\r\n CacheAccountType[\"MSSTS_ACCOUNT_TYPE\"] = \"MSSTS\";\r\n CacheAccountType[\"ADFS_ACCOUNT_TYPE\"] = \"ADFS\";\r\n CacheAccountType[\"MSAV1_ACCOUNT_TYPE\"] = \"MSA\";\r\n CacheAccountType[\"GENERIC_ACCOUNT_TYPE\"] = \"Generic\"; // NTLM, Kerberos, FBA, Basic etc\r\n})(CacheAccountType || (CacheAccountType = {}));\r\n/**\r\n * Separators used in cache\r\n */\r\nvar Separators;\r\n(function (Separators) {\r\n Separators[\"CACHE_KEY_SEPARATOR\"] = \"-\";\r\n Separators[\"CLIENT_INFO_SEPARATOR\"] = \".\";\r\n})(Separators || (Separators = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n CredentialType[\"ID_TOKEN\"] = \"IdToken\";\r\n CredentialType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CredentialType[\"ACCESS_TOKEN_WITH_AUTH_SCHEME\"] = \"AccessToken_With_AuthScheme\";\r\n CredentialType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n})(CredentialType || (CredentialType = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CacheSchemaType;\r\n(function (CacheSchemaType) {\r\n CacheSchemaType[\"ACCOUNT\"] = \"Account\";\r\n CacheSchemaType[\"CREDENTIAL\"] = \"Credential\";\r\n CacheSchemaType[\"ID_TOKEN\"] = \"IdToken\";\r\n CacheSchemaType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CacheSchemaType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n CacheSchemaType[\"APP_METADATA\"] = \"AppMetadata\";\r\n CacheSchemaType[\"TEMPORARY\"] = \"TempCache\";\r\n CacheSchemaType[\"TELEMETRY\"] = \"Telemetry\";\r\n CacheSchemaType[\"UNDEFINED\"] = \"Undefined\";\r\n CacheSchemaType[\"THROTTLING\"] = \"Throttling\";\r\n})(CacheSchemaType || (CacheSchemaType = {}));\r\n/**\r\n * Combine all cache types\r\n */\r\nvar CacheType;\r\n(function (CacheType) {\r\n CacheType[CacheType[\"ADFS\"] = 1001] = \"ADFS\";\r\n CacheType[CacheType[\"MSA\"] = 1002] = \"MSA\";\r\n CacheType[CacheType[\"MSSTS\"] = 1003] = \"MSSTS\";\r\n CacheType[CacheType[\"GENERIC\"] = 1004] = \"GENERIC\";\r\n CacheType[CacheType[\"ACCESS_TOKEN\"] = 2001] = \"ACCESS_TOKEN\";\r\n CacheType[CacheType[\"REFRESH_TOKEN\"] = 2002] = \"REFRESH_TOKEN\";\r\n CacheType[CacheType[\"ID_TOKEN\"] = 2003] = \"ID_TOKEN\";\r\n CacheType[CacheType[\"APP_METADATA\"] = 3001] = \"APP_METADATA\";\r\n CacheType[CacheType[\"UNDEFINED\"] = 9999] = \"UNDEFINED\";\r\n})(CacheType || (CacheType = {}));\r\n/**\r\n * More Cache related constants\r\n */\r\nvar APP_METADATA = \"appmetadata\";\r\nvar CLIENT_INFO = \"client_info\";\r\nvar THE_FAMILY_ID = \"1\";\r\nvar AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\nvar AuthorityMetadataSource;\r\n(function (AuthorityMetadataSource) {\r\n AuthorityMetadataSource[\"CONFIG\"] = \"config\";\r\n AuthorityMetadataSource[\"CACHE\"] = \"cache\";\r\n AuthorityMetadataSource[\"NETWORK\"] = \"network\";\r\n})(AuthorityMetadataSource || (AuthorityMetadataSource = {}));\r\nvar SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80,\r\n MAX_LAST_HEADER_BYTES: 330,\r\n MAX_CACHED_ERRORS: 50,\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nvar AuthenticationScheme;\r\n(function (AuthenticationScheme) {\r\n AuthenticationScheme[\"POP\"] = \"pop\";\r\n AuthenticationScheme[\"BEARER\"] = \"Bearer\";\r\n})(AuthenticationScheme || (AuthenticationScheme = {}));\r\n/**\r\n * Constants related to throttling\r\n */\r\nvar ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\nvar Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nvar PasswordGrantConstants;\r\n(function (PasswordGrantConstants) {\r\n PasswordGrantConstants[\"username\"] = \"username\";\r\n PasswordGrantConstants[\"password\"] = \"password\";\r\n})(PasswordGrantConstants || (PasswordGrantConstants = {}));\r\n/**\r\n * Response codes\r\n */\r\nvar ResponseCodes;\r\n(function (ResponseCodes) {\r\n ResponseCodes[ResponseCodes[\"httpSuccess\"] = 200] = \"httpSuccess\";\r\n ResponseCodes[ResponseCodes[\"httpBadRequest\"] = 400] = \"httpBadRequest\";\r\n})(ResponseCodes || (ResponseCodes = {}));\r\n/**\r\n * Region Discovery Sources\r\n */\r\nvar RegionDiscoverySources;\r\n(function (RegionDiscoverySources) {\r\n RegionDiscoverySources[\"FAILED_AUTO_DETECTION\"] = \"1\";\r\n RegionDiscoverySources[\"INTERNAL_CACHE\"] = \"2\";\r\n RegionDiscoverySources[\"ENVIRONMENT_VARIABLE\"] = \"3\";\r\n RegionDiscoverySources[\"IMDS\"] = \"4\";\r\n})(RegionDiscoverySources || (RegionDiscoverySources = {}));\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nvar RegionDiscoveryOutcomes;\r\n(function (RegionDiscoveryOutcomes) {\r\n RegionDiscoveryOutcomes[\"CONFIGURED_MATCHES_DETECTED\"] = \"1\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NO_AUTO_DETECTION\"] = \"2\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NOT_DETECTED\"] = \"3\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_SUCCESSFUL\"] = \"4\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_FAILED\"] = \"5\";\r\n})(RegionDiscoveryOutcomes || (RegionDiscoveryOutcomes = {}));\r\nvar CacheOutcome;\r\n(function (CacheOutcome) {\r\n CacheOutcome[\"NO_CACHE_HIT\"] = \"0\";\r\n CacheOutcome[\"FORCE_REFRESH\"] = \"1\";\r\n CacheOutcome[\"NO_CACHED_ACCESS_TOKEN\"] = \"2\";\r\n CacheOutcome[\"CACHED_ACCESS_TOKEN_EXPIRED\"] = \"3\";\r\n CacheOutcome[\"REFRESH_CACHED_ACCESS_TOKEN\"] = \"4\";\r\n})(CacheOutcome || (CacheOutcome = {}));\n\nexport { AADAuthorityConstants, AADServerParamKeys, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme, AuthorityMetadataSource, CLIENT_INFO, CacheAccountType, CacheOutcome, CacheSchemaType, CacheType, ClaimsRequestKeys, CodeChallengeMethodValues, Constants, CredentialType, Errors, GrantType, HeaderNames, OIDC_DEFAULT_SCOPES, OIDC_SCOPES, PasswordGrantConstants, PersistentCacheKeys, PromptValue, RegionDiscoveryOutcomes, RegionDiscoverySources, ResponseCodes, ResponseMode, SERVER_TELEM_CONSTANTS, SSOTypes, Separators, THE_FAMILY_ID, ThrottlingConstants };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { StringUtils } from './StringUtils.js';\nimport { Constants } from './Constants.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nvar ProtocolUtils = /** @class */ (function () {\r\n function ProtocolUtils() {\r\n }\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState\r\n * @param randomGuid\r\n */\r\n ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {\r\n var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return !StringUtils.isEmpty(userState) ? \"\" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;\r\n };\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n }\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n var stateObj = {\r\n id: cryptoObj.createNewGuid()\r\n };\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n var stateString = JSON.stringify(stateObj);\r\n return cryptoObj.base64Encode(stateString);\r\n };\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.parseRequestState = function (cryptoObj, state) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n }\r\n if (StringUtils.isEmpty(state)) {\r\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n }\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n var splitState = state.split(Constants.RESOURCE_DELIM);\r\n var libraryState = splitState[0];\r\n var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : \"\";\r\n var libraryStateString = cryptoObj.base64Decode(libraryState);\r\n var libraryStateObj = JSON.parse(libraryStateString);\r\n return {\r\n userRequestState: !StringUtils.isEmpty(userState) ? userState : \"\",\r\n libraryState: libraryStateObj\r\n };\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n return ProtocolUtils;\r\n}());\n\nexport { ProtocolUtils };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param authToken\r\n */\r\n StringUtils.decodeAuthToken = function (authToken) {\r\n if (StringUtils.isEmpty(authToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\r\n }\r\n var tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = tokenPartsRegex.exec(authToken);\r\n if (!matches || matches.length < 4) {\r\n throw ClientAuthError.createTokenParsingError(\"Given token is malformed: \" + JSON.stringify(authToken));\r\n }\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n return crackedToken;\r\n };\r\n /**\r\n * Check if a string is empty.\r\n *\r\n * @param str\r\n */\r\n StringUtils.isEmpty = function (str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n };\r\n /**\r\n * Check if stringified object is empty\r\n * @param strObj\r\n */\r\n StringUtils.isEmptyObj = function (strObj) {\r\n if (strObj && !StringUtils.isEmpty(strObj)) {\r\n try {\r\n var obj = JSON.parse(strObj);\r\n return Object.keys(obj).length === 0;\r\n }\r\n catch (e) { }\r\n }\r\n return true;\r\n };\r\n StringUtils.startsWith = function (str, search) {\r\n return str.indexOf(search) === 0;\r\n };\r\n StringUtils.endsWith = function (str, search) {\r\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\r\n };\r\n /**\r\n * Parses string into an object.\r\n *\r\n * @param query\r\n */\r\n StringUtils.queryStringToObject = function (query) {\r\n var match; // Regex for replacing addition symbol with a space\r\n var pl = /\\+/g;\r\n var search = /([^&=]+)=([^&]*)/g;\r\n var decode = function (s) { return decodeURIComponent(s.replace(pl, \" \")); };\r\n var obj = {};\r\n match = search.exec(query);\r\n while (match) {\r\n obj[decode(match[1])] = decode(match[2]);\r\n match = search.exec(query);\r\n }\r\n return obj;\r\n };\r\n /**\r\n * Trims entries in an array.\r\n *\r\n * @param arr\r\n */\r\n StringUtils.trimArrayEntries = function (arr) {\r\n return arr.map(function (entry) { return entry.trim(); });\r\n };\r\n /**\r\n * Removes empty strings from array\r\n * @param arr\r\n */\r\n StringUtils.removeEmptyStringsFromArray = function (arr) {\r\n return arr.filter(function (entry) {\r\n return !StringUtils.isEmpty(entry);\r\n });\r\n };\r\n /**\r\n * Attempts to parse a string into JSON\r\n * @param str\r\n */\r\n StringUtils.jsonParseHelper = function (str) {\r\n try {\r\n return JSON.parse(str);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n * @param input String to match against\r\n */\r\n StringUtils.matchPattern = function (pattern, input) {\r\n /**\r\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n */\r\n var regex = new RegExp(pattern.replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\"));\r\n return regex.test(input);\r\n };\r\n return StringUtils;\r\n}());\n\nexport { StringUtils };\n","/*! @azure/msal-common v4.5.1 2021-08-02 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class which exposes functions for managing date and time operations.\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * return the current time in Unix time (seconds).\r\n */\r\n TimeUtils.nowSeconds = function () {\r\n // Date.getTime() returns in milliseconds.\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * check if a token is expired based on given UTC time in seconds.\r\n * @param expiresOn\r\n */\r\n TimeUtils.isTokenExpired = function (expiresOn, offset) {\r\n // check for access token expiry\r\n var expirationSec = Number(expiresOn) || 0;\r\n var offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\r\n // If current time + offset is greater than token expiration time, then token is expired.\r\n return (offsetCurrentTimeSec > expirationSec);\r\n };\r\n /**\r\n * If the current time is earlier than the time that a token was cached at, we must discard the token\r\n * i.e. The system clock was turned back after acquiring the cached token\r\n * @param cachedAt\r\n * @param offset\r\n */\r\n TimeUtils.wasClockTurnedBack = function (cachedAt) {\r\n var cachedAtSec = Number(cachedAt);\r\n return cachedAtSec > TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Waits for t number of milliseconds\r\n * @param t number\r\n * @param value T\r\n */\r\n TimeUtils.delay = function (t, value) {\r\n return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); });\r\n };\r\n return TimeUtils;\r\n}());\n\nexport { TimeUtils };\n","import { EventEmitter, Component, ElementRef, Input, Output, InjectionToken, NgModule } from '@angular/core';\nimport Gauge from 'svg-gauge';\n\nimport * as ɵngcc0 from '@angular/core';\nclass GaugeDefaults {\n constructor() {\n /**\n * The angle in degrees to start the dial\n */\n this.dialStartAngle = 135;\n /**\n * The angle in degrees to end the dial. This MUST be less than dialStartAngle\n */\n this.dialEndAngle = 45;\n /**\n * The radius of the gauge\n */\n this.dialRadius = 40;\n /**\n * The minimum value for the gauge\n */\n this.min = 0;\n /**\n * The maximum value for the gauge\n */\n this.max = 100;\n /**\n * Whether to show the value at the center of the gauge\n */\n this.showValue = true;\n /**\n * The CSS class of the gauge\n */\n this.gaugeClass = 'gauge';\n /**\n * The CSS class of the gauge's dial\n */\n this.dialClass = 'dial';\n /**\n * The CSS class of the gauge's fill (value dial)\n */\n this.valueDialClass = 'value';\n /**\n * \tThe CSS class of the gauge's text\n */\n this.valueClass = 'value-text';\n /**\n * Whether to animate changing the gauge\n */\n this.animated = false;\n }\n}\n\nclass GaugeComponent {\n constructor(elm, defaults) {\n this.elm = elm;\n this.defaults = defaults;\n /**\n * Called when the gauge is created\n */\n this.gaugeCreated = new EventEmitter();\n }\n ngAfterViewInit() {\n const options = {\n dialStartAngle: this.dialStartAngle,\n dialEndAngle: this.dialEndAngle,\n dialRadius: this.dialRadius,\n min: this.min,\n max: this.max,\n label: this.label,\n showValue: this.showValue,\n gaugeClass: this.gaugeClass,\n dialClass: this.dialClass,\n valueDialClass: this.valueDialClass,\n valueClass: this.valueClass,\n value: this.value,\n color: this.color,\n };\n Object.keys(this.defaults).forEach((optionKey) => {\n if (typeof options[optionKey] === 'undefined') {\n options[optionKey] = this.defaults[optionKey];\n }\n });\n Object.keys(options).forEach((optionKey) => {\n if (typeof options[optionKey] === 'undefined') {\n delete options[optionKey];\n }\n });\n this.gauge = Gauge(this.elm.nativeElement, options);\n this.gaugeCreated.emit({ gauge: this.gauge });\n this.updateValue();\n }\n ngOnChanges(changes) {\n if (changes['value']) {\n this.updateValue();\n }\n }\n updateValue() {\n if (this.gauge) {\n if (this.animated) {\n this.gauge.setValueAnimated(this.value, this.animationDuration);\n }\n else {\n this.gauge.setValue(this.value);\n }\n }\n }\n}\nGaugeComponent.ɵfac = function GaugeComponent_Factory(t) { return new (t || GaugeComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(GaugeDefaults)); };\nGaugeComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: GaugeComponent, selectors: [[\"mwl-gauge\"]], inputs: { dialStartAngle: \"dialStartAngle\", dialEndAngle: \"dialEndAngle\", dialRadius: \"dialRadius\", min: \"min\", max: \"max\", label: \"label\", color: \"color\", showValue: \"showValue\", gaugeClass: \"gaugeClass\", dialClass: \"dialClass\", valueDialClass: \"valueDialClass\", valueClass: \"valueClass\", value: \"value\", animated: \"animated\", animationDuration: \"animationDuration\" }, outputs: { gaugeCreated: \"gaugeCreated\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function GaugeComponent_Template(rf, ctx) { }, encapsulation: 2 });\nGaugeComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: GaugeDefaults }\n];\nGaugeComponent.propDecorators = {\n dialStartAngle: [{ type: Input }],\n dialEndAngle: [{ type: Input }],\n dialRadius: [{ type: Input }],\n min: [{ type: Input }],\n max: [{ type: Input }],\n label: [{ type: Input }],\n color: [{ type: Input }],\n showValue: [{ type: Input }],\n gaugeClass: [{ type: Input }],\n dialClass: [{ type: Input }],\n valueDialClass: [{ type: Input }],\n valueClass: [{ type: Input }],\n value: [{ type: Input }],\n animated: [{ type: Input }],\n animationDuration: [{ type: Input }],\n gaugeCreated: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GaugeComponent, [{\n type: Component,\n args: [{\n selector: 'mwl-gauge',\n template: ''\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: GaugeDefaults }]; }, { gaugeCreated: [{\n type: Output\n }], dialStartAngle: [{\n type: Input\n }], dialEndAngle: [{\n type: Input\n }], dialRadius: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], label: [{\n type: Input\n }], color: [{\n type: Input\n }], showValue: [{\n type: Input\n }], gaugeClass: [{\n type: Input\n }], dialClass: [{\n type: Input\n }], valueDialClass: [{\n type: Input\n }], valueClass: [{\n type: Input\n }], value: [{\n type: Input\n }], animated: [{\n type: Input\n }], animationDuration: [{\n type: Input\n }] }); })();\n\nconst USER_DEFAULTS = new InjectionToken('gauge defaults');\nfunction defaultsFactory(userDefaults) {\n const defaults = new GaugeDefaults();\n Object.assign(defaults, userDefaults);\n return defaults;\n}\nclass GaugeModule {\n static forRoot(userDefaults = {}) {\n return {\n ngModule: GaugeModule,\n providers: [\n {\n provide: USER_DEFAULTS,\n useValue: userDefaults,\n },\n {\n provide: GaugeDefaults,\n useFactory: defaultsFactory,\n deps: [USER_DEFAULTS],\n },\n ],\n };\n }\n}\nGaugeModule.ɵfac = function GaugeModule_Factory(t) { return new (t || GaugeModule)(); };\nGaugeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: GaugeModule });\nGaugeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GaugeModule, [{\n type: NgModule,\n args: [{\n declarations: [GaugeComponent],\n exports: [GaugeComponent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(GaugeModule, { declarations: [GaugeComponent], exports: [GaugeComponent] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { GaugeModule, USER_DEFAULTS, defaultsFactory, GaugeComponent as ɵa, GaugeDefaults as ɵb };\n\n","import { __decorate } from 'tslib';\nimport { Pipe, NgModule } from '@angular/core';\n\nimport * as ɵngcc0 from '@angular/core';\nfunction isUndefined(value) {\r\n return typeof value === 'undefined';\r\n}\r\nfunction isNull(value) {\r\n return value === null;\r\n}\r\nfunction isNumber(value) {\r\n return typeof value === 'number';\r\n}\r\nfunction isNumberFinite(value) {\r\n return isNumber(value) && isFinite(value);\r\n}\r\n// Not strict positive\r\nfunction isPositive(value) {\r\n return value >= 0;\r\n}\r\nfunction isInteger(value) {\r\n // No rest, is an integer\r\n return value % 1 === 0;\r\n}\r\nfunction isNil(value) {\r\n return value === null || typeof value === 'undefined';\r\n}\r\nfunction isString(value) {\r\n return typeof value === 'string';\r\n}\r\nfunction isObject(value) {\r\n return value !== null && typeof value === 'object';\r\n}\r\nfunction isArray(value) {\r\n return Array.isArray(value);\r\n}\r\nfunction isFunction(value) {\r\n return typeof value === 'function';\r\n}\r\nfunction toDecimal(value, decimal) {\r\n return Math.round(value * Math.pow(10, decimal)) / Math.pow(10, decimal);\r\n}\r\nfunction upperFirst(value) {\r\n return value.slice(0, 1).toUpperCase() + value.slice(1);\r\n}\r\nfunction createRound(method) {\r\n // Math to suppress error\r\n const func = Math[method];\r\n return function (value, precision = 0) {\r\n if (typeof value === 'string') {\r\n throw new TypeError('Rounding method needs a number');\r\n }\r\n if (typeof precision !== 'number' || isNaN(precision)) {\r\n precision = 0;\r\n }\r\n if (precision) {\r\n let pair = `${value}e`.split('e');\r\n const val = func(`${pair[0]}e` + (+pair[1] + precision));\r\n pair = `${val}e`.split('e');\r\n return +(pair[0] + 'e' + (+pair[1] - precision));\r\n }\r\n return func(value);\r\n };\r\n}\r\nfunction leftPad(str, len = 0, ch = ' ') {\r\n str = String(str);\r\n ch = toString(ch);\r\n let i = -1;\r\n const length = len - str.length;\r\n while (++i < length && str.length + ch.length <= len) {\r\n str = ch + str;\r\n }\r\n return str;\r\n}\r\nfunction rightPad(str, len = 0, ch = ' ') {\r\n str = String(str);\r\n ch = toString(ch);\r\n let i = -1;\r\n const length = len - str.length;\r\n while (++i < length && str.length + ch.length <= len) {\r\n str += ch;\r\n }\r\n return str;\r\n}\r\nfunction toString(value) {\r\n return `${value}`;\r\n}\r\nfunction pad(str, len = 0, ch = ' ') {\r\n str = String(str);\r\n ch = toString(ch);\r\n let i = -1;\r\n const length = len - str.length;\r\n let left = true;\r\n while (++i < length) {\r\n const l = str.length + ch.length <= len ? str.length + ch.length : str.length + 1;\r\n if (left) {\r\n str = leftPad(str, l, ch);\r\n }\r\n else {\r\n str = rightPad(str, l, ch);\r\n }\r\n left = !left;\r\n }\r\n return str;\r\n}\r\nfunction flatten(input, index = 0) {\r\n if (index >= input.length) {\r\n return input;\r\n }\r\n if (isArray(input[index])) {\r\n return flatten(input.slice(0, index).concat(input[index], input.slice(index + 1)), index);\r\n }\r\n return flatten(input, index + 1);\r\n}\r\nfunction getProperty(value, key) {\r\n if (isNil(value) || !isObject(value)) {\r\n return undefined;\r\n }\r\n const keys = key.split('.');\r\n let result = value[keys.shift()];\r\n for (const key of keys) {\r\n if (isNil(result) || !isObject(result)) {\r\n return undefined;\r\n }\r\n result = result[key];\r\n }\r\n return result;\r\n}\r\nfunction sum(input, initial = 0) {\r\n return input.reduce((previous, current) => previous + current, initial);\r\n}\r\n// http://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-array-in-javascript\r\nfunction shuffle(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n const copy = [...input];\r\n for (let i = copy.length; i; --i) {\r\n const j = Math.floor(Math.random() * i);\r\n const x = copy[i - 1];\r\n copy[i - 1] = copy[j];\r\n copy[j] = x;\r\n }\r\n return copy;\r\n}\r\nfunction deepIndexOf(collection, value) {\r\n let index = -1;\r\n const length = collection.length;\r\n while (++index < length) {\r\n if (deepEqual(value, collection[index])) {\r\n return index;\r\n }\r\n }\r\n return -1;\r\n}\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (!(typeof a === 'object' && typeof b === 'object')) {\r\n return a === b;\r\n }\r\n const keysA = Object.keys(a);\r\n const keysB = Object.keys(b);\r\n if (keysA.length !== keysB.length) {\r\n return false;\r\n }\r\n // Test for A's keys different from B.\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n for (let i = 0; i < keysA.length; i++) {\r\n const key = keysA[i];\r\n if (!hasOwn.call(b, keysA[i]) || !deepEqual(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isDeepObject(object) {\r\n return object.__isDeepObject__;\r\n}\r\nfunction wrapDeep(object) {\r\n return new DeepWrapper(object);\r\n}\r\nfunction unwrapDeep(object) {\r\n if (isDeepObject(object)) {\r\n return object.data;\r\n }\r\n return object;\r\n}\r\nclass DeepWrapper {\r\n constructor(data) {\r\n this.data = data;\r\n this.__isDeepObject__ = true;\r\n }\r\n}\r\nfunction count(input) {\r\n if (!isArray(input) && !isObject(input) && !isString(input)) {\r\n return input;\r\n }\r\n if (isObject(input)) {\r\n return Object.keys(input).map(value => input[value]).length;\r\n }\r\n return input.length;\r\n}\r\nfunction empty(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n return input.length === 0;\r\n}\r\nfunction every(input, predicate) {\r\n if (!isArray(input) || !predicate) {\r\n return input;\r\n }\r\n let result = true;\r\n let i = -1;\r\n while (++i < input.length && result) {\r\n result = predicate(input[i], i, input);\r\n }\r\n return result;\r\n}\r\nfunction takeUntil(input, predicate) {\r\n let i = -1;\r\n const result = [];\r\n while (++i < input.length && !predicate(input[i], i, input)) {\r\n result[i] = input[i];\r\n }\r\n return result;\r\n}\r\nfunction takeWhile(input, predicate) {\r\n return takeUntil(input, (item, index, collection) => !predicate(item, index, collection));\r\n}\n\nlet GroupByPipe = class GroupByPipe {\r\n transform(input, prop) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n const arr = {};\r\n for (const value of input) {\r\n const field = getProperty(value, prop);\r\n if (isUndefined(arr[field])) {\r\n arr[field] = [];\r\n }\r\n arr[field].push(value);\r\n }\r\n return Object.keys(arr).map(key => ({ key, value: arr[key] }));\r\n }\r\n};\nGroupByPipe.ɵfac = function GroupByPipe_Factory(t) { return new (t || GroupByPipe)(); };\nGroupByPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"groupBy\", type: GroupByPipe, pure: true });\r\nlet NgGroupByPipeModule = class NgGroupByPipeModule {\r\n};\nNgGroupByPipeModule.ɵfac = function NgGroupByPipeModule_Factory(t) { return new (t || NgGroupByPipeModule)(); };\nNgGroupByPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgGroupByPipeModule });\nNgGroupByPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet MaxPipe = class MaxPipe {\r\n transform(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n if (input.length === 0) {\r\n return undefined;\r\n }\r\n let max = input[0];\r\n input.forEach((value) => {\r\n if (max < value) {\r\n max = value;\r\n }\r\n });\r\n return max;\r\n }\r\n};\nMaxPipe.ɵfac = function MaxPipe_Factory(t) { return new (t || MaxPipe)(); };\nMaxPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"max\", type: MaxPipe, pure: true });\r\nlet NgMaxPipeModule = class NgMaxPipeModule {\r\n};\nNgMaxPipeModule.ɵfac = function NgMaxPipeModule_Factory(t) { return new (t || NgMaxPipeModule)(); };\nNgMaxPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgMaxPipeModule });\nNgMaxPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet MeanPipe = class MeanPipe {\r\n transform(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n const count = input.length;\r\n if (count === 0) {\r\n return undefined;\r\n }\r\n return sum(input) / count;\r\n }\r\n};\nMeanPipe.ɵfac = function MeanPipe_Factory(t) { return new (t || MeanPipe)(); };\nMeanPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"mean\", type: MeanPipe, pure: true });\r\nlet NgMeanPipeModule = class NgMeanPipeModule {\r\n};\nNgMeanPipeModule.ɵfac = function NgMeanPipeModule_Factory(t) { return new (t || NgMeanPipeModule)(); };\nNgMeanPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgMeanPipeModule });\nNgMeanPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet MinPipe = class MinPipe {\r\n transform(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n if (input.length === 0) {\r\n return undefined;\r\n }\r\n let min = input[0];\r\n input.forEach((value) => {\r\n if (min > value) {\r\n min = value;\r\n }\r\n });\r\n return min;\r\n }\r\n};\nMinPipe.ɵfac = function MinPipe_Factory(t) { return new (t || MinPipe)(); };\nMinPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"min\", type: MinPipe, pure: true });\r\nlet NgMinPipeModule = class NgMinPipeModule {\r\n};\nNgMinPipeModule.ɵfac = function NgMinPipeModule_Factory(t) { return new (t || NgMinPipeModule)(); };\nNgMinPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgMinPipeModule });\nNgMinPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet SumPipe = class SumPipe {\r\n transform(input) {\r\n return !isArray(input) ? input : sum(input);\r\n }\r\n};\nSumPipe.ɵfac = function SumPipe_Factory(t) { return new (t || SumPipe)(); };\nSumPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"sum\", type: SumPipe, pure: true });\r\nlet NgSumPipeModule = class NgSumPipeModule {\r\n};\nNgSumPipeModule.ɵfac = function NgSumPipeModule_Factory(t) { return new (t || NgSumPipeModule)(); };\nNgSumPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgSumPipeModule });\nNgSumPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet NgAggregatePipesModule = class NgAggregatePipesModule {\r\n};\nNgAggregatePipesModule.ɵfac = function NgAggregatePipesModule_Factory(t) { return new (t || NgAggregatePipesModule)(); };\nNgAggregatePipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgAggregatePipesModule });\nNgAggregatePipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[NgGroupByPipeModule, NgMaxPipeModule, NgMeanPipeModule, NgMinPipeModule, NgSumPipeModule]] });\n\nlet EmptyPipe = class EmptyPipe {\r\n transform(input) {\r\n return empty(input);\r\n }\r\n};\nEmptyPipe.ɵfac = function EmptyPipe_Factory(t) { return new (t || EmptyPipe)(); };\nEmptyPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"empty\", type: EmptyPipe, pure: true });\r\nlet NgEmptyPipeModule = class NgEmptyPipeModule {\r\n};\nNgEmptyPipeModule.ɵfac = function NgEmptyPipeModule_Factory(t) { return new (t || NgEmptyPipeModule)(); };\nNgEmptyPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgEmptyPipeModule });\nNgEmptyPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet HeadPipe = class HeadPipe {\r\n transform(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n // Will return undefined if length is 0\r\n return input[0];\r\n }\r\n};\nHeadPipe.ɵfac = function HeadPipe_Factory(t) { return new (t || HeadPipe)(); };\nHeadPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"head\", type: HeadPipe, pure: true });\r\nlet NgHeadPipeModule = class NgHeadPipeModule {\r\n};\nNgHeadPipeModule.ɵfac = function NgHeadPipeModule_Factory(t) { return new (t || NgHeadPipeModule)(); };\nNgHeadPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgHeadPipeModule });\nNgHeadPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet InitialPipe = class InitialPipe {\r\n transform(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n return input.slice(0, input.length - 1);\r\n }\r\n};\nInitialPipe.ɵfac = function InitialPipe_Factory(t) { return new (t || InitialPipe)(); };\nInitialPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"initial\", type: InitialPipe, pure: true });\r\nlet NgInitialPipeModule = class NgInitialPipeModule {\r\n};\nNgInitialPipeModule.ɵfac = function NgInitialPipeModule_Factory(t) { return new (t || NgInitialPipeModule)(); };\nNgInitialPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgInitialPipeModule });\nNgInitialPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet LastPipe = class LastPipe {\r\n transform(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n // Returns undefined if empty\r\n return input[input.length - 1];\r\n }\r\n};\nLastPipe.ɵfac = function LastPipe_Factory(t) { return new (t || LastPipe)(); };\nLastPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"last\", type: LastPipe, pure: true });\r\nlet NgLastPipeModule = class NgLastPipeModule {\r\n};\nNgLastPipeModule.ɵfac = function NgLastPipeModule_Factory(t) { return new (t || NgLastPipeModule)(); };\nNgLastPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgLastPipeModule });\nNgLastPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet JoinPipe = class JoinPipe {\r\n transform(input, character = '') {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n return input.join(character);\r\n }\r\n};\nJoinPipe.ɵfac = function JoinPipe_Factory(t) { return new (t || JoinPipe)(); };\nJoinPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"join\", type: JoinPipe, pure: true });\r\nlet NgJoinPipeModule = class NgJoinPipeModule {\r\n};\nNgJoinPipeModule.ɵfac = function NgJoinPipeModule_Factory(t) { return new (t || NgJoinPipeModule)(); };\nNgJoinPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgJoinPipeModule });\nNgJoinPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet TailPipe = class TailPipe {\r\n transform(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n return input.slice(1, input.length);\r\n }\r\n};\nTailPipe.ɵfac = function TailPipe_Factory(t) { return new (t || TailPipe)(); };\nTailPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"tail\", type: TailPipe, pure: true });\r\nlet NgTailPipeModule = class NgTailPipeModule {\r\n};\nNgTailPipeModule.ɵfac = function NgTailPipeModule_Factory(t) { return new (t || NgTailPipeModule)(); };\nNgTailPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTailPipeModule });\nNgTailPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet UniqPipe = class UniqPipe {\r\n transform(input) {\r\n if (!isArray(input) && !isDeepObject(input)) {\r\n return input;\r\n }\r\n if (isDeepObject(input)) {\r\n const unwrappedInput = unwrapDeep(input);\r\n if (!isArray(unwrappedInput)) {\r\n return unwrappedInput;\r\n }\r\n return unwrappedInput.filter((value, index) => deepIndexOf(unwrappedInput, value) === index);\r\n }\r\n return input.filter((value, index) => input.indexOf(value) === index);\r\n }\r\n};\nUniqPipe.ɵfac = function UniqPipe_Factory(t) { return new (t || UniqPipe)(); };\nUniqPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"uniq\", type: UniqPipe, pure: true });\r\nlet NgUniqPipeModule = class NgUniqPipeModule {\r\n};\nNgUniqPipeModule.ɵfac = function NgUniqPipeModule_Factory(t) { return new (t || NgUniqPipeModule)(); };\nNgUniqPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgUniqPipeModule });\nNgUniqPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet WithoutPipe = class WithoutPipe {\r\n transform(input, ...args) {\r\n if (!isArray(input) && !isDeepObject(input)) {\r\n return input;\r\n }\r\n if (isDeepObject(input)) {\r\n const unwrappedInput = unwrapDeep(input);\r\n if (!isArray(unwrappedInput)) {\r\n return unwrappedInput;\r\n }\r\n return unwrappedInput.filter((value) => deepIndexOf(args, value) === -1);\r\n }\r\n return input.filter((value) => args.indexOf(value) === -1);\r\n }\r\n};\nWithoutPipe.ɵfac = function WithoutPipe_Factory(t) { return new (t || WithoutPipe)(); };\nWithoutPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"without\", type: WithoutPipe, pure: true });\r\nlet NgWithoutPipeModule = class NgWithoutPipeModule {\r\n};\nNgWithoutPipeModule.ɵfac = function NgWithoutPipeModule_Factory(t) { return new (t || NgWithoutPipeModule)(); };\nNgWithoutPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgWithoutPipeModule });\nNgWithoutPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet MapPipe = class MapPipe {\r\n transform(input, fn) {\r\n if (!isArray(input) || !fn) {\r\n return input;\r\n }\r\n return input.map(fn);\r\n }\r\n};\nMapPipe.ɵfac = function MapPipe_Factory(t) { return new (t || MapPipe)(); };\nMapPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"map\", type: MapPipe, pure: true });\r\nlet NgMapPipeModule = class NgMapPipeModule {\r\n};\nNgMapPipeModule.ɵfac = function NgMapPipeModule_Factory(t) { return new (t || NgMapPipeModule)(); };\nNgMapPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgMapPipeModule });\nNgMapPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet WherePipe = class WherePipe {\r\n /**\r\n * Support a function or a value or the shorthand ['key', value] like the lodash shorthand.\r\n */\r\n transform(input, fn) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n if (isFunction(fn)) {\r\n return input.filter(fn);\r\n }\r\n else if (isArray(fn)) {\r\n const [key, value] = fn;\r\n return input.filter((item) => getProperty(item, key) === value);\r\n }\r\n else if (fn) {\r\n return input.filter((item) => item === fn);\r\n }\r\n else {\r\n return input;\r\n }\r\n }\r\n};\nWherePipe.ɵfac = function WherePipe_Factory(t) { return new (t || WherePipe)(); };\nWherePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"where\", type: WherePipe, pure: true });\r\nlet NgWherePipeModule = class NgWherePipeModule {\r\n};\nNgWherePipeModule.ɵfac = function NgWherePipeModule_Factory(t) { return new (t || NgWherePipeModule)(); };\nNgWherePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgWherePipeModule });\nNgWherePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nvar FirstOrDefaultPipe_1;\r\nlet FirstOrDefaultPipe = FirstOrDefaultPipe_1 = class FirstOrDefaultPipe {\r\n static find(input, predicate, defaultValue) {\r\n let found = false;\r\n let result;\r\n let i = -1;\r\n while (!found && ++i < input.length) {\r\n found = predicate(input[i], i, input);\r\n }\r\n if (found) {\r\n result = input[i];\r\n }\r\n if (typeof result === 'undefined' && typeof defaultValue !== 'undefined') {\r\n result = defaultValue;\r\n }\r\n return result;\r\n }\r\n transform(input, predicate, defaultValue) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n if (isFunction(predicate)) {\r\n return FirstOrDefaultPipe_1.find(input, predicate, defaultValue);\r\n }\r\n else if (isArray(predicate)) {\r\n const [key, value] = predicate;\r\n return FirstOrDefaultPipe_1.find(input, (item) => getProperty(item, key) === value, defaultValue);\r\n }\r\n else if (predicate) {\r\n return FirstOrDefaultPipe_1.find(input, item => item === predicate, defaultValue);\r\n }\r\n else {\r\n return input;\r\n }\r\n }\r\n};\nFirstOrDefaultPipe.ɵfac = function FirstOrDefaultPipe_Factory(t) { return new (t || FirstOrDefaultPipe)(); };\nFirstOrDefaultPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"firstOrDefault\", type: FirstOrDefaultPipe, pure: true });\r\nlet NgFirstOrDefaultPipeModule = class NgFirstOrDefaultPipeModule {\r\n};\nNgFirstOrDefaultPipeModule.ɵfac = function NgFirstOrDefaultPipeModule_Factory(t) { return new (t || NgFirstOrDefaultPipeModule)(); };\nNgFirstOrDefaultPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgFirstOrDefaultPipeModule });\nNgFirstOrDefaultPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet RangePipe = class RangePipe {\r\n transform(_input, size = 0, start = 1, step = 1) {\r\n const range = [];\r\n for (let length = 0; length < size; ++length) {\r\n range.push(start);\r\n start += step;\r\n }\r\n return range;\r\n }\r\n};\nRangePipe.ɵfac = function RangePipe_Factory(t) { return new (t || RangePipe)(); };\nRangePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"range\", type: RangePipe, pure: true });\r\nlet NgRangePipeModule = class NgRangePipeModule {\r\n};\nNgRangePipeModule.ɵfac = function NgRangePipeModule_Factory(t) { return new (t || NgRangePipeModule)(); };\nNgRangePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgRangePipeModule });\nNgRangePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet PluckPipe = class PluckPipe {\r\n transform(input, key) {\r\n if (!isArray(input) || !key) {\r\n return input;\r\n }\r\n return input.map((value) => {\r\n return getProperty(value, key);\r\n });\r\n }\r\n};\nPluckPipe.ɵfac = function PluckPipe_Factory(t) { return new (t || PluckPipe)(); };\nPluckPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"pluck\", type: PluckPipe, pure: true });\r\nlet NgPluckPipeModule = class NgPluckPipeModule {\r\n};\nNgPluckPipeModule.ɵfac = function NgPluckPipeModule_Factory(t) { return new (t || NgPluckPipeModule)(); };\nNgPluckPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgPluckPipeModule });\nNgPluckPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet ReversePipe = class ReversePipe {\r\n transform(input) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n return [...input].reverse();\r\n }\r\n};\nReversePipe.ɵfac = function ReversePipe_Factory(t) { return new (t || ReversePipe)(); };\nReversePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"reverse\", type: ReversePipe, pure: true });\r\nlet NgReversePipeModule = class NgReversePipeModule {\r\n};\nNgReversePipeModule.ɵfac = function NgReversePipeModule_Factory(t) { return new (t || NgReversePipeModule)(); };\nNgReversePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgReversePipeModule });\nNgReversePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nvar OrderByPipe_1;\r\nlet OrderByPipe = OrderByPipe_1 = class OrderByPipe {\r\n static _orderBy(a, b) {\r\n if (a instanceof Date && b instanceof Date) {\r\n return a < b ? -1 : a > b ? 1 : 0;\r\n }\r\n const floatA = parseFloat(a);\r\n const floatB = parseFloat(b);\r\n if (typeof a === 'string' && typeof b === 'string' && (isNaN(floatA) || isNaN(floatB))) {\r\n const lowerA = a.toLowerCase();\r\n const lowerB = b.toLowerCase();\r\n return lowerA < lowerB ? -1 : lowerA > lowerB ? 1 : 0;\r\n }\r\n return floatA < floatB ? -1 : floatA > floatB ? 1 : 0;\r\n }\r\n transform(input, config = '+') {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n const configIsArray = isArray(config);\r\n // If config === 'param' OR ['param']\r\n if (!configIsArray || (configIsArray && config.length === 1)) {\r\n const propertyToCheck = configIsArray ? config[0] : config;\r\n const first = propertyToCheck.substr(0, 1);\r\n const desc = first === '-'; // First character is '-'\r\n // Basic array (if only + or - is present)\r\n if (!propertyToCheck || propertyToCheck === '-' || propertyToCheck === '+') {\r\n return [...input].sort((a, b) => {\r\n const comparator = OrderByPipe_1._orderBy(a, b);\r\n return desc ? -comparator : comparator;\r\n });\r\n }\r\n else {\r\n // If contains + or -, substring the property\r\n const property = first === '+' || desc ? propertyToCheck.substr(1) : propertyToCheck;\r\n return [...input].sort((a, b) => {\r\n const comparator = OrderByPipe_1._orderBy(a[property], b[property]);\r\n return desc ? -comparator : comparator;\r\n });\r\n }\r\n }\r\n else {\r\n // Config is an array of property\r\n return [...input].sort((a, b) => {\r\n for (let i = 0; i < config.length; ++i) {\r\n const first = config[i].substr(0, 1);\r\n const desc = first === '-';\r\n const property = first === '+' || desc ? config[i].substr(1) : config[i];\r\n const comparator = OrderByPipe_1._orderBy(a[property], b[property]);\r\n const comparison = desc ? -comparator : comparator;\r\n if (comparison !== 0) {\r\n return comparison;\r\n }\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n};\nOrderByPipe.ɵfac = function OrderByPipe_Factory(t) { return new (t || OrderByPipe)(); };\nOrderByPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"orderBy\", type: OrderByPipe, pure: true });\r\nlet NgOrderByPipeModule = class NgOrderByPipeModule {\r\n};\nNgOrderByPipeModule.ɵfac = function NgOrderByPipeModule_Factory(t) { return new (t || NgOrderByPipeModule)(); };\nNgOrderByPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgOrderByPipeModule });\nNgOrderByPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet CountPipe = class CountPipe {\r\n transform(input) {\r\n return count(input);\r\n }\r\n};\nCountPipe.ɵfac = function CountPipe_Factory(t) { return new (t || CountPipe)(); };\nCountPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"count\", type: CountPipe, pure: true });\r\nlet NgCountPipeModule = class NgCountPipeModule {\r\n};\nNgCountPipeModule.ɵfac = function NgCountPipeModule_Factory(t) { return new (t || NgCountPipeModule)(); };\nNgCountPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgCountPipeModule });\nNgCountPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet SomePipe = class SomePipe {\r\n transform(input, predicate) {\r\n if (!isArray(input) || !predicate) {\r\n return input;\r\n }\r\n let result = false;\r\n let i = -1;\r\n while (++i < input.length && !result) {\r\n result = predicate(input[i], i, input);\r\n }\r\n return result;\r\n }\r\n};\nSomePipe.ɵfac = function SomePipe_Factory(t) { return new (t || SomePipe)(); };\nSomePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"some\", type: SomePipe, pure: true });\r\nlet NgSomePipeModule = class NgSomePipeModule {\r\n};\nNgSomePipeModule.ɵfac = function NgSomePipeModule_Factory(t) { return new (t || NgSomePipeModule)(); };\nNgSomePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgSomePipeModule });\nNgSomePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet EveryPipe = class EveryPipe {\r\n transform(input, predicate) {\r\n return every(input, predicate);\r\n }\r\n};\nEveryPipe.ɵfac = function EveryPipe_Factory(t) { return new (t || EveryPipe)(); };\nEveryPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"every\", type: EveryPipe, pure: true });\r\nlet NgEveryPipeModule = class NgEveryPipeModule {\r\n};\nNgEveryPipeModule.ɵfac = function NgEveryPipeModule_Factory(t) { return new (t || NgEveryPipeModule)(); };\nNgEveryPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgEveryPipeModule });\nNgEveryPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet ShufflePipe = class ShufflePipe {\r\n transform(input) {\r\n return shuffle(input);\r\n }\r\n};\nShufflePipe.ɵfac = function ShufflePipe_Factory(t) { return new (t || ShufflePipe)(); };\nShufflePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"shuffle\", type: ShufflePipe, pure: true });\r\nlet NgShufflePipeModule = class NgShufflePipeModule {\r\n};\nNgShufflePipeModule.ɵfac = function NgShufflePipeModule_Factory(t) { return new (t || NgShufflePipeModule)(); };\nNgShufflePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgShufflePipeModule });\nNgShufflePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet TakePipe = class TakePipe {\r\n transform(input, quantity) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n return input.slice(0, quantity || 1);\r\n }\r\n};\nTakePipe.ɵfac = function TakePipe_Factory(t) { return new (t || TakePipe)(); };\nTakePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"take\", type: TakePipe, pure: true });\r\nlet NgTakePipeModule = class NgTakePipeModule {\r\n};\nNgTakePipeModule.ɵfac = function NgTakePipeModule_Factory(t) { return new (t || NgTakePipeModule)(); };\nNgTakePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTakePipeModule });\nNgTakePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet DropPipe = class DropPipe {\r\n transform(input, quantity) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n return input.slice(quantity || 1, input.lenth);\r\n }\r\n};\nDropPipe.ɵfac = function DropPipe_Factory(t) { return new (t || DropPipe)(); };\nDropPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"drop\", type: DropPipe, pure: true });\r\nlet NgDropPipeModule = class NgDropPipeModule {\r\n};\nNgDropPipeModule.ɵfac = function NgDropPipeModule_Factory(t) { return new (t || NgDropPipeModule)(); };\nNgDropPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgDropPipeModule });\nNgDropPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet DeepPipe = class DeepPipe {\r\n transform(value) {\r\n if (isDeepObject(value)) {\r\n return value;\r\n }\r\n return wrapDeep(value);\r\n }\r\n};\nDeepPipe.ɵfac = function DeepPipe_Factory(t) { return new (t || DeepPipe)(); };\nDeepPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"deep\", type: DeepPipe, pure: true });\r\nlet NgDeepPipeModule = class NgDeepPipeModule {\r\n};\nNgDeepPipeModule.ɵfac = function NgDeepPipeModule_Factory(t) { return new (t || NgDeepPipeModule)(); };\nNgDeepPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgDeepPipeModule });\nNgDeepPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet ChunkPipe = class ChunkPipe {\r\n transform(input, size = 1) {\r\n if (!isArray(input)) {\r\n return input;\r\n }\r\n return [].concat.apply([], input.map((_elem, i) => {\r\n return i % size ? [] : [input.slice(i, i + size)];\r\n }));\r\n }\r\n};\nChunkPipe.ɵfac = function ChunkPipe_Factory(t) { return new (t || ChunkPipe)(); };\nChunkPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"chunk\", type: ChunkPipe, pure: true });\r\nlet NgChunkPipeModule = class NgChunkPipeModule {\r\n};\nNgChunkPipeModule.ɵfac = function NgChunkPipeModule_Factory(t) { return new (t || NgChunkPipeModule)(); };\nNgChunkPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgChunkPipeModule });\nNgChunkPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet FlattenPipe = class FlattenPipe {\r\n transform(input) {\r\n const isDeep = isDeepObject(input);\r\n if (!isArray(input) && !isDeep) {\r\n return input;\r\n }\r\n if (isDeep) {\r\n const unwrapped = unwrapDeep(input);\r\n if (!isArray(unwrapped)) {\r\n return unwrapped;\r\n }\r\n return flatten(unwrapped, 0);\r\n }\r\n return [].concat.apply([], input);\r\n }\r\n};\nFlattenPipe.ɵfac = function FlattenPipe_Factory(t) { return new (t || FlattenPipe)(); };\nFlattenPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"flatten\", type: FlattenPipe, pure: true });\r\nlet NgFlattenPipeModule = class NgFlattenPipeModule {\r\n};\nNgFlattenPipeModule.ɵfac = function NgFlattenPipeModule_Factory(t) { return new (t || NgFlattenPipeModule)(); };\nNgFlattenPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgFlattenPipeModule });\nNgFlattenPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IntersectionPipe = class IntersectionPipe {\r\n transform(a, b) {\r\n if ((!isArray(a) && !isDeepObject(a)) || !isArray(b)) {\r\n return [];\r\n }\r\n if (isDeepObject(a)) {\r\n const unwrapped = unwrapDeep(a);\r\n if (!isArray(unwrapped)) {\r\n return [];\r\n }\r\n return unwrapped.reduce((intersection, value) => intersection.concat(deepIndexOf(b, value) !== -1 && deepIndexOf(intersection, value) === -1 ? value : []), []);\r\n }\r\n return a.reduce((intersection, value) => intersection.concat(b.indexOf(value) !== -1 && intersection.indexOf(value) === -1 ? value : []), []);\r\n }\r\n};\nIntersectionPipe.ɵfac = function IntersectionPipe_Factory(t) { return new (t || IntersectionPipe)(); };\nIntersectionPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"intersection\", type: IntersectionPipe, pure: true });\r\nlet NgIntersectionPipeModule = class NgIntersectionPipeModule {\r\n};\nNgIntersectionPipeModule.ɵfac = function NgIntersectionPipeModule_Factory(t) { return new (t || NgIntersectionPipeModule)(); };\nNgIntersectionPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIntersectionPipeModule });\nNgIntersectionPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet UnionPipe = class UnionPipe {\r\n transform(a, b) {\r\n if ((!isArray(a) && !isDeepObject(a)) || !isArray(b)) {\r\n return [];\r\n }\r\n if (isDeepObject(a)) {\r\n const unwrapped = unwrapDeep(a);\r\n if (!isArray(unwrapped)) {\r\n return [];\r\n }\r\n return []\r\n .concat(unwrapped)\r\n .concat(b)\r\n .filter((value, index, input) => deepIndexOf(input, value) === index);\r\n }\r\n return []\r\n .concat(a)\r\n .concat(b)\r\n .filter((value, index, input) => input.indexOf(value) === index);\r\n }\r\n};\nUnionPipe.ɵfac = function UnionPipe_Factory(t) { return new (t || UnionPipe)(); };\nUnionPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"union\", type: UnionPipe, pure: true });\r\nlet NgUnionPipeModule = class NgUnionPipeModule {\r\n};\nNgUnionPipeModule.ɵfac = function NgUnionPipeModule_Factory(t) { return new (t || NgUnionPipeModule)(); };\nNgUnionPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgUnionPipeModule });\nNgUnionPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet TakeWhilePipe = class TakeWhilePipe {\r\n transform(input, predicate) {\r\n if (!isArray(input) || isNil(predicate)) {\r\n return input;\r\n }\r\n return takeWhile(input, predicate);\r\n }\r\n};\nTakeWhilePipe.ɵfac = function TakeWhilePipe_Factory(t) { return new (t || TakeWhilePipe)(); };\nTakeWhilePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"takeWhile\", type: TakeWhilePipe, pure: true });\r\nlet NgTakeWhilePipeModule = class NgTakeWhilePipeModule {\r\n};\nNgTakeWhilePipeModule.ɵfac = function NgTakeWhilePipeModule_Factory(t) { return new (t || NgTakeWhilePipeModule)(); };\nNgTakeWhilePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTakeWhilePipeModule });\nNgTakeWhilePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet TakeUntilPipe = class TakeUntilPipe {\r\n transform(input, predicate) {\r\n if (!isArray(input) || isNil(predicate)) {\r\n return input;\r\n }\r\n return takeUntil(input, predicate);\r\n }\r\n};\nTakeUntilPipe.ɵfac = function TakeUntilPipe_Factory(t) { return new (t || TakeUntilPipe)(); };\nTakeUntilPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"takeUntil\", type: TakeUntilPipe, pure: true });\r\nlet NgTakeUntilPipeModule = class NgTakeUntilPipeModule {\r\n};\nNgTakeUntilPipeModule.ɵfac = function NgTakeUntilPipeModule_Factory(t) { return new (t || NgTakeUntilPipeModule)(); };\nNgTakeUntilPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTakeUntilPipeModule });\nNgTakeUntilPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet NgArrayPipesModule = class NgArrayPipesModule {\r\n};\nNgArrayPipesModule.ɵfac = function NgArrayPipesModule_Factory(t) { return new (t || NgArrayPipesModule)(); };\nNgArrayPipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgArrayPipesModule });\nNgArrayPipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n NgChunkPipeModule,\n NgCountPipeModule,\n NgDeepPipeModule,\n NgDropPipeModule,\n NgEmptyPipeModule,\n NgEveryPipeModule,\n NgFirstOrDefaultPipeModule,\n NgFlattenPipeModule,\n NgHeadPipeModule,\n NgInitialPipeModule,\n NgIntersectionPipeModule,\n NgJoinPipeModule,\n NgLastPipeModule,\n NgMapPipeModule,\n NgOrderByPipeModule,\n NgPluckPipeModule,\n NgRangePipeModule,\n NgReversePipeModule,\n NgShufflePipeModule,\n NgSomePipeModule,\n NgTailPipeModule,\n NgTakeUntilPipeModule,\n NgTakeWhilePipeModule,\n NgTakePipeModule,\n NgUnionPipeModule,\n NgUniqPipeModule,\n NgWherePipeModule,\n NgWithoutPipeModule,\n ]] });\n\nlet IsEqualPipe = class IsEqualPipe {\r\n transform(first, second) {\r\n return first == second;\r\n }\r\n};\nIsEqualPipe.ɵfac = function IsEqualPipe_Factory(t) { return new (t || IsEqualPipe)(); };\nIsEqualPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"equal\", type: IsEqualPipe, pure: true });\r\nlet NgIsEqualPipeModule = class NgIsEqualPipeModule {\r\n};\nNgIsEqualPipeModule.ɵfac = function NgIsEqualPipeModule_Factory(t) { return new (t || NgIsEqualPipeModule)(); };\nNgIsEqualPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsEqualPipeModule });\nNgIsEqualPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsGreaterOrEqualPipe = class IsGreaterOrEqualPipe {\r\n transform(first, second) {\r\n return first >= second;\r\n }\r\n};\nIsGreaterOrEqualPipe.ɵfac = function IsGreaterOrEqualPipe_Factory(t) { return new (t || IsGreaterOrEqualPipe)(); };\nIsGreaterOrEqualPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"greaterOrEqual\", type: IsGreaterOrEqualPipe, pure: true });\r\nlet NgIsGreaterOrEqualPipeModule = class NgIsGreaterOrEqualPipeModule {\r\n};\nNgIsGreaterOrEqualPipeModule.ɵfac = function NgIsGreaterOrEqualPipeModule_Factory(t) { return new (t || NgIsGreaterOrEqualPipeModule)(); };\nNgIsGreaterOrEqualPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsGreaterOrEqualPipeModule });\nNgIsGreaterOrEqualPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsGreaterPipe = class IsGreaterPipe {\r\n transform(first, second) {\r\n return first > second;\r\n }\r\n};\nIsGreaterPipe.ɵfac = function IsGreaterPipe_Factory(t) { return new (t || IsGreaterPipe)(); };\nIsGreaterPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"greater\", type: IsGreaterPipe, pure: true });\r\nlet NgIsGreaterPipeModule = class NgIsGreaterPipeModule {\r\n};\nNgIsGreaterPipeModule.ɵfac = function NgIsGreaterPipeModule_Factory(t) { return new (t || NgIsGreaterPipeModule)(); };\nNgIsGreaterPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsGreaterPipeModule });\nNgIsGreaterPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsIdenticalPipe = class IsIdenticalPipe {\r\n transform(first, second) {\r\n return first === second;\r\n }\r\n};\nIsIdenticalPipe.ɵfac = function IsIdenticalPipe_Factory(t) { return new (t || IsIdenticalPipe)(); };\nIsIdenticalPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"identical\", type: IsIdenticalPipe, pure: true });\r\nlet NgIsIdenticalPipeModule = class NgIsIdenticalPipeModule {\r\n};\nNgIsIdenticalPipeModule.ɵfac = function NgIsIdenticalPipeModule_Factory(t) { return new (t || NgIsIdenticalPipeModule)(); };\nNgIsIdenticalPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsIdenticalPipeModule });\nNgIsIdenticalPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsLessOrEqualPipe = class IsLessOrEqualPipe {\r\n transform(first, second) {\r\n return first <= second;\r\n }\r\n};\nIsLessOrEqualPipe.ɵfac = function IsLessOrEqualPipe_Factory(t) { return new (t || IsLessOrEqualPipe)(); };\nIsLessOrEqualPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"lessOrEqual\", type: IsLessOrEqualPipe, pure: true });\r\nlet NgIsLessOrEqualPipeModule = class NgIsLessOrEqualPipeModule {\r\n};\nNgIsLessOrEqualPipeModule.ɵfac = function NgIsLessOrEqualPipeModule_Factory(t) { return new (t || NgIsLessOrEqualPipeModule)(); };\nNgIsLessOrEqualPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsLessOrEqualPipeModule });\nNgIsLessOrEqualPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsLessPipe = class IsLessPipe {\r\n transform(first, second) {\r\n return first < second;\r\n }\r\n};\nIsLessPipe.ɵfac = function IsLessPipe_Factory(t) { return new (t || IsLessPipe)(); };\nIsLessPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"less\", type: IsLessPipe, pure: true });\r\nlet NgIsLessPipeModule = class NgIsLessPipeModule {\r\n};\nNgIsLessPipeModule.ɵfac = function NgIsLessPipeModule_Factory(t) { return new (t || NgIsLessPipeModule)(); };\nNgIsLessPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsLessPipeModule });\nNgIsLessPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsNotEqualPipe = class IsNotEqualPipe {\r\n transform(first, second) {\r\n return first != second;\r\n }\r\n};\nIsNotEqualPipe.ɵfac = function IsNotEqualPipe_Factory(t) { return new (t || IsNotEqualPipe)(); };\nIsNotEqualPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"notEqual\", type: IsNotEqualPipe, pure: true });\r\nlet NgIsNotEqualPipeModule = class NgIsNotEqualPipeModule {\r\n};\nNgIsNotEqualPipeModule.ɵfac = function NgIsNotEqualPipeModule_Factory(t) { return new (t || NgIsNotEqualPipeModule)(); };\nNgIsNotEqualPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsNotEqualPipeModule });\nNgIsNotEqualPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsNotIdenticalPipe = class IsNotIdenticalPipe {\r\n transform(first, second) {\r\n return first !== second;\r\n }\r\n};\nIsNotIdenticalPipe.ɵfac = function IsNotIdenticalPipe_Factory(t) { return new (t || IsNotIdenticalPipe)(); };\nIsNotIdenticalPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"notIdentical\", type: IsNotIdenticalPipe, pure: true });\r\nlet NgIsNotIdenticalPipeModule = class NgIsNotIdenticalPipeModule {\r\n};\nNgIsNotIdenticalPipeModule.ɵfac = function NgIsNotIdenticalPipeModule_Factory(t) { return new (t || NgIsNotIdenticalPipeModule)(); };\nNgIsNotIdenticalPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsNotIdenticalPipeModule });\nNgIsNotIdenticalPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsNullPipe = class IsNullPipe {\r\n transform(value) {\r\n return isNull(value);\r\n }\r\n};\nIsNullPipe.ɵfac = function IsNullPipe_Factory(t) { return new (t || IsNullPipe)(); };\nIsNullPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isNull\", type: IsNullPipe, pure: true });\r\nlet NgIsNullPipeModule = class NgIsNullPipeModule {\r\n};\nNgIsNullPipeModule.ɵfac = function NgIsNullPipeModule_Factory(t) { return new (t || NgIsNullPipeModule)(); };\nNgIsNullPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsNullPipeModule });\nNgIsNullPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsUndefinedPipe = class IsUndefinedPipe {\r\n transform(value) {\r\n return isUndefined(value);\r\n }\r\n};\nIsUndefinedPipe.ɵfac = function IsUndefinedPipe_Factory(t) { return new (t || IsUndefinedPipe)(); };\nIsUndefinedPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isUndefined\", type: IsUndefinedPipe, pure: true });\r\nlet NgIsUndefinedPipeModule = class NgIsUndefinedPipeModule {\r\n};\nNgIsUndefinedPipeModule.ɵfac = function NgIsUndefinedPipeModule_Factory(t) { return new (t || NgIsUndefinedPipeModule)(); };\nNgIsUndefinedPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsUndefinedPipeModule });\nNgIsUndefinedPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsNilPipe = class IsNilPipe {\r\n transform(value) {\r\n return isNil(value);\r\n }\r\n};\nIsNilPipe.ɵfac = function IsNilPipe_Factory(t) { return new (t || IsNilPipe)(); };\nIsNilPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isNil\", type: IsNilPipe, pure: true });\r\nlet NgIsNilPipeModule = class NgIsNilPipeModule {\r\n};\nNgIsNilPipeModule.ɵfac = function NgIsNilPipeModule_Factory(t) { return new (t || NgIsNilPipeModule)(); };\nNgIsNilPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsNilPipeModule });\nNgIsNilPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsFunctionPipe = class IsFunctionPipe {\r\n transform(value) {\r\n return isFunction(value);\r\n }\r\n};\nIsFunctionPipe.ɵfac = function IsFunctionPipe_Factory(t) { return new (t || IsFunctionPipe)(); };\nIsFunctionPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isFunction\", type: IsFunctionPipe, pure: true });\r\nlet NgIsFunctionPipeModule = class NgIsFunctionPipeModule {\r\n};\nNgIsFunctionPipeModule.ɵfac = function NgIsFunctionPipeModule_Factory(t) { return new (t || NgIsFunctionPipeModule)(); };\nNgIsFunctionPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsFunctionPipeModule });\nNgIsFunctionPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsNumberPipe = class IsNumberPipe {\r\n transform(value) {\r\n return isNumber(value);\r\n }\r\n};\nIsNumberPipe.ɵfac = function IsNumberPipe_Factory(t) { return new (t || IsNumberPipe)(); };\nIsNumberPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isNumber\", type: IsNumberPipe, pure: true });\r\nlet NgIsNumberPipeModule = class NgIsNumberPipeModule {\r\n};\nNgIsNumberPipeModule.ɵfac = function NgIsNumberPipeModule_Factory(t) { return new (t || NgIsNumberPipeModule)(); };\nNgIsNumberPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsNumberPipeModule });\nNgIsNumberPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsStringPipe = class IsStringPipe {\r\n transform(value) {\r\n return isString(value);\r\n }\r\n};\nIsStringPipe.ɵfac = function IsStringPipe_Factory(t) { return new (t || IsStringPipe)(); };\nIsStringPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isString\", type: IsStringPipe, pure: true });\r\nlet NgIsStringPipeModule = class NgIsStringPipeModule {\r\n};\nNgIsStringPipeModule.ɵfac = function NgIsStringPipeModule_Factory(t) { return new (t || NgIsStringPipeModule)(); };\nNgIsStringPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsStringPipeModule });\nNgIsStringPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsArrayPipe = class IsArrayPipe {\r\n transform(value) {\r\n return isArray(value);\r\n }\r\n};\nIsArrayPipe.ɵfac = function IsArrayPipe_Factory(t) { return new (t || IsArrayPipe)(); };\nIsArrayPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isArray\", type: IsArrayPipe, pure: true });\r\nlet NgIsArrayPipeModule = class NgIsArrayPipeModule {\r\n};\nNgIsArrayPipeModule.ɵfac = function NgIsArrayPipeModule_Factory(t) { return new (t || NgIsArrayPipeModule)(); };\nNgIsArrayPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsArrayPipeModule });\nNgIsArrayPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsObjectPipe = class IsObjectPipe {\r\n transform(value) {\r\n return isObject(value);\r\n }\r\n};\nIsObjectPipe.ɵfac = function IsObjectPipe_Factory(t) { return new (t || IsObjectPipe)(); };\nIsObjectPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isObject\", type: IsObjectPipe, pure: true });\r\nlet NgIsObjectPipeModule = class NgIsObjectPipeModule {\r\n};\nNgIsObjectPipeModule.ɵfac = function NgIsObjectPipeModule_Factory(t) { return new (t || NgIsObjectPipeModule)(); };\nNgIsObjectPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsObjectPipeModule });\nNgIsObjectPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet IsDefinedPipe = class IsDefinedPipe {\r\n transform(value) {\r\n return !isUndefined(value);\r\n }\r\n};\nIsDefinedPipe.ɵfac = function IsDefinedPipe_Factory(t) { return new (t || IsDefinedPipe)(); };\nIsDefinedPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"isDefined\", type: IsDefinedPipe, pure: true });\r\nlet NgIsDefinedPipeModule = class NgIsDefinedPipeModule {\r\n};\nNgIsDefinedPipeModule.ɵfac = function NgIsDefinedPipeModule_Factory(t) { return new (t || NgIsDefinedPipeModule)(); };\nNgIsDefinedPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgIsDefinedPipeModule });\nNgIsDefinedPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet NgTypesPipesModule = class NgTypesPipesModule {\r\n};\nNgTypesPipesModule.ɵfac = function NgTypesPipesModule_Factory(t) { return new (t || NgTypesPipesModule)(); };\nNgTypesPipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTypesPipesModule });\nNgTypesPipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n NgIsNullPipeModule,\n NgIsUndefinedPipeModule,\n NgIsNilPipeModule,\n NgIsFunctionPipeModule,\n NgIsNumberPipeModule,\n NgIsStringPipeModule,\n NgIsArrayPipeModule,\n NgIsObjectPipeModule,\n NgIsDefinedPipeModule,\n ]] });\r\nlet NgConditionsPipesModule = class NgConditionsPipesModule {\r\n};\nNgConditionsPipesModule.ɵfac = function NgConditionsPipesModule_Factory(t) { return new (t || NgConditionsPipesModule)(); };\nNgConditionsPipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgConditionsPipesModule });\nNgConditionsPipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n NgIsEqualPipeModule,\n NgIsGreaterOrEqualPipeModule,\n NgIsGreaterPipeModule,\n NgIsIdenticalPipeModule,\n NgIsLessOrEqualPipeModule,\n NgIsLessPipeModule,\n NgIsNotEqualPipeModule,\n NgIsNotIdenticalPipeModule,\n ]] });\r\nlet NgBooleanPipesModule = class NgBooleanPipesModule {\r\n};\nNgBooleanPipesModule.ɵfac = function NgBooleanPipesModule_Factory(t) { return new (t || NgBooleanPipesModule)(); };\nNgBooleanPipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgBooleanPipesModule });\nNgBooleanPipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[NgConditionsPipesModule, NgTypesPipesModule]] });\n\nvar BytesPipe_1;\r\nlet BytesPipe = BytesPipe_1 = class BytesPipe {\r\n transform(input, decimal = 0, from = 'B', to) {\r\n if (!(isNumberFinite(input) && isNumberFinite(decimal) && isInteger(decimal) && isPositive(decimal))) {\r\n return input;\r\n }\r\n let bytes = input;\r\n let unit = from;\r\n while (unit !== 'B') {\r\n bytes *= 1024;\r\n unit = BytesPipe_1.formats[unit].prev;\r\n }\r\n if (to) {\r\n const format = BytesPipe_1.formats[to];\r\n const result = toDecimal(BytesPipe_1.calculateResult(format, bytes), decimal);\r\n return BytesPipe_1.formatResult(result, to);\r\n }\r\n for (const key in BytesPipe_1.formats) {\r\n if (BytesPipe_1.formats.hasOwnProperty(key)) {\r\n const format = BytesPipe_1.formats[key];\r\n if (bytes < format.max) {\r\n const result = toDecimal(BytesPipe_1.calculateResult(format, bytes), decimal);\r\n return BytesPipe_1.formatResult(result, key);\r\n }\r\n }\r\n }\r\n }\r\n static formatResult(result, unit) {\r\n return `${result} ${unit}`;\r\n }\r\n static calculateResult(format, bytes) {\r\n const prev = format.prev ? BytesPipe_1.formats[format.prev] : undefined;\r\n return prev ? bytes / prev.max : bytes;\r\n }\r\n};\nBytesPipe.ɵfac = function BytesPipe_Factory(t) { return new (t || BytesPipe)(); };\nBytesPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"bytes\", type: BytesPipe, pure: true });\r\nBytesPipe.formats = {\r\n B: { max: 1024 },\r\n kB: { max: Math.pow(1024, 2), prev: 'B' },\r\n KB: { max: Math.pow(1024, 2), prev: 'B' },\r\n MB: { max: Math.pow(1024, 3), prev: 'kB' },\r\n GB: { max: Math.pow(1024, 4), prev: 'MB' },\r\n TB: { max: Number.MAX_SAFE_INTEGER, prev: 'GB' },\r\n};\r\nlet NgBytesPipeModule = class NgBytesPipeModule {\r\n};\nNgBytesPipeModule.ɵfac = function NgBytesPipeModule_Factory(t) { return new (t || NgBytesPipeModule)(); };\nNgBytesPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgBytesPipeModule });\nNgBytesPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet CeilPipe = class CeilPipe {\r\n transform(value, precision = 0) {\r\n if (isString(precision)) {\r\n precision = parseInt(precision);\r\n }\r\n return createRound('ceil')(value, precision);\r\n }\r\n};\nCeilPipe.ɵfac = function CeilPipe_Factory(t) { return new (t || CeilPipe)(); };\nCeilPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"ceil\", type: CeilPipe, pure: true });\r\nlet NgCeilPipeModule = class NgCeilPipeModule {\r\n};\nNgCeilPipeModule.ɵfac = function NgCeilPipeModule_Factory(t) { return new (t || NgCeilPipeModule)(); };\nNgCeilPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgCeilPipeModule });\nNgCeilPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet FloorPipe = class FloorPipe {\r\n transform(value, precision = 0) {\r\n if (isString(precision)) {\r\n precision = parseInt(precision);\r\n }\r\n return createRound('floor')(value, precision);\r\n }\r\n};\nFloorPipe.ɵfac = function FloorPipe_Factory(t) { return new (t || FloorPipe)(); };\nFloorPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"floor\", type: FloorPipe, pure: true });\r\nlet NgFloorPipeModule = class NgFloorPipeModule {\r\n};\nNgFloorPipeModule.ɵfac = function NgFloorPipeModule_Factory(t) { return new (t || NgFloorPipeModule)(); };\nNgFloorPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgFloorPipeModule });\nNgFloorPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet RoundPipe = class RoundPipe {\r\n transform(value, precision = 0) {\r\n if (isString(precision)) {\r\n precision = parseInt(precision);\r\n }\r\n return createRound('round')(value, precision);\r\n }\r\n};\nRoundPipe.ɵfac = function RoundPipe_Factory(t) { return new (t || RoundPipe)(); };\nRoundPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"round\", type: RoundPipe, pure: true });\r\nlet NgRoundPipeModule = class NgRoundPipeModule {\r\n};\nNgRoundPipeModule.ɵfac = function NgRoundPipeModule_Factory(t) { return new (t || NgRoundPipeModule)(); };\nNgRoundPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgRoundPipeModule });\nNgRoundPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet DegreesPipe = class DegreesPipe {\r\n transform(input) {\r\n if (!isNumberFinite(input)) {\r\n return 'NaN';\r\n }\r\n return (input * 180) / Math.PI;\r\n }\r\n};\nDegreesPipe.ɵfac = function DegreesPipe_Factory(t) { return new (t || DegreesPipe)(); };\nDegreesPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"degrees\", type: DegreesPipe, pure: true });\r\nlet NgDegreesPipeModule = class NgDegreesPipeModule {\r\n};\nNgDegreesPipeModule.ɵfac = function NgDegreesPipeModule_Factory(t) { return new (t || NgDegreesPipeModule)(); };\nNgDegreesPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgDegreesPipeModule });\nNgDegreesPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet RadiansPipe = class RadiansPipe {\r\n transform(input) {\r\n if (!isNumberFinite(input)) {\r\n return 'NaN';\r\n }\r\n return (input * Math.PI) / 180;\r\n }\r\n};\nRadiansPipe.ɵfac = function RadiansPipe_Factory(t) { return new (t || RadiansPipe)(); };\nRadiansPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"radians\", type: RadiansPipe, pure: true });\r\nlet NgRadiansPipeModule = class NgRadiansPipeModule {\r\n};\nNgRadiansPipeModule.ɵfac = function NgRadiansPipeModule_Factory(t) { return new (t || NgRadiansPipeModule)(); };\nNgRadiansPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgRadiansPipeModule });\nNgRadiansPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet RandomPipe = class RandomPipe {\r\n transform(input, min = 0, max = 1) {\r\n if (!isNumberFinite(min) || !isNumberFinite(max)) {\r\n return input;\r\n }\r\n if (min > max) {\r\n max = min;\r\n min = 0;\r\n }\r\n return Math.random() * (max - min) + min;\r\n }\r\n};\nRandomPipe.ɵfac = function RandomPipe_Factory(t) { return new (t || RandomPipe)(); };\nRandomPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"random\", type: RandomPipe, pure: true });\r\nlet NgRandomPipeModule = class NgRandomPipeModule {\r\n};\nNgRandomPipeModule.ɵfac = function NgRandomPipeModule_Factory(t) { return new (t || NgRandomPipeModule)(); };\nNgRandomPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgRandomPipeModule });\nNgRandomPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet SqrtPipe = class SqrtPipe {\r\n transform(input) {\r\n if (!isNumberFinite(input)) {\r\n return 'NaN';\r\n }\r\n return Math.sqrt(input);\r\n }\r\n};\nSqrtPipe.ɵfac = function SqrtPipe_Factory(t) { return new (t || SqrtPipe)(); };\nSqrtPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"sqrt\", type: SqrtPipe, pure: true });\r\nlet NgSqrtPipeModule = class NgSqrtPipeModule {\r\n};\nNgSqrtPipeModule.ɵfac = function NgSqrtPipeModule_Factory(t) { return new (t || NgSqrtPipeModule)(); };\nNgSqrtPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgSqrtPipeModule });\nNgSqrtPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet PowPipe = class PowPipe {\r\n transform(input, power = 2) {\r\n if (!isNumberFinite(input)) {\r\n return 'NaN';\r\n }\r\n return Math.pow(input, power);\r\n }\r\n};\nPowPipe.ɵfac = function PowPipe_Factory(t) { return new (t || PowPipe)(); };\nPowPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"pow\", type: PowPipe, pure: true });\r\nlet NgPowPipeModule = class NgPowPipeModule {\r\n};\nNgPowPipeModule.ɵfac = function NgPowPipeModule_Factory(t) { return new (t || NgPowPipeModule)(); };\nNgPowPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgPowPipeModule });\nNgPowPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet AbsPipe = class AbsPipe {\r\n transform(input) {\r\n if (!isNumberFinite(input)) {\r\n return 'NaN';\r\n }\r\n return Math.abs(input);\r\n }\r\n};\nAbsPipe.ɵfac = function AbsPipe_Factory(t) { return new (t || AbsPipe)(); };\nAbsPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"abs\", type: AbsPipe, pure: true });\r\nlet NgAbsPipeModule = class NgAbsPipeModule {\r\n};\nNgAbsPipeModule.ɵfac = function NgAbsPipeModule_Factory(t) { return new (t || NgAbsPipeModule)(); };\nNgAbsPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgAbsPipeModule });\nNgAbsPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet OrdinalPipe = class OrdinalPipe {\r\n transform(input) {\r\n if (!isNumberFinite(input)) {\r\n return 'NaN';\r\n }\r\n if (this.endsWithTenth(input)) {\r\n return input + 'th';\r\n }\r\n else {\r\n const cardinal = input.toString().charAt(input.toString().length - 1);\r\n switch (cardinal) {\r\n case '1':\r\n return input + 'st';\r\n case '2':\r\n return input + 'nd';\r\n case '3':\r\n return input + 'rd';\r\n default:\r\n return input + 'th';\r\n }\r\n }\r\n }\r\n endsWithTenth(input) {\r\n const beforeLastDigit = input.toString().charAt(input.toString().length - 2);\r\n return beforeLastDigit === '1';\r\n }\r\n};\nOrdinalPipe.ɵfac = function OrdinalPipe_Factory(t) { return new (t || OrdinalPipe)(); };\nOrdinalPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"ordinal\", type: OrdinalPipe, pure: true });\r\nlet NgOrdinalPipeModule = class NgOrdinalPipeModule {\r\n};\nNgOrdinalPipeModule.ɵfac = function NgOrdinalPipeModule_Factory(t) { return new (t || NgOrdinalPipeModule)(); };\nNgOrdinalPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgOrdinalPipeModule });\nNgOrdinalPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet NgMathPipesModule = class NgMathPipesModule {\r\n};\nNgMathPipesModule.ɵfac = function NgMathPipesModule_Factory(t) { return new (t || NgMathPipesModule)(); };\nNgMathPipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgMathPipesModule });\nNgMathPipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n NgAbsPipeModule,\n NgBytesPipeModule,\n NgCeilPipeModule,\n NgDegreesPipeModule,\n NgFloorPipeModule,\n NgOrdinalPipeModule,\n NgPowPipeModule,\n NgRadiansPipeModule,\n NgRandomPipeModule,\n NgRoundPipeModule,\n NgSqrtPipeModule,\n ]] });\n\nlet KeysPipe = class KeysPipe {\r\n transform(input) {\r\n if (!isObject(input)) {\r\n return input;\r\n }\r\n return Object.keys(input);\r\n }\r\n};\nKeysPipe.ɵfac = function KeysPipe_Factory(t) { return new (t || KeysPipe)(); };\nKeysPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"keys\", type: KeysPipe, pure: true });\r\nlet NgKeysPipeModule = class NgKeysPipeModule {\r\n};\nNgKeysPipeModule.ɵfac = function NgKeysPipeModule_Factory(t) { return new (t || NgKeysPipeModule)(); };\nNgKeysPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgKeysPipeModule });\nNgKeysPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet ToArrayPipe = class ToArrayPipe {\r\n transform(input) {\r\n if (!isObject(input)) {\r\n return input;\r\n }\r\n return Object.keys(input).map(value => input[value]);\r\n }\r\n};\nToArrayPipe.ɵfac = function ToArrayPipe_Factory(t) { return new (t || ToArrayPipe)(); };\nToArrayPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"toArray\", type: ToArrayPipe, pure: true });\r\nlet NgToArrayPipeModule = class NgToArrayPipeModule {\r\n};\nNgToArrayPipeModule.ɵfac = function NgToArrayPipeModule_Factory(t) { return new (t || NgToArrayPipeModule)(); };\nNgToArrayPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgToArrayPipeModule });\nNgToArrayPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet DefaultsPipe = class DefaultsPipe {\r\n transform(input, defaults) {\r\n if (!isObject(defaults)) {\r\n return input;\r\n }\r\n if (isNil(input)) {\r\n return defaults;\r\n }\r\n if (isArray(input)) {\r\n return input.map((item) => {\r\n if (isObject(item)) {\r\n return Object.assign({}, defaults, item);\r\n }\r\n if (isNil(item)) {\r\n return defaults;\r\n }\r\n return item;\r\n });\r\n }\r\n if (isObject(input)) {\r\n return Object.assign({}, defaults, input);\r\n }\r\n return input;\r\n }\r\n};\nDefaultsPipe.ɵfac = function DefaultsPipe_Factory(t) { return new (t || DefaultsPipe)(); };\nDefaultsPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"defaults\", type: DefaultsPipe, pure: true });\r\nlet NgDefaultsPipeModule = class NgDefaultsPipeModule {\r\n};\nNgDefaultsPipeModule.ɵfac = function NgDefaultsPipeModule_Factory(t) { return new (t || NgDefaultsPipeModule)(); };\nNgDefaultsPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgDefaultsPipeModule });\nNgDefaultsPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet NgObjectPipesModule = class NgObjectPipesModule {\r\n};\nNgObjectPipesModule.ɵfac = function NgObjectPipesModule_Factory(t) { return new (t || NgObjectPipesModule)(); };\nNgObjectPipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgObjectPipesModule });\nNgObjectPipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[NgKeysPipeModule, NgToArrayPipeModule, NgDefaultsPipeModule]] });\n\nlet LeftPadPipe = class LeftPadPipe {\r\n transform(input, length = 0, character = ' ') {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return leftPad(input, length, character);\r\n }\r\n};\nLeftPadPipe.ɵfac = function LeftPadPipe_Factory(t) { return new (t || LeftPadPipe)(); };\nLeftPadPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"leftpad\", type: LeftPadPipe, pure: true });\r\nlet NgLeftPadPipeModule = class NgLeftPadPipeModule {\r\n};\nNgLeftPadPipeModule.ɵfac = function NgLeftPadPipeModule_Factory(t) { return new (t || NgLeftPadPipeModule)(); };\nNgLeftPadPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgLeftPadPipeModule });\nNgLeftPadPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet MatchPipe = class MatchPipe {\r\n transform(input, pattern, flag) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n const regexp = pattern instanceof RegExp ? pattern : new RegExp(pattern, flag);\r\n return input.match(regexp);\r\n }\r\n};\nMatchPipe.ɵfac = function MatchPipe_Factory(t) { return new (t || MatchPipe)(); };\nMatchPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"match\", type: MatchPipe, pure: true });\r\nlet NgMatchPipeModule = class NgMatchPipeModule {\r\n};\nNgMatchPipeModule.ɵfac = function NgMatchPipeModule_Factory(t) { return new (t || NgMatchPipeModule)(); };\nNgMatchPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgMatchPipeModule });\nNgMatchPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet PadPipe = class PadPipe {\r\n transform(input, length = 0, character = ' ') {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return pad(input, length, character);\r\n }\r\n};\nPadPipe.ɵfac = function PadPipe_Factory(t) { return new (t || PadPipe)(); };\nPadPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"pad\", type: PadPipe, pure: true });\r\nlet NgPadPipeModule = class NgPadPipeModule {\r\n};\nNgPadPipeModule.ɵfac = function NgPadPipeModule_Factory(t) { return new (t || NgPadPipeModule)(); };\nNgPadPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgPadPipeModule });\nNgPadPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet ReplacePipe = class ReplacePipe {\r\n transform(input, pattern, replacement) {\r\n if (!isString(input) || isUndefined(pattern) || isUndefined(replacement)) {\r\n return input;\r\n }\r\n return input.replace(pattern, replacement);\r\n }\r\n};\nReplacePipe.ɵfac = function ReplacePipe_Factory(t) { return new (t || ReplacePipe)(); };\nReplacePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"replace\", type: ReplacePipe, pure: true });\r\nlet NgReplacePipeModule = class NgReplacePipeModule {\r\n};\nNgReplacePipeModule.ɵfac = function NgReplacePipeModule_Factory(t) { return new (t || NgReplacePipeModule)(); };\nNgReplacePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgReplacePipeModule });\nNgReplacePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet RightPadPipe = class RightPadPipe {\r\n transform(input, length = 0, character = ' ') {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return rightPad(input, length, character);\r\n }\r\n};\nRightPadPipe.ɵfac = function RightPadPipe_Factory(t) { return new (t || RightPadPipe)(); };\nRightPadPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"rightpad\", type: RightPadPipe, pure: true });\r\nlet NgRightPadPipeModule = class NgRightPadPipeModule {\r\n};\nNgRightPadPipeModule.ɵfac = function NgRightPadPipeModule_Factory(t) { return new (t || NgRightPadPipeModule)(); };\nNgRightPadPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgRightPadPipeModule });\nNgRightPadPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet SplitPipe = class SplitPipe {\r\n transform(input, separator = ' ', limit) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return input.split(separator, limit);\r\n }\r\n};\nSplitPipe.ɵfac = function SplitPipe_Factory(t) { return new (t || SplitPipe)(); };\nSplitPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"split\", type: SplitPipe, pure: true });\r\nlet NgSplitPipeModule = class NgSplitPipeModule {\r\n};\nNgSplitPipeModule.ɵfac = function NgSplitPipeModule_Factory(t) { return new (t || NgSplitPipeModule)(); };\nNgSplitPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgSplitPipeModule });\nNgSplitPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet TestPipe = class TestPipe {\r\n transform(input, pattern, flag) {\r\n if (!isString(input) || !pattern) {\r\n return input;\r\n }\r\n const regexp = pattern instanceof RegExp ? pattern : new RegExp(pattern, flag);\r\n return regexp.test(input);\r\n }\r\n};\nTestPipe.ɵfac = function TestPipe_Factory(t) { return new (t || TestPipe)(); };\nTestPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"test\", type: TestPipe, pure: true });\r\nlet NgTestPipeModule = class NgTestPipeModule {\r\n};\nNgTestPipeModule.ɵfac = function NgTestPipeModule_Factory(t) { return new (t || NgTestPipeModule)(); };\nNgTestPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTestPipeModule });\nNgTestPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet TrimPipe = class TrimPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return input.trim();\r\n }\r\n};\nTrimPipe.ɵfac = function TrimPipe_Factory(t) { return new (t || TrimPipe)(); };\nTrimPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"trim\", type: TrimPipe, pure: true });\r\nlet NgTrimPipeModule = class NgTrimPipeModule {\r\n};\nNgTrimPipeModule.ɵfac = function NgTrimPipeModule_Factory(t) { return new (t || NgTrimPipeModule)(); };\nNgTrimPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTrimPipeModule });\nNgTrimPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet NewlinesPipe = class NewlinesPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return input.replace(/(?:\\r\\n|\\r|\\n)/g, '
    ');\r\n }\r\n};\nNewlinesPipe.ɵfac = function NewlinesPipe_Factory(t) { return new (t || NewlinesPipe)(); };\nNewlinesPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"newlines\", type: NewlinesPipe, pure: true });\r\nlet NgNewlinesPipeModule = class NgNewlinesPipeModule {\r\n};\nNgNewlinesPipeModule.ɵfac = function NgNewlinesPipeModule_Factory(t) { return new (t || NgNewlinesPipeModule)(); };\nNgNewlinesPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgNewlinesPipeModule });\nNgNewlinesPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet CapitalizePipe = class CapitalizePipe {\r\n transform(input, all = false) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n if (!all) {\r\n return upperFirst(input.toLowerCase());\r\n }\r\n else {\r\n return input\r\n .toLowerCase()\r\n .split(' ')\r\n .map((value) => upperFirst(value))\r\n .join(' ');\r\n }\r\n }\r\n};\nCapitalizePipe.ɵfac = function CapitalizePipe_Factory(t) { return new (t || CapitalizePipe)(); };\nCapitalizePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"capitalize\", type: CapitalizePipe, pure: true });\r\nlet NgCapitalizePipeModule = class NgCapitalizePipeModule {\r\n};\nNgCapitalizePipeModule.ɵfac = function NgCapitalizePipeModule_Factory(t) { return new (t || NgCapitalizePipeModule)(); };\nNgCapitalizePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgCapitalizePipeModule });\nNgCapitalizePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet UpperFirstPipe = class UpperFirstPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return upperFirst(input);\r\n }\r\n};\nUpperFirstPipe.ɵfac = function UpperFirstPipe_Factory(t) { return new (t || UpperFirstPipe)(); };\nUpperFirstPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"upperfirst\", type: UpperFirstPipe, pure: true });\r\nlet NgUpperFirstPipeModule = class NgUpperFirstPipeModule {\r\n};\nNgUpperFirstPipeModule.ɵfac = function NgUpperFirstPipeModule_Factory(t) { return new (t || NgUpperFirstPipeModule)(); };\nNgUpperFirstPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgUpperFirstPipeModule });\nNgUpperFirstPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet TemplatePipe = class TemplatePipe {\r\n transform(input, ...args) {\r\n if (!isString(input) || args.length === 0) {\r\n return input;\r\n }\r\n let template = input;\r\n for (let i = 0; i < args.length; ++i) {\r\n template = template.replace(`$${i + 1}`, args[i]);\r\n }\r\n return template;\r\n }\r\n};\nTemplatePipe.ɵfac = function TemplatePipe_Factory(t) { return new (t || TemplatePipe)(); };\nTemplatePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"template\", type: TemplatePipe, pure: true });\r\nlet NgTemplatePipeModule = class NgTemplatePipeModule {\r\n};\nNgTemplatePipeModule.ɵfac = function NgTemplatePipeModule_Factory(t) { return new (t || NgTemplatePipeModule)(); };\nNgTemplatePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTemplatePipeModule });\nNgTemplatePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet EncodeURIPipe = class EncodeURIPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return encodeURI(input);\r\n }\r\n};\nEncodeURIPipe.ɵfac = function EncodeURIPipe_Factory(t) { return new (t || EncodeURIPipe)(); };\nEncodeURIPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"encodeURI\", type: EncodeURIPipe, pure: true });\r\nlet NgEncodeURIPipeModule = class NgEncodeURIPipeModule {\r\n};\nNgEncodeURIPipeModule.ɵfac = function NgEncodeURIPipeModule_Factory(t) { return new (t || NgEncodeURIPipeModule)(); };\nNgEncodeURIPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgEncodeURIPipeModule });\nNgEncodeURIPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet EncodeURIComponentPipe = class EncodeURIComponentPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return encodeURIComponent(input);\r\n }\r\n};\nEncodeURIComponentPipe.ɵfac = function EncodeURIComponentPipe_Factory(t) { return new (t || EncodeURIComponentPipe)(); };\nEncodeURIComponentPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"encodeURIComponent\", type: EncodeURIComponentPipe, pure: true });\r\nlet NgEncodeURIComponentPipeModule = class NgEncodeURIComponentPipeModule {\r\n};\nNgEncodeURIComponentPipeModule.ɵfac = function NgEncodeURIComponentPipeModule_Factory(t) { return new (t || NgEncodeURIComponentPipeModule)(); };\nNgEncodeURIComponentPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgEncodeURIComponentPipeModule });\nNgEncodeURIComponentPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet DecodeURIPipe = class DecodeURIPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return decodeURI(input);\r\n }\r\n};\nDecodeURIPipe.ɵfac = function DecodeURIPipe_Factory(t) { return new (t || DecodeURIPipe)(); };\nDecodeURIPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"decodeURI\", type: DecodeURIPipe, pure: true });\r\nlet NgDecodeURIPipeModule = class NgDecodeURIPipeModule {\r\n};\nNgDecodeURIPipeModule.ɵfac = function NgDecodeURIPipeModule_Factory(t) { return new (t || NgDecodeURIPipeModule)(); };\nNgDecodeURIPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgDecodeURIPipeModule });\nNgDecodeURIPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet DecodeURIComponentPipe = class DecodeURIComponentPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return decodeURIComponent(input);\r\n }\r\n};\nDecodeURIComponentPipe.ɵfac = function DecodeURIComponentPipe_Factory(t) { return new (t || DecodeURIComponentPipe)(); };\nDecodeURIComponentPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"decodeURIComponent\", type: DecodeURIComponentPipe, pure: true });\r\nlet NgDecodeURIComponentPipeModule = class NgDecodeURIComponentPipeModule {\r\n};\nNgDecodeURIComponentPipeModule.ɵfac = function NgDecodeURIComponentPipeModule_Factory(t) { return new (t || NgDecodeURIComponentPipeModule)(); };\nNgDecodeURIComponentPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgDecodeURIComponentPipeModule });\nNgDecodeURIComponentPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n// Inspired from https://github.com/a8m/angular-filter/blob/master/src/_filter/string/truncate.js\r\nlet TruncatePipe = class TruncatePipe {\r\n transform(input, length, suffix, preserve) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n length = isUndefined(length) ? input.length : length;\r\n if (input.length <= length) {\r\n return input;\r\n }\r\n preserve = preserve || false;\r\n suffix = suffix || '';\r\n let index = length;\r\n if (preserve) {\r\n if (input.indexOf(' ', length) === -1) {\r\n index = input.length;\r\n }\r\n else {\r\n index = input.indexOf(' ', length);\r\n }\r\n }\r\n return input.substring(0, index) + suffix;\r\n }\r\n};\nTruncatePipe.ɵfac = function TruncatePipe_Factory(t) { return new (t || TruncatePipe)(); };\nTruncatePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"truncate\", type: TruncatePipe, pure: true });\r\nlet NgTruncatePipeModule = class NgTruncatePipeModule {\r\n};\nNgTruncatePipeModule.ɵfac = function NgTruncatePipeModule_Factory(t) { return new (t || NgTruncatePipeModule)(); };\nNgTruncatePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgTruncatePipeModule });\nNgTruncatePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet RepeatPipe = class RepeatPipe {\r\n transform(input, times = 1, characters = '') {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n if (times <= 0) {\r\n times = 1;\r\n }\r\n const repeated = [input];\r\n for (let i = 1; i < times; ++i) {\r\n repeated.push(input);\r\n }\r\n return repeated.join(characters);\r\n }\r\n};\nRepeatPipe.ɵfac = function RepeatPipe_Factory(t) { return new (t || RepeatPipe)(); };\nRepeatPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"repeat\", type: RepeatPipe, pure: true });\r\nlet NgRepeatPipeModule = class NgRepeatPipeModule {\r\n};\nNgRepeatPipeModule.ɵfac = function NgRepeatPipeModule_Factory(t) { return new (t || NgRepeatPipeModule)(); };\nNgRepeatPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgRepeatPipeModule });\nNgRepeatPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet SlugifyPipe = class SlugifyPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return input\r\n .toLowerCase()\r\n .trim()\r\n .replace(/[^a-z0-9\\s-]/g, ' ')\r\n .replace(/[\\s-]+/g, '-');\r\n }\r\n};\nSlugifyPipe.ɵfac = function SlugifyPipe_Factory(t) { return new (t || SlugifyPipe)(); };\nSlugifyPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"slugify\", type: SlugifyPipe, pure: true });\r\nlet NgSlugifyPipeModule = class NgSlugifyPipeModule {\r\n};\nNgSlugifyPipeModule.ɵfac = function NgSlugifyPipeModule_Factory(t) { return new (t || NgSlugifyPipeModule)(); };\nNgSlugifyPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgSlugifyPipeModule });\nNgSlugifyPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n// idea from https://github.com/a8m/angular-filter\r\nlet StripTagsPipe = class StripTagsPipe {\r\n transform(input) {\r\n if (!isString(input) || isUndefined(input))\r\n return input;\r\n return input.replace(/<\\S[^><]*>/g, '');\r\n }\r\n};\nStripTagsPipe.ɵfac = function StripTagsPipe_Factory(t) { return new (t || StripTagsPipe)(); };\nStripTagsPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"stripTags\", type: StripTagsPipe, pure: true });\r\nlet NgStripTagsPipeModule = class NgStripTagsPipeModule {\r\n};\nNgStripTagsPipeModule.ɵfac = function NgStripTagsPipeModule_Factory(t) { return new (t || NgStripTagsPipeModule)(); };\nNgStripTagsPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgStripTagsPipeModule });\nNgStripTagsPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n// idea from https://github.com/a8m/angular-filter\r\nlet LatinizePipe = class LatinizePipe {\r\n transform(input) {\r\n if (!isString(input) || isUndefined(input)) {\r\n return input;\r\n }\r\n let replacementList = [\r\n { base: ' ', chars: '\\u00A0' },\r\n { base: '0', chars: '\\u07C0' },\r\n {\r\n base: 'A',\r\n chars: '\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F',\r\n },\r\n { base: 'AA', chars: '\\uA732' },\r\n { base: 'AE', chars: '\\u00C6\\u01FC\\u01E2' },\r\n { base: 'AO', chars: '\\uA734' },\r\n { base: 'AU', chars: '\\uA736' },\r\n { base: 'AV', chars: '\\uA738\\uA73A' },\r\n { base: 'AY', chars: '\\uA73C' },\r\n { base: 'B', chars: '\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0181' },\r\n { base: 'C', chars: '\\u24b8\\uff23\\uA73E\\u1E08\\u0106\\u0043\\u0108\\u010A\\u010C\\u00C7\\u0187\\u023B' },\r\n { base: 'D', chars: '\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018A\\u0189\\u1D05\\uA779' },\r\n { base: 'Dh', chars: '\\u00D0' },\r\n { base: 'DZ', chars: '\\u01F1\\u01C4' },\r\n { base: 'Dz', chars: '\\u01F2\\u01C5' },\r\n {\r\n base: 'E',\r\n chars: '\\u025B\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\\u1D07',\r\n },\r\n { base: 'F', chars: '\\uA77C\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B' },\r\n {\r\n base: 'G',\r\n chars: '\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\\u0262',\r\n },\r\n { base: 'H', chars: '\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D' },\r\n {\r\n base: 'I',\r\n chars: '\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197',\r\n },\r\n { base: 'J', chars: '\\u24BF\\uFF2A\\u0134\\u0248\\u0237' },\r\n { base: 'K', chars: '\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2' },\r\n {\r\n base: 'L',\r\n chars: '\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780',\r\n },\r\n { base: 'LJ', chars: '\\u01C7' },\r\n { base: 'Lj', chars: '\\u01C8' },\r\n { base: 'M', chars: '\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\\u03FB' },\r\n {\r\n base: 'N',\r\n chars: '\\uA7A4\\u0220\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u019D\\uA790\\u1D0E',\r\n },\r\n { base: 'NJ', chars: '\\u01CA' },\r\n { base: 'Nj', chars: '\\u01CB' },\r\n {\r\n base: 'O',\r\n chars: '\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C',\r\n },\r\n { base: 'OE', chars: '\\u0152' },\r\n { base: 'OI', chars: '\\u01A2' },\r\n { base: 'OO', chars: '\\uA74E' },\r\n { base: 'OU', chars: '\\u0222' },\r\n { base: 'P', chars: '\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754' },\r\n { base: 'Q', chars: '\\u24C6\\uFF31\\uA756\\uA758\\u024A' },\r\n {\r\n base: 'R',\r\n chars: '\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782',\r\n },\r\n {\r\n base: 'S',\r\n chars: '\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784',\r\n },\r\n { base: 'T', chars: '\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786' },\r\n { base: 'Th', chars: '\\u00DE' },\r\n { base: 'TZ', chars: '\\uA728' },\r\n {\r\n base: 'U',\r\n chars: '\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244',\r\n },\r\n { base: 'V', chars: '\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245' },\r\n { base: 'VY', chars: '\\uA760' },\r\n { base: 'W', chars: '\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72' },\r\n { base: 'X', chars: '\\u24CD\\uFF38\\u1E8A\\u1E8C' },\r\n { base: 'Y', chars: '\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE' },\r\n { base: 'Z', chars: '\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762' },\r\n {\r\n base: 'a',\r\n chars: '\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\\u0251',\r\n },\r\n { base: 'aa', chars: '\\uA733' },\r\n { base: 'ae', chars: '\\u00E6\\u01FD\\u01E3' },\r\n { base: 'ao', chars: '\\uA735' },\r\n { base: 'au', chars: '\\uA737' },\r\n { base: 'av', chars: '\\uA739\\uA73B' },\r\n { base: 'ay', chars: '\\uA73D' },\r\n { base: 'b', chars: '\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\\u0182' },\r\n { base: 'c', chars: '\\uFF43\\u24D2\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184' },\r\n {\r\n base: 'd',\r\n chars: '\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\u018B\\u13E7\\u0501\\uA7AA',\r\n },\r\n { base: 'dh', chars: '\\u00F0' },\r\n { base: 'dz', chars: '\\u01F3\\u01C6' },\r\n {\r\n base: 'e',\r\n chars: '\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u01DD',\r\n },\r\n { base: 'f', chars: '\\u24D5\\uFF46\\u1E1F\\u0192' },\r\n { base: 'ff', chars: '\\uFB00' },\r\n { base: 'fi', chars: '\\uFB01' },\r\n { base: 'fl', chars: '\\uFB02' },\r\n { base: 'ffi', chars: '\\uFB03' },\r\n { base: 'ffl', chars: '\\uFB04' },\r\n { base: 'g', chars: '\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\uA77F\\u1D79' },\r\n { base: 'h', chars: '\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265' },\r\n { base: 'hv', chars: '\\u0195' },\r\n {\r\n base: 'i',\r\n chars: '\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131',\r\n },\r\n { base: 'j', chars: '\\u24D9\\uFF4A\\u0135\\u01F0\\u0249' },\r\n { base: 'k', chars: '\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3' },\r\n {\r\n base: 'l',\r\n chars: '\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\\u026D',\r\n },\r\n { base: 'lj', chars: '\\u01C9' },\r\n { base: 'm', chars: '\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F' },\r\n {\r\n base: 'n',\r\n chars: '\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\\u043B\\u0509',\r\n },\r\n { base: 'nj', chars: '\\u01CC' },\r\n {\r\n base: 'o',\r\n chars: '\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\uA74B\\uA74D\\u0275\\u0254\\u1D11',\r\n },\r\n { base: 'oe', chars: '\\u0153' },\r\n { base: 'oi', chars: '\\u01A3' },\r\n { base: 'oo', chars: '\\uA74F' },\r\n { base: 'ou', chars: '\\u0223' },\r\n { base: 'p', chars: '\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\\u03C1' },\r\n { base: 'q', chars: '\\u24E0\\uFF51\\u024B\\uA757\\uA759' },\r\n {\r\n base: 'r',\r\n chars: '\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783',\r\n },\r\n {\r\n base: 's',\r\n chars: '\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\\u0282',\r\n },\r\n { base: 'ss', chars: '\\xDF' },\r\n {\r\n base: 't',\r\n chars: '\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787',\r\n },\r\n { base: 'th', chars: '\\u00FE' },\r\n { base: 'tz', chars: '\\uA729' },\r\n {\r\n base: 'u',\r\n chars: '\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289',\r\n },\r\n { base: 'v', chars: '\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C' },\r\n { base: 'vy', chars: '\\uA761' },\r\n { base: 'w', chars: '\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73' },\r\n { base: 'x', chars: '\\u24E7\\uFF58\\u1E8B\\u1E8D' },\r\n { base: 'y', chars: '\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF' },\r\n { base: 'z', chars: '\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763' },\r\n ];\r\n let diacriticsMap = {};\r\n for (let i = 0; i < replacementList.length; i += 1) {\r\n let chars = replacementList[i].chars;\r\n for (let j = 0; j < chars.length; j += 1) {\r\n diacriticsMap[chars[j]] = replacementList[i].base;\r\n }\r\n }\r\n return input.replace(/[^\\u0000-\\u007e]/g, c => diacriticsMap[c] || c);\r\n }\r\n};\nLatinizePipe.ɵfac = function LatinizePipe_Factory(t) { return new (t || LatinizePipe)(); };\nLatinizePipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"latinize\", type: LatinizePipe, pure: true });\r\nlet NgLatinizePipeModule = class NgLatinizePipeModule {\r\n};\nNgLatinizePipeModule.ɵfac = function NgLatinizePipeModule_Factory(t) { return new (t || NgLatinizePipeModule)(); };\nNgLatinizePipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgLatinizePipeModule });\nNgLatinizePipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\n// idea from https://github.com/a8m/angular-filter\r\nlet WrapPipe = class WrapPipe {\r\n transform(input, wrap, ends) {\r\n return isString(input) && !isUndefined(wrap) ? [wrap, input, ends || wrap].join('') : input;\r\n }\r\n};\nWrapPipe.ɵfac = function WrapPipe_Factory(t) { return new (t || WrapPipe)(); };\nWrapPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"wrap\", type: WrapPipe, pure: true });\r\nlet NgWrapPipeModule = class NgWrapPipeModule {\r\n};\nNgWrapPipeModule.ɵfac = function NgWrapPipeModule_Factory(t) { return new (t || NgWrapPipeModule)(); };\nNgWrapPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgWrapPipeModule });\nNgWrapPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet WithPipe = class WithPipe {\r\n transform(input, start = null, ends = null, csensitive = false) {\r\n if (!isString(input) || (isNull(start) && isNull(ends)) || start == '' || ends == '') {\r\n return input;\r\n }\r\n input = csensitive ? input : input.toLowerCase();\r\n if (!isNull(start) && !isNull(ends)) {\r\n let a = !input.indexOf(csensitive ? start : start.toLowerCase());\r\n let b = input.indexOf(csensitive ? ends : ends.toLowerCase(), input.length - ends.length) !== -1;\r\n if (a == true && b == true) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n if (!isNull(start)) {\r\n return !input.indexOf(csensitive ? start : start.toLowerCase());\r\n }\r\n if (!isNull(ends)) {\r\n let position = input.length - ends.length;\r\n return input.indexOf(csensitive ? ends : ends.toLowerCase(), position) !== -1;\r\n }\r\n }\r\n};\nWithPipe.ɵfac = function WithPipe_Factory(t) { return new (t || WithPipe)(); };\nWithPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"with\", type: WithPipe, pure: true });\r\nlet NgWithPipeModule = class NgWithPipeModule {\r\n};\nNgWithPipeModule.ɵfac = function NgWithPipeModule_Factory(t) { return new (t || NgWithPipeModule)(); };\nNgWithPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgWithPipeModule });\nNgWithPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet ReverseStrPipe = class ReverseStrPipe {\r\n transform(input) {\r\n if (!isString(input)) {\r\n return input;\r\n }\r\n return Array.from(input)\r\n .reverse()\r\n .join('');\r\n }\r\n};\nReverseStrPipe.ɵfac = function ReverseStrPipe_Factory(t) { return new (t || ReverseStrPipe)(); };\nReverseStrPipe.ɵpipe = /*@__PURE__*/ ɵngcc0.ɵɵdefinePipe({ name: \"reverseStr\", type: ReverseStrPipe, pure: true });\r\nlet NgReverseStrPipeModule = class NgReverseStrPipeModule {\r\n};\nNgReverseStrPipeModule.ɵfac = function NgReverseStrPipeModule_Factory(t) { return new (t || NgReverseStrPipeModule)(); };\nNgReverseStrPipeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgReverseStrPipeModule });\nNgReverseStrPipeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n\nlet NgStringPipesModule = class NgStringPipesModule {\r\n};\nNgStringPipesModule.ɵfac = function NgStringPipesModule_Factory(t) { return new (t || NgStringPipesModule)(); };\nNgStringPipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgStringPipesModule });\nNgStringPipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n NgCapitalizePipeModule,\n NgDecodeURIComponentPipeModule,\n NgDecodeURIPipeModule,\n NgEncodeURIComponentPipeModule,\n NgLeftPadPipeModule,\n NgMatchPipeModule,\n NgPadPipeModule,\n NgReplacePipeModule,\n NgRightPadPipeModule,\n NgSplitPipeModule,\n NgTestPipeModule,\n NgTrimPipeModule,\n NgNewlinesPipeModule,\n NgUpperFirstPipeModule,\n NgTemplatePipeModule,\n NgEncodeURIPipeModule,\n NgTruncatePipeModule,\n NgRepeatPipeModule,\n NgSlugifyPipeModule,\n NgStripTagsPipeModule,\n NgLatinizePipeModule,\n NgWrapPipeModule,\n NgWithPipeModule,\n NgReverseStrPipeModule,\n ]] });\n\nlet NgPipesModule = class NgPipesModule {\r\n};\nNgPipesModule.ɵfac = function NgPipesModule_Factory(t) { return new (t || NgPipesModule)(); };\nNgPipesModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgPipesModule });\nNgPipesModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [NgArrayPipesModule, NgMathPipesModule, NgBooleanPipesModule, NgStringPipesModule, NgObjectPipesModule, NgAggregatePipesModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(GroupByPipe, [{\n type: Pipe,\n args: [{\n name: 'groupBy'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgGroupByPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [GroupByPipe],\n exports: [GroupByPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgGroupByPipeModule, { declarations: [GroupByPipe], exports: [GroupByPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MaxPipe, [{\n type: Pipe,\n args: [{\n name: 'max'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgMaxPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [MaxPipe],\n exports: [MaxPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgMaxPipeModule, { declarations: [MaxPipe], exports: [MaxPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MeanPipe, [{\n type: Pipe,\n args: [{\n name: 'mean'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgMeanPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [MeanPipe],\n exports: [MeanPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgMeanPipeModule, { declarations: [MeanPipe], exports: [MeanPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MinPipe, [{\n type: Pipe,\n args: [{\n name: 'min'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgMinPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [MinPipe],\n exports: [MinPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgMinPipeModule, { declarations: [MinPipe], exports: [MinPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SumPipe, [{\n type: Pipe,\n args: [{ name: 'sum' }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgSumPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [SumPipe],\n exports: [SumPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgSumPipeModule, { declarations: [SumPipe], exports: [SumPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgAggregatePipesModule, [{\n type: NgModule,\n args: [{\n imports: [NgGroupByPipeModule, NgMaxPipeModule, NgMeanPipeModule, NgMinPipeModule, NgSumPipeModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgAggregatePipesModule, { imports: [NgGroupByPipeModule, NgMaxPipeModule, NgMeanPipeModule, NgMinPipeModule, NgSumPipeModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EmptyPipe, [{\n type: Pipe,\n args: [{\n name: 'empty'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgEmptyPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [EmptyPipe],\n exports: [EmptyPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgEmptyPipeModule, { declarations: [EmptyPipe], exports: [EmptyPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(HeadPipe, [{\n type: Pipe,\n args: [{\n name: 'head'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgHeadPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [HeadPipe],\n exports: [HeadPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgHeadPipeModule, { declarations: [HeadPipe], exports: [HeadPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(InitialPipe, [{\n type: Pipe,\n args: [{\n name: 'initial'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgInitialPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [InitialPipe],\n exports: [InitialPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgInitialPipeModule, { declarations: [InitialPipe], exports: [InitialPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LastPipe, [{\n type: Pipe,\n args: [{\n name: 'last'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgLastPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [LastPipe],\n exports: [LastPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgLastPipeModule, { declarations: [LastPipe], exports: [LastPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(JoinPipe, [{\n type: Pipe,\n args: [{\n name: 'join'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgJoinPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [JoinPipe],\n exports: [JoinPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgJoinPipeModule, { declarations: [JoinPipe], exports: [JoinPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TailPipe, [{\n type: Pipe,\n args: [{\n name: 'tail'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTailPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [TailPipe],\n exports: [TailPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTailPipeModule, { declarations: [TailPipe], exports: [TailPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(UniqPipe, [{\n type: Pipe,\n args: [{\n name: 'uniq'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgUniqPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [UniqPipe],\n exports: [UniqPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgUniqPipeModule, { declarations: [UniqPipe], exports: [UniqPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WithoutPipe, [{\n type: Pipe,\n args: [{\n name: 'without'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgWithoutPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [WithoutPipe],\n exports: [WithoutPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgWithoutPipeModule, { declarations: [WithoutPipe], exports: [WithoutPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MapPipe, [{\n type: Pipe,\n args: [{\n name: 'map'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgMapPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [MapPipe],\n exports: [MapPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgMapPipeModule, { declarations: [MapPipe], exports: [MapPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WherePipe, [{\n type: Pipe,\n args: [{\n name: 'where'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgWherePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [WherePipe],\n exports: [WherePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgWherePipeModule, { declarations: [WherePipe], exports: [WherePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FirstOrDefaultPipe, [{\n type: Pipe,\n args: [{\n name: 'firstOrDefault'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgFirstOrDefaultPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [FirstOrDefaultPipe],\n exports: [FirstOrDefaultPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgFirstOrDefaultPipeModule, { declarations: [FirstOrDefaultPipe], exports: [FirstOrDefaultPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RangePipe, [{\n type: Pipe,\n args: [{\n name: 'range'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgRangePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [RangePipe],\n exports: [RangePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgRangePipeModule, { declarations: [RangePipe], exports: [RangePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PluckPipe, [{\n type: Pipe,\n args: [{\n name: 'pluck'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgPluckPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [PluckPipe],\n exports: [PluckPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgPluckPipeModule, { declarations: [PluckPipe], exports: [PluckPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ReversePipe, [{\n type: Pipe,\n args: [{\n name: 'reverse'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgReversePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [ReversePipe],\n exports: [ReversePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgReversePipeModule, { declarations: [ReversePipe], exports: [ReversePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(OrderByPipe, [{\n type: Pipe,\n args: [{\n name: 'orderBy'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgOrderByPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [OrderByPipe],\n exports: [OrderByPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgOrderByPipeModule, { declarations: [OrderByPipe], exports: [OrderByPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CountPipe, [{\n type: Pipe,\n args: [{\n name: 'count'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgCountPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [CountPipe],\n exports: [CountPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgCountPipeModule, { declarations: [CountPipe], exports: [CountPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SomePipe, [{\n type: Pipe,\n args: [{\n name: 'some'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgSomePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [SomePipe],\n exports: [SomePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgSomePipeModule, { declarations: [SomePipe], exports: [SomePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EveryPipe, [{\n type: Pipe,\n args: [{\n name: 'every'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgEveryPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [EveryPipe],\n exports: [EveryPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgEveryPipeModule, { declarations: [EveryPipe], exports: [EveryPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ShufflePipe, [{\n type: Pipe,\n args: [{\n name: 'shuffle'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgShufflePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [ShufflePipe],\n exports: [ShufflePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgShufflePipeModule, { declarations: [ShufflePipe], exports: [ShufflePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TakePipe, [{\n type: Pipe,\n args: [{\n name: 'take'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTakePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [TakePipe],\n exports: [TakePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTakePipeModule, { declarations: [TakePipe], exports: [TakePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DropPipe, [{\n type: Pipe,\n args: [{\n name: 'drop'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgDropPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [DropPipe],\n exports: [DropPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgDropPipeModule, { declarations: [DropPipe], exports: [DropPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DeepPipe, [{\n type: Pipe,\n args: [{\n name: 'deep'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgDeepPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [DeepPipe],\n exports: [DeepPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgDeepPipeModule, { declarations: [DeepPipe], exports: [DeepPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ChunkPipe, [{\n type: Pipe,\n args: [{\n name: 'chunk'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgChunkPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [ChunkPipe],\n exports: [ChunkPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgChunkPipeModule, { declarations: [ChunkPipe], exports: [ChunkPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FlattenPipe, [{\n type: Pipe,\n args: [{ name: 'flatten' }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgFlattenPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [FlattenPipe],\n exports: [FlattenPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgFlattenPipeModule, { declarations: [FlattenPipe], exports: [FlattenPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IntersectionPipe, [{\n type: Pipe,\n args: [{\n name: 'intersection'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIntersectionPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IntersectionPipe],\n exports: [IntersectionPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIntersectionPipeModule, { declarations: [IntersectionPipe], exports: [IntersectionPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(UnionPipe, [{\n type: Pipe,\n args: [{\n name: 'union'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgUnionPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [UnionPipe],\n exports: [UnionPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgUnionPipeModule, { declarations: [UnionPipe], exports: [UnionPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TakeWhilePipe, [{\n type: Pipe,\n args: [{\n name: 'takeWhile'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTakeWhilePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [TakeWhilePipe],\n exports: [TakeWhilePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTakeWhilePipeModule, { declarations: [TakeWhilePipe], exports: [TakeWhilePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TakeUntilPipe, [{\n type: Pipe,\n args: [{\n name: 'takeUntil'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTakeUntilPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [TakeUntilPipe],\n exports: [TakeUntilPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTakeUntilPipeModule, { declarations: [TakeUntilPipe], exports: [TakeUntilPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgArrayPipesModule, [{\n type: NgModule,\n args: [{\n imports: [\n NgChunkPipeModule,\n NgCountPipeModule,\n NgDeepPipeModule,\n NgDropPipeModule,\n NgEmptyPipeModule,\n NgEveryPipeModule,\n NgFirstOrDefaultPipeModule,\n NgFlattenPipeModule,\n NgHeadPipeModule,\n NgInitialPipeModule,\n NgIntersectionPipeModule,\n NgJoinPipeModule,\n NgLastPipeModule,\n NgMapPipeModule,\n NgOrderByPipeModule,\n NgPluckPipeModule,\n NgRangePipeModule,\n NgReversePipeModule,\n NgShufflePipeModule,\n NgSomePipeModule,\n NgTailPipeModule,\n NgTakeUntilPipeModule,\n NgTakeWhilePipeModule,\n NgTakePipeModule,\n NgUnionPipeModule,\n NgUniqPipeModule,\n NgWherePipeModule,\n NgWithoutPipeModule,\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgArrayPipesModule, { imports: [NgChunkPipeModule, NgCountPipeModule, NgDeepPipeModule, NgDropPipeModule, NgEmptyPipeModule, NgEveryPipeModule, NgFirstOrDefaultPipeModule, NgFlattenPipeModule, NgHeadPipeModule, NgInitialPipeModule, NgIntersectionPipeModule, NgJoinPipeModule, NgLastPipeModule, NgMapPipeModule, NgOrderByPipeModule, NgPluckPipeModule, NgRangePipeModule, NgReversePipeModule, NgShufflePipeModule, NgSomePipeModule, NgTailPipeModule, NgTakeUntilPipeModule, NgTakeWhilePipeModule, NgTakePipeModule, NgUnionPipeModule, NgUniqPipeModule, NgWherePipeModule, NgWithoutPipeModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsEqualPipe, [{\n type: Pipe,\n args: [{\n name: 'equal'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsEqualPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsEqualPipe],\n exports: [IsEqualPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsEqualPipeModule, { declarations: [IsEqualPipe], exports: [IsEqualPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsGreaterOrEqualPipe, [{\n type: Pipe,\n args: [{\n name: 'greaterOrEqual'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsGreaterOrEqualPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsGreaterOrEqualPipe],\n exports: [IsGreaterOrEqualPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsGreaterOrEqualPipeModule, { declarations: [IsGreaterOrEqualPipe], exports: [IsGreaterOrEqualPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsGreaterPipe, [{\n type: Pipe,\n args: [{\n name: 'greater'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsGreaterPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsGreaterPipe],\n exports: [IsGreaterPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsGreaterPipeModule, { declarations: [IsGreaterPipe], exports: [IsGreaterPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsIdenticalPipe, [{\n type: Pipe,\n args: [{\n name: 'identical'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsIdenticalPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsIdenticalPipe],\n exports: [IsIdenticalPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsIdenticalPipeModule, { declarations: [IsIdenticalPipe], exports: [IsIdenticalPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsLessOrEqualPipe, [{\n type: Pipe,\n args: [{\n name: 'lessOrEqual'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsLessOrEqualPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsLessOrEqualPipe],\n exports: [IsLessOrEqualPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsLessOrEqualPipeModule, { declarations: [IsLessOrEqualPipe], exports: [IsLessOrEqualPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsLessPipe, [{\n type: Pipe,\n args: [{\n name: 'less'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsLessPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsLessPipe],\n exports: [IsLessPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsLessPipeModule, { declarations: [IsLessPipe], exports: [IsLessPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNotEqualPipe, [{\n type: Pipe,\n args: [{\n name: 'notEqual'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsNotEqualPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsNotEqualPipe],\n exports: [IsNotEqualPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsNotEqualPipeModule, { declarations: [IsNotEqualPipe], exports: [IsNotEqualPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNotIdenticalPipe, [{\n type: Pipe,\n args: [{\n name: 'notIdentical'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsNotIdenticalPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsNotIdenticalPipe],\n exports: [IsNotIdenticalPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsNotIdenticalPipeModule, { declarations: [IsNotIdenticalPipe], exports: [IsNotIdenticalPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNullPipe, [{\n type: Pipe,\n args: [{\n name: 'isNull'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsNullPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsNullPipe],\n exports: [IsNullPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsNullPipeModule, { declarations: [IsNullPipe], exports: [IsNullPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsUndefinedPipe, [{\n type: Pipe,\n args: [{\n name: 'isUndefined'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsUndefinedPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsUndefinedPipe],\n exports: [IsUndefinedPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsUndefinedPipeModule, { declarations: [IsUndefinedPipe], exports: [IsUndefinedPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNilPipe, [{\n type: Pipe,\n args: [{\n name: 'isNil'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsNilPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsNilPipe],\n exports: [IsNilPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsNilPipeModule, { declarations: [IsNilPipe], exports: [IsNilPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsFunctionPipe, [{\n type: Pipe,\n args: [{\n name: 'isFunction'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsFunctionPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsFunctionPipe],\n exports: [IsFunctionPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsFunctionPipeModule, { declarations: [IsFunctionPipe], exports: [IsFunctionPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsNumberPipe, [{\n type: Pipe,\n args: [{\n name: 'isNumber'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsNumberPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsNumberPipe],\n exports: [IsNumberPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsNumberPipeModule, { declarations: [IsNumberPipe], exports: [IsNumberPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsStringPipe, [{\n type: Pipe,\n args: [{\n name: 'isString'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsStringPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsStringPipe],\n exports: [IsStringPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsStringPipeModule, { declarations: [IsStringPipe], exports: [IsStringPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsArrayPipe, [{\n type: Pipe,\n args: [{\n name: 'isArray'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsArrayPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsArrayPipe],\n exports: [IsArrayPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsArrayPipeModule, { declarations: [IsArrayPipe], exports: [IsArrayPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsObjectPipe, [{\n type: Pipe,\n args: [{\n name: 'isObject'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsObjectPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsObjectPipe],\n exports: [IsObjectPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsObjectPipeModule, { declarations: [IsObjectPipe], exports: [IsObjectPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(IsDefinedPipe, [{\n type: Pipe,\n args: [{\n name: 'isDefined'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgIsDefinedPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [IsDefinedPipe],\n exports: [IsDefinedPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgIsDefinedPipeModule, { declarations: [IsDefinedPipe], exports: [IsDefinedPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTypesPipesModule, [{\n type: NgModule,\n args: [{\n imports: [\n NgIsNullPipeModule,\n NgIsUndefinedPipeModule,\n NgIsNilPipeModule,\n NgIsFunctionPipeModule,\n NgIsNumberPipeModule,\n NgIsStringPipeModule,\n NgIsArrayPipeModule,\n NgIsObjectPipeModule,\n NgIsDefinedPipeModule,\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTypesPipesModule, { imports: [NgIsNullPipeModule, NgIsUndefinedPipeModule, NgIsNilPipeModule, NgIsFunctionPipeModule, NgIsNumberPipeModule, NgIsStringPipeModule, NgIsArrayPipeModule, NgIsObjectPipeModule, NgIsDefinedPipeModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgConditionsPipesModule, [{\n type: NgModule,\n args: [{\n imports: [\n NgIsEqualPipeModule,\n NgIsGreaterOrEqualPipeModule,\n NgIsGreaterPipeModule,\n NgIsIdenticalPipeModule,\n NgIsLessOrEqualPipeModule,\n NgIsLessPipeModule,\n NgIsNotEqualPipeModule,\n NgIsNotIdenticalPipeModule,\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgConditionsPipesModule, { imports: [NgIsEqualPipeModule, NgIsGreaterOrEqualPipeModule, NgIsGreaterPipeModule, NgIsIdenticalPipeModule, NgIsLessOrEqualPipeModule, NgIsLessPipeModule, NgIsNotEqualPipeModule, NgIsNotIdenticalPipeModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgBooleanPipesModule, [{\n type: NgModule,\n args: [{\n imports: [NgConditionsPipesModule, NgTypesPipesModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgBooleanPipesModule, { imports: [NgConditionsPipesModule, NgTypesPipesModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BytesPipe, [{\n type: Pipe,\n args: [{\n name: 'bytes'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgBytesPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [BytesPipe],\n exports: [BytesPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgBytesPipeModule, { declarations: [BytesPipe], exports: [BytesPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CeilPipe, [{\n type: Pipe,\n args: [{\n name: 'ceil'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgCeilPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [CeilPipe],\n exports: [CeilPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgCeilPipeModule, { declarations: [CeilPipe], exports: [CeilPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(FloorPipe, [{\n type: Pipe,\n args: [{\n name: 'floor'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgFloorPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [FloorPipe],\n exports: [FloorPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgFloorPipeModule, { declarations: [FloorPipe], exports: [FloorPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RoundPipe, [{\n type: Pipe,\n args: [{\n name: 'round'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgRoundPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [RoundPipe],\n exports: [RoundPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgRoundPipeModule, { declarations: [RoundPipe], exports: [RoundPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DegreesPipe, [{\n type: Pipe,\n args: [{\n name: 'degrees'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgDegreesPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [DegreesPipe],\n exports: [DegreesPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgDegreesPipeModule, { declarations: [DegreesPipe], exports: [DegreesPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RadiansPipe, [{\n type: Pipe,\n args: [{\n name: 'radians'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgRadiansPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [RadiansPipe],\n exports: [RadiansPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgRadiansPipeModule, { declarations: [RadiansPipe], exports: [RadiansPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RandomPipe, [{\n type: Pipe,\n args: [{\n name: 'random'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgRandomPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [RandomPipe],\n exports: [RandomPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgRandomPipeModule, { declarations: [RandomPipe], exports: [RandomPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SqrtPipe, [{\n type: Pipe,\n args: [{\n name: 'sqrt'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgSqrtPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [SqrtPipe],\n exports: [SqrtPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgSqrtPipeModule, { declarations: [SqrtPipe], exports: [SqrtPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PowPipe, [{\n type: Pipe,\n args: [{\n name: 'pow'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgPowPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [PowPipe],\n exports: [PowPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgPowPipeModule, { declarations: [PowPipe], exports: [PowPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AbsPipe, [{\n type: Pipe,\n args: [{\n name: 'abs'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgAbsPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [AbsPipe],\n exports: [AbsPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgAbsPipeModule, { declarations: [AbsPipe], exports: [AbsPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(OrdinalPipe, [{\n type: Pipe,\n args: [{\n name: 'ordinal'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgOrdinalPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [OrdinalPipe],\n exports: [OrdinalPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgOrdinalPipeModule, { declarations: [OrdinalPipe], exports: [OrdinalPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgMathPipesModule, [{\n type: NgModule,\n args: [{\n imports: [\n NgAbsPipeModule,\n NgBytesPipeModule,\n NgCeilPipeModule,\n NgDegreesPipeModule,\n NgFloorPipeModule,\n NgOrdinalPipeModule,\n NgPowPipeModule,\n NgRadiansPipeModule,\n NgRandomPipeModule,\n NgRoundPipeModule,\n NgSqrtPipeModule,\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgMathPipesModule, { imports: [NgAbsPipeModule, NgBytesPipeModule, NgCeilPipeModule, NgDegreesPipeModule, NgFloorPipeModule, NgOrdinalPipeModule, NgPowPipeModule, NgRadiansPipeModule, NgRandomPipeModule, NgRoundPipeModule, NgSqrtPipeModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(KeysPipe, [{\n type: Pipe,\n args: [{ name: 'keys' }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgKeysPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [KeysPipe],\n exports: [KeysPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgKeysPipeModule, { declarations: [KeysPipe], exports: [KeysPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ToArrayPipe, [{\n type: Pipe,\n args: [{ name: 'toArray' }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgToArrayPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [ToArrayPipe],\n exports: [ToArrayPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgToArrayPipeModule, { declarations: [ToArrayPipe], exports: [ToArrayPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DefaultsPipe, [{\n type: Pipe,\n args: [{ name: 'defaults' }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgDefaultsPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [DefaultsPipe],\n exports: [DefaultsPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgDefaultsPipeModule, { declarations: [DefaultsPipe], exports: [DefaultsPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgObjectPipesModule, [{\n type: NgModule,\n args: [{\n imports: [NgKeysPipeModule, NgToArrayPipeModule, NgDefaultsPipeModule]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgObjectPipesModule, { imports: [NgKeysPipeModule, NgToArrayPipeModule, NgDefaultsPipeModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LeftPadPipe, [{\n type: Pipe,\n args: [{\n name: 'leftpad'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgLeftPadPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [LeftPadPipe],\n exports: [LeftPadPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgLeftPadPipeModule, { declarations: [LeftPadPipe], exports: [LeftPadPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatchPipe, [{\n type: Pipe,\n args: [{\n name: 'match'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgMatchPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [MatchPipe],\n exports: [MatchPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgMatchPipeModule, { declarations: [MatchPipe], exports: [MatchPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(PadPipe, [{\n type: Pipe,\n args: [{\n name: 'pad'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgPadPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [PadPipe],\n exports: [PadPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgPadPipeModule, { declarations: [PadPipe], exports: [PadPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ReplacePipe, [{\n type: Pipe,\n args: [{\n name: 'replace'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgReplacePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [ReplacePipe],\n exports: [ReplacePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgReplacePipeModule, { declarations: [ReplacePipe], exports: [ReplacePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RightPadPipe, [{\n type: Pipe,\n args: [{\n name: 'rightpad'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgRightPadPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [RightPadPipe],\n exports: [RightPadPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgRightPadPipeModule, { declarations: [RightPadPipe], exports: [RightPadPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SplitPipe, [{\n type: Pipe,\n args: [{\n name: 'split'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgSplitPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [SplitPipe],\n exports: [SplitPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgSplitPipeModule, { declarations: [SplitPipe], exports: [SplitPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TestPipe, [{\n type: Pipe,\n args: [{\n name: 'test'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTestPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [TestPipe],\n exports: [TestPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTestPipeModule, { declarations: [TestPipe], exports: [TestPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TrimPipe, [{\n type: Pipe,\n args: [{\n name: 'trim'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTrimPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [TrimPipe],\n exports: [TrimPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTrimPipeModule, { declarations: [TrimPipe], exports: [TrimPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NewlinesPipe, [{\n type: Pipe,\n args: [{\n name: 'newlines'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgNewlinesPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [NewlinesPipe],\n exports: [NewlinesPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgNewlinesPipeModule, { declarations: [NewlinesPipe], exports: [NewlinesPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(CapitalizePipe, [{\n type: Pipe,\n args: [{\n name: 'capitalize'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgCapitalizePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [CapitalizePipe],\n exports: [CapitalizePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgCapitalizePipeModule, { declarations: [CapitalizePipe], exports: [CapitalizePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(UpperFirstPipe, [{\n type: Pipe,\n args: [{\n name: 'upperfirst'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgUpperFirstPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [UpperFirstPipe],\n exports: [UpperFirstPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgUpperFirstPipeModule, { declarations: [UpperFirstPipe], exports: [UpperFirstPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TemplatePipe, [{\n type: Pipe,\n args: [{\n name: 'template'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTemplatePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [TemplatePipe],\n exports: [TemplatePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTemplatePipeModule, { declarations: [TemplatePipe], exports: [TemplatePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EncodeURIPipe, [{\n type: Pipe,\n args: [{\n name: 'encodeURI'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgEncodeURIPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [EncodeURIPipe],\n exports: [EncodeURIPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgEncodeURIPipeModule, { declarations: [EncodeURIPipe], exports: [EncodeURIPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(EncodeURIComponentPipe, [{\n type: Pipe,\n args: [{\n name: 'encodeURIComponent'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgEncodeURIComponentPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [EncodeURIComponentPipe],\n exports: [EncodeURIComponentPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgEncodeURIComponentPipeModule, { declarations: [EncodeURIComponentPipe], exports: [EncodeURIComponentPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DecodeURIPipe, [{\n type: Pipe,\n args: [{\n name: 'decodeURI'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgDecodeURIPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [DecodeURIPipe],\n exports: [DecodeURIPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgDecodeURIPipeModule, { declarations: [DecodeURIPipe], exports: [DecodeURIPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DecodeURIComponentPipe, [{\n type: Pipe,\n args: [{\n name: 'decodeURIComponent'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgDecodeURIComponentPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [DecodeURIComponentPipe],\n exports: [DecodeURIComponentPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgDecodeURIComponentPipeModule, { declarations: [DecodeURIComponentPipe], exports: [DecodeURIComponentPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TruncatePipe, [{\n type: Pipe,\n args: [{\n name: 'truncate'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgTruncatePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [TruncatePipe],\n exports: [TruncatePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgTruncatePipeModule, { declarations: [TruncatePipe], exports: [TruncatePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(RepeatPipe, [{\n type: Pipe,\n args: [{\n name: 'repeat'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgRepeatPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [RepeatPipe],\n exports: [RepeatPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgRepeatPipeModule, { declarations: [RepeatPipe], exports: [RepeatPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SlugifyPipe, [{\n type: Pipe,\n args: [{ name: 'slugify' }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgSlugifyPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [SlugifyPipe],\n exports: [SlugifyPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgSlugifyPipeModule, { declarations: [SlugifyPipe], exports: [SlugifyPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(StripTagsPipe, [{\n type: Pipe,\n args: [{\n name: 'stripTags'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgStripTagsPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [StripTagsPipe],\n exports: [StripTagsPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgStripTagsPipeModule, { declarations: [StripTagsPipe], exports: [StripTagsPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LatinizePipe, [{\n type: Pipe,\n args: [{ name: 'latinize' }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgLatinizePipeModule, [{\n type: NgModule,\n args: [{\n declarations: [LatinizePipe],\n exports: [LatinizePipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgLatinizePipeModule, { declarations: [LatinizePipe], exports: [LatinizePipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WrapPipe, [{\n type: Pipe,\n args: [{\n name: 'wrap'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgWrapPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [WrapPipe],\n exports: [WrapPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgWrapPipeModule, { declarations: [WrapPipe], exports: [WrapPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WithPipe, [{\n type: Pipe,\n args: [{ name: 'with' }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgWithPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [WithPipe],\n exports: [WithPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgWithPipeModule, { declarations: [WithPipe], exports: [WithPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ReverseStrPipe, [{\n type: Pipe,\n args: [{\n name: 'reverseStr'\n }]\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgReverseStrPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [ReverseStrPipe],\n exports: [ReverseStrPipe]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgReverseStrPipeModule, { declarations: [ReverseStrPipe], exports: [ReverseStrPipe] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgStringPipesModule, [{\n type: NgModule,\n args: [{\n imports: [\n NgCapitalizePipeModule,\n NgDecodeURIComponentPipeModule,\n NgDecodeURIPipeModule,\n NgEncodeURIComponentPipeModule,\n NgLeftPadPipeModule,\n NgMatchPipeModule,\n NgPadPipeModule,\n NgReplacePipeModule,\n NgRightPadPipeModule,\n NgSplitPipeModule,\n NgTestPipeModule,\n NgTrimPipeModule,\n NgNewlinesPipeModule,\n NgUpperFirstPipeModule,\n NgTemplatePipeModule,\n NgEncodeURIPipeModule,\n NgTruncatePipeModule,\n NgRepeatPipeModule,\n NgSlugifyPipeModule,\n NgStripTagsPipeModule,\n NgLatinizePipeModule,\n NgWrapPipeModule,\n NgWithPipeModule,\n NgReverseStrPipeModule,\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgStringPipesModule, { imports: [NgCapitalizePipeModule, NgDecodeURIComponentPipeModule, NgDecodeURIPipeModule, NgEncodeURIComponentPipeModule, NgLeftPadPipeModule, NgMatchPipeModule, NgPadPipeModule, NgReplacePipeModule, NgRightPadPipeModule, NgSplitPipeModule, NgTestPipeModule, NgTrimPipeModule, NgNewlinesPipeModule, NgUpperFirstPipeModule, NgTemplatePipeModule, NgEncodeURIPipeModule, NgTruncatePipeModule, NgRepeatPipeModule, NgSlugifyPipeModule, NgStripTagsPipeModule, NgLatinizePipeModule, NgWrapPipeModule, NgWithPipeModule, NgReverseStrPipeModule] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgPipesModule, [{\n type: NgModule,\n args: [{\n exports: [\n NgArrayPipesModule,\n NgMathPipesModule,\n NgBooleanPipesModule,\n NgStringPipesModule,\n NgObjectPipesModule,\n NgAggregatePipesModule,\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgPipesModule, { exports: [NgArrayPipesModule, NgMathPipesModule, NgBooleanPipesModule, NgStringPipesModule, NgObjectPipesModule, NgAggregatePipesModule] }); })();\n\nexport { AbsPipe, BytesPipe, CapitalizePipe, CeilPipe, ChunkPipe, CountPipe, DecodeURIComponentPipe, DecodeURIPipe, DeepPipe, DefaultsPipe, DegreesPipe, DropPipe, EmptyPipe, EncodeURIComponentPipe, EncodeURIPipe, EveryPipe, FirstOrDefaultPipe, FlattenPipe, FloorPipe, GroupByPipe, HeadPipe, InitialPipe, IntersectionPipe, IsArrayPipe, IsDefinedPipe, IsEqualPipe, IsFunctionPipe, IsGreaterOrEqualPipe, IsGreaterPipe, IsIdenticalPipe, IsLessOrEqualPipe, IsLessPipe, IsNilPipe, IsNotEqualPipe, IsNotIdenticalPipe, IsNullPipe, IsNumberPipe, IsObjectPipe, IsStringPipe, IsUndefinedPipe, JoinPipe, KeysPipe, LastPipe, LatinizePipe, LeftPadPipe, MapPipe, MatchPipe, MaxPipe, MeanPipe, MinPipe, NewlinesPipe, NgAbsPipeModule, NgAggregatePipesModule, NgArrayPipesModule, NgBooleanPipesModule, NgBytesPipeModule, NgCapitalizePipeModule, NgCeilPipeModule, NgChunkPipeModule, NgConditionsPipesModule, NgCountPipeModule, NgDecodeURIComponentPipeModule, NgDecodeURIPipeModule, NgDeepPipeModule, NgDefaultsPipeModule, NgDegreesPipeModule, NgDropPipeModule, NgEmptyPipeModule, NgEncodeURIComponentPipeModule, NgEncodeURIPipeModule, NgEveryPipeModule, NgFirstOrDefaultPipeModule, NgFlattenPipeModule, NgFloorPipeModule, NgGroupByPipeModule, NgHeadPipeModule, NgInitialPipeModule, NgIntersectionPipeModule, NgIsArrayPipeModule, NgIsDefinedPipeModule, NgIsEqualPipeModule, NgIsFunctionPipeModule, NgIsGreaterOrEqualPipeModule, NgIsGreaterPipeModule, NgIsIdenticalPipeModule, NgIsLessOrEqualPipeModule, NgIsLessPipeModule, NgIsNilPipeModule, NgIsNotEqualPipeModule, NgIsNotIdenticalPipeModule, NgIsNullPipeModule, NgIsNumberPipeModule, NgIsObjectPipeModule, NgIsStringPipeModule, NgIsUndefinedPipeModule, NgJoinPipeModule, NgKeysPipeModule, NgLastPipeModule, NgLatinizePipeModule, NgLeftPadPipeModule, NgMapPipeModule, NgMatchPipeModule, NgMathPipesModule, NgMaxPipeModule, NgMeanPipeModule, NgMinPipeModule, NgNewlinesPipeModule, NgObjectPipesModule, NgOrderByPipeModule, NgOrdinalPipeModule, NgPadPipeModule, NgPipesModule, NgPluckPipeModule, NgPowPipeModule, NgRadiansPipeModule, NgRandomPipeModule, NgRangePipeModule, NgRepeatPipeModule, NgReplacePipeModule, NgReversePipeModule, NgReverseStrPipeModule, NgRightPadPipeModule, NgRoundPipeModule, NgShufflePipeModule, NgSlugifyPipeModule, NgSomePipeModule, NgSplitPipeModule, NgSqrtPipeModule, NgStringPipesModule, NgStripTagsPipeModule, NgSumPipeModule, NgTailPipeModule, NgTakePipeModule, NgTakeUntilPipeModule, NgTakeWhilePipeModule, NgTemplatePipeModule, NgTestPipeModule, NgToArrayPipeModule, NgTrimPipeModule, NgTruncatePipeModule, NgTypesPipesModule, NgUnionPipeModule, NgUniqPipeModule, NgUpperFirstPipeModule, NgWherePipeModule, NgWithPipeModule, NgWithoutPipeModule, NgWrapPipeModule, OrderByPipe, OrdinalPipe, PadPipe, PluckPipe, PowPipe, RadiansPipe, RandomPipe, RangePipe, RepeatPipe, ReplacePipe, ReversePipe, ReverseStrPipe, RightPadPipe, RoundPipe, ShufflePipe, SlugifyPipe, SomePipe, SplitPipe, SqrtPipe, StripTagsPipe, SumPipe, TailPipe, TakePipe, TakeUntilPipe, TakeWhilePipe, TemplatePipe, TestPipe, ToArrayPipe, TrimPipe, TruncatePipe, UnionPipe, UniqPipe, UpperFirstPipe, WherePipe, WithPipe, WithoutPipe, WrapPipe };\n\n","/*!\n * Chart.js v3.7.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as getRelativePosition$1, z as _isPointInArea, A as _rlookupByKey, B as getAngleFromPoint, C as toPadding, D as each, E as getMaximumSize, F as _getParentNode, G as readUsedSize, I as throttled, J as supportsEventListenerOptions, K as _isDomSupported, L as log10, M as _factorize, N as finiteOrDefault, O as callback, Q as _addGrace, R as toDegrees, S as _measureText, U as _int16Range, V as _alignPixel, W as clipArea, X as renderText, Y as unclipArea, Z as toFont, $ as _toLeftRightCenter, a0 as _alignStartEnd, a1 as overrides, a2 as merge, a3 as _capitalize, a4 as descriptors, a5 as isFunction, a6 as _attachContext, a7 as _createResolver, a8 as _descriptors, a9 as mergeIf, aa as uid, ab as debounce, ac as retinaScale, ad as clearCanvas, ae as setsEqual, af as _elementsEqual, ag as _isClickEvent, ah as _isBetween, ai as _readValueToProps, aj as _updateBezierControlPoints, ak as _computeSegments, al as _boundSegments, am as _steppedInterpolation, an as _bezierInterpolation, ao as _pointInLine, ap as _steppedLineTo, aq as _bezierCurveTo, ar as drawPoint, as as addRoundedRectPath, at as toTRBL, au as toTRBLCorners, av as _boundSegment, aw as _normalizeAngle, ax as getRtlAdapter, ay as overrideTextDirection, az as _textX, aA as restoreTextDirection, aB as noop, aC as distanceBetweenPoints, aD as _setMinAndMaxByKey, aE as niceNum, aF as almostWhole, aG as almostEquals, aH as _decimalPlaces, aI as _longestText, aJ as _filterBetween, aK as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const dataset = this.getDataset();\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const dataset = this.getDataset();\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(dataset.data[index]) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const dataset = this.getDataset();\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n return getRelativePosition$1(e, chart);\n}\nfunction evaluateAllVisibleItems(chart, handler) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n let index, data, element;\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n ({index, data} = metasets[i]);\n for (let j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n const items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = _isPointInArea(center, chart.chartArea, chart._minPadding);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition);\n}\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const items = [];\n const axis = options.axis;\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateAllVisibleItems(chart, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n if (options.intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition)\n : getNearestItems(chart, position, axis, false, useFinalPosition);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition) :\n getNearestItems(chart, position, axis, false, useFinalPosition);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x(chart, e, options, useFinalPosition) {\n return getAxisItems(chart, e, {axis: 'x', intersect: options.intersect}, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n return getAxisItems(chart, e, {axis: 'y', intersect: options.intersect}, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition$1(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n if (isHorizontal) {\n x = pixel;\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n return plugins;\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, plugins, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.7.0\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: _isPointInArea(e, this.chartArea, this._minPadding)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (meta.type !== 'line') {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\nfunction decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n let target = null;\n let horizontal;\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n return null;\n}\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const target = [];\n const start = options.reverse ? scale.max : scale.min;\n const end = options.reverse ? scale.min : scale.max;\n let i, center, value;\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\nfunction getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return createBoundaryLine(boundary, line);\n}\nfunction createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _clip(ctx, target, clipY) {\n ctx.beginPath();\n target.path(ctx);\n ctx.lineTo(target.last().x, clipY);\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = findSegmentEnd(start, end, points);\n const bounds = getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\nfunction _fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n _fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n _clip(ctx, target, area.bottom);\n }\n _fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction drawfill(ctx, source, area) {\n const target = getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: plugin_filler,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","/*!\n * Chart.js v3.7.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\nconst map = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = '0123456789ABCDEF';\nconst h1 = (b) => hex[b & 0xF];\nconst h2 = (b) => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = (b) => (((b & 0xF0) >> 4) === (b & 0xF));\nfunction isShort(v) {\n\treturn eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\nfunction hexParse(str) {\n\tvar len = str.length;\n\tvar ret;\n\tif (str[0] === '#') {\n\t\tif (len === 4 || len === 5) {\n\t\t\tret = {\n\t\t\t\tr: 255 & map[str[1]] * 17,\n\t\t\t\tg: 255 & map[str[2]] * 17,\n\t\t\t\tb: 255 & map[str[3]] * 17,\n\t\t\t\ta: len === 5 ? map[str[4]] * 17 : 255\n\t\t\t};\n\t\t} else if (len === 7 || len === 9) {\n\t\t\tret = {\n\t\t\t\tr: map[str[1]] << 4 | map[str[2]],\n\t\t\t\tg: map[str[3]] << 4 | map[str[4]],\n\t\t\t\tb: map[str[5]] << 4 | map[str[6]],\n\t\t\t\ta: len === 9 ? (map[str[7]] << 4 | map[str[8]]) : 255\n\t\t\t};\n\t\t}\n\t}\n\treturn ret;\n}\nfunction hexString(v) {\n\tvar f = isShort(v) ? h1 : h2;\n\treturn v\n\t\t? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '')\n\t\t: v;\n}\nfunction round(v) {\n\treturn v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n\treturn lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n\treturn lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n\treturn lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n\treturn lim(round(v * 100), 0, 100);\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n\tconst m = RGB_RE.exec(str);\n\tlet a = 255;\n\tlet r, g, b;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[7] !== r) {\n\t\tconst v = +m[7];\n\t\ta = 255 & (m[8] ? p2b(v) : v * 255);\n\t}\n\tr = +m[1];\n\tg = +m[3];\n\tb = +m[5];\n\tr = 255 & (m[2] ? p2b(r) : r);\n\tg = 255 & (m[4] ? p2b(g) : g);\n\tb = 255 & (m[6] ? p2b(b) : b);\n\treturn {\n\t\tr: r,\n\t\tg: g,\n\t\tb: b,\n\t\ta: a\n\t};\n}\nfunction rgbString(v) {\n\treturn v && (\n\t\tv.a < 255\n\t\t\t? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n\t\t\t: `rgb(${v.r}, ${v.g}, ${v.b})`\n\t);\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\treturn [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n\tconst f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\treturn [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n\tconst rgb = hsl2rgbn(h, 1, 0.5);\n\tlet i;\n\tif (w + b > 1) {\n\t\ti = 1 / (w + b);\n\t\tw *= i;\n\t\tb *= i;\n\t}\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] *= 1 - w - b;\n\t\trgb[i] += w;\n\t}\n\treturn rgb;\n}\nfunction rgb2hsl(v) {\n\tconst range = 255;\n\tconst r = v.r / range;\n\tconst g = v.g / range;\n\tconst b = v.b / range;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst l = (max + min) / 2;\n\tlet h, s, d;\n\tif (max !== min) {\n\t\td = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\th = max === r\n\t\t\t? ((g - b) / d) + (g < b ? 6 : 0)\n\t\t\t: max === g\n\t\t\t\t? (b - r) / d + 2\n\t\t\t\t: (r - g) / d + 4;\n\t\th = h * 60 + 0.5;\n\t}\n\treturn [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n\treturn (\n\t\tArray.isArray(a)\n\t\t\t? f(a[0], a[1], a[2])\n\t\t\t: f(a, b, c)\n\t).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n\treturn calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n\treturn calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n\treturn calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n\treturn (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n\tconst m = HUE_RE.exec(str);\n\tlet a = 255;\n\tlet v;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[5] !== v) {\n\t\ta = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n\t}\n\tconst h = hue(+m[2]);\n\tconst p1 = +m[3] / 100;\n\tconst p2 = +m[4] / 100;\n\tif (m[1] === 'hwb') {\n\t\tv = hwb2rgb(h, p1, p2);\n\t} else if (m[1] === 'hsv') {\n\t\tv = hsv2rgb(h, p1, p2);\n\t} else {\n\t\tv = hsl2rgb(h, p1, p2);\n\t}\n\treturn {\n\t\tr: v[0],\n\t\tg: v[1],\n\t\tb: v[2],\n\t\ta: a\n\t};\n}\nfunction rotate(v, deg) {\n\tvar h = rgb2hsl(v);\n\th[0] = hue(h[0] + deg);\n\th = hsl2rgb(h);\n\tv.r = h[0];\n\tv.g = h[1];\n\tv.b = h[2];\n}\nfunction hslString(v) {\n\tif (!v) {\n\t\treturn;\n\t}\n\tconst a = rgb2hsl(v);\n\tconst h = a[0];\n\tconst s = n2p(a[1]);\n\tconst l = n2p(a[2]);\n\treturn v.a < 255\n\t\t? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n\t\t: `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map$1 = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n\tconst unpacked = {};\n\tconst keys = Object.keys(names);\n\tconst tkeys = Object.keys(map$1);\n\tlet i, j, k, ok, nk;\n\tfor (i = 0; i < keys.length; i++) {\n\t\tok = nk = keys[i];\n\t\tfor (j = 0; j < tkeys.length; j++) {\n\t\t\tk = tkeys[j];\n\t\t\tnk = nk.replace(k, map$1[k]);\n\t\t}\n\t\tk = parseInt(names[ok], 16);\n\t\tunpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n\t}\n\treturn unpacked;\n}\nlet names$1;\nfunction nameParse(str) {\n\tif (!names$1) {\n\t\tnames$1 = unpack();\n\t\tnames$1.transparent = [0, 0, 0, 0];\n\t}\n\tconst a = names$1[str.toLowerCase()];\n\treturn a && {\n\t\tr: a[0],\n\t\tg: a[1],\n\t\tb: a[2],\n\t\ta: a.length === 4 ? a[3] : 255\n\t};\n}\nfunction modHSL(v, i, ratio) {\n\tif (v) {\n\t\tlet tmp = rgb2hsl(v);\n\t\ttmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n\t\ttmp = hsl2rgb(tmp);\n\t\tv.r = tmp[0];\n\t\tv.g = tmp[1];\n\t\tv.b = tmp[2];\n\t}\n}\nfunction clone(v, proto) {\n\treturn v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n\tvar v = {r: 0, g: 0, b: 0, a: 255};\n\tif (Array.isArray(input)) {\n\t\tif (input.length >= 3) {\n\t\t\tv = {r: input[0], g: input[1], b: input[2], a: 255};\n\t\t\tif (input.length > 3) {\n\t\t\t\tv.a = n2b(input[3]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tv = clone(input, {r: 0, g: 0, b: 0, a: 1});\n\t\tv.a = n2b(v.a);\n\t}\n\treturn v;\n}\nfunction functionParse(str) {\n\tif (str.charAt(0) === 'r') {\n\t\treturn rgbParse(str);\n\t}\n\treturn hueParse(str);\n}\nclass Color {\n\tconstructor(input) {\n\t\tif (input instanceof Color) {\n\t\t\treturn input;\n\t\t}\n\t\tconst type = typeof input;\n\t\tlet v;\n\t\tif (type === 'object') {\n\t\t\tv = fromObject(input);\n\t\t} else if (type === 'string') {\n\t\t\tv = hexParse(input) || nameParse(input) || functionParse(input);\n\t\t}\n\t\tthis._rgb = v;\n\t\tthis._valid = !!v;\n\t}\n\tget valid() {\n\t\treturn this._valid;\n\t}\n\tget rgb() {\n\t\tvar v = clone(this._rgb);\n\t\tif (v) {\n\t\t\tv.a = b2n(v.a);\n\t\t}\n\t\treturn v;\n\t}\n\tset rgb(obj) {\n\t\tthis._rgb = fromObject(obj);\n\t}\n\trgbString() {\n\t\treturn this._valid ? rgbString(this._rgb) : this._rgb;\n\t}\n\thexString() {\n\t\treturn this._valid ? hexString(this._rgb) : this._rgb;\n\t}\n\thslString() {\n\t\treturn this._valid ? hslString(this._rgb) : this._rgb;\n\t}\n\tmix(color, weight) {\n\t\tconst me = this;\n\t\tif (color) {\n\t\t\tconst c1 = me.rgb;\n\t\t\tconst c2 = color.rgb;\n\t\t\tlet w2;\n\t\t\tconst p = weight === w2 ? 0.5 : weight;\n\t\t\tconst w = 2 * p - 1;\n\t\t\tconst a = c1.a - c2.a;\n\t\t\tconst w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\t\tw2 = 1 - w1;\n\t\t\tc1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n\t\t\tc1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n\t\t\tc1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n\t\t\tc1.a = p * c1.a + (1 - p) * c2.a;\n\t\t\tme.rgb = c1;\n\t\t}\n\t\treturn me;\n\t}\n\tclone() {\n\t\treturn new Color(this.rgb);\n\t}\n\talpha(a) {\n\t\tthis._rgb.a = n2b(a);\n\t\treturn this;\n\t}\n\tclearer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 - ratio;\n\t\treturn this;\n\t}\n\tgreyscale() {\n\t\tconst rgb = this._rgb;\n\t\tconst val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n\t\trgb.r = rgb.g = rgb.b = val;\n\t\treturn this;\n\t}\n\topaquer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 + ratio;\n\t\treturn this;\n\t}\n\tnegate() {\n\t\tconst v = this._rgb;\n\t\tv.r = 255 - v.r;\n\t\tv.g = 255 - v.g;\n\t\tv.b = 255 - v.b;\n\t\treturn this;\n\t}\n\tlighten(ratio) {\n\t\tmodHSL(this._rgb, 2, ratio);\n\t\treturn this;\n\t}\n\tdarken(ratio) {\n\t\tmodHSL(this._rgb, 2, -ratio);\n\t\treturn this;\n\t}\n\tsaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, ratio);\n\t\treturn this;\n\t}\n\tdesaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, -ratio);\n\t\treturn this;\n\t}\n\trotate(deg) {\n\t\trotate(this._rgb, deg);\n\t\treturn this;\n\t}\n}\nfunction index_esm(input) {\n\treturn new Color(input);\n}\n\nconst isPatternOrGradient = (value) => value instanceof CanvasGradient || value instanceof CanvasPattern;\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n let type, xOffset, yOffset, size, cornerRadius;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(evt, canvas) {\n const e = evt.native || evt;\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _toLeftRightCenter as $, _rlookupByKey as A, getAngleFromPoint as B, toPadding as C, each as D, getMaximumSize as E, _getParentNode as F, readUsedSize as G, HALF_PI as H, throttled as I, supportsEventListenerOptions as J, _isDomSupported as K, log10 as L, _factorize as M, finiteOrDefault as N, callback as O, PI as P, _addGrace as Q, toDegrees as R, _measureText as S, TAU as T, _int16Range as U, _alignPixel as V, clipArea as W, renderText as X, unclipArea as Y, toFont as Z, _arrayUnique as _, resolve as a, _angleDiff as a$, _alignStartEnd as a0, overrides as a1, merge as a2, _capitalize as a3, descriptors as a4, isFunction as a5, _attachContext as a6, _createResolver as a7, _descriptors as a8, mergeIf as a9, restoreTextDirection as aA, noop as aB, distanceBetweenPoints as aC, _setMinAndMaxByKey as aD, niceNum as aE, almostWhole as aF, almostEquals as aG, _decimalPlaces as aH, _longestText as aI, _filterBetween as aJ, _lookup as aK, getHoverColor as aL, clone$1 as aM, _merger as aN, _mergerIf as aO, _deprecated as aP, toFontString as aQ, splineCurve as aR, splineCurveMonotone as aS, getStyle as aT, fontString as aU, toLineHeight as aV, PITAU as aW, INFINITY as aX, RAD_PER_DEG as aY, QUARTER_PI as aZ, TWO_THIRDS_PI as a_, uid as aa, debounce as ab, retinaScale as ac, clearCanvas as ad, setsEqual as ae, _elementsEqual as af, _isClickEvent as ag, _isBetween as ah, _readValueToProps as ai, _updateBezierControlPoints as aj, _computeSegments as ak, _boundSegments as al, _steppedInterpolation as am, _bezierInterpolation as an, _pointInLine as ao, _steppedLineTo as ap, _bezierCurveTo as aq, drawPoint as ar, addRoundedRectPath as as, toTRBL as at, toTRBLCorners as au, _boundSegment as av, _normalizeAngle as aw, getRtlAdapter as ax, overrideTextDirection as ay, _textX as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, getRelativePosition as y, _isPointInArea as z };\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*! JSON v3.3.2 | https://bestiejs.github.io/json3 | Copyright 2012-2015, Kit Cambridge, Benjamin Tan | http://kit.mit-license.org */\n;(function () {\n // Detect the `define` function exposed by asynchronous module loaders. The\n // strict `define` check is necessary for compatibility with `r.js`.\n var isLoader = typeof define === \"function\" && define.amd;\n\n // A set of types used to distinguish objects from primitives.\n var objectTypes = {\n \"function\": true,\n \"object\": true\n };\n\n // Detect the `exports` object exposed by CommonJS implementations.\n var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;\n\n // Use the `global` object exposed by Node (including Browserify via\n // `insert-module-globals`), Narwhal, and Ringo as the default context,\n // and the `window` object in browsers. Rhino exports a `global` function\n // instead.\n var root = objectTypes[typeof window] && window || this,\n freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == \"object\" && global;\n\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n }\n\n // Public: Initializes JSON 3 using the given `context` object, attaching the\n // `stringify` and `parse` functions to the specified `exports` object.\n function runInContext(context, exports) {\n context || (context = root.Object());\n exports || (exports = root.Object());\n\n // Native constructor aliases.\n var Number = context.Number || root.Number,\n String = context.String || root.String,\n Object = context.Object || root.Object,\n Date = context.Date || root.Date,\n SyntaxError = context.SyntaxError || root.SyntaxError,\n TypeError = context.TypeError || root.TypeError,\n Math = context.Math || root.Math,\n nativeJSON = context.JSON || root.JSON;\n\n // Delegate to the native `stringify` and `parse` implementations.\n if (typeof nativeJSON == \"object\" && nativeJSON) {\n exports.stringify = nativeJSON.stringify;\n exports.parse = nativeJSON.parse;\n }\n\n // Convenience aliases.\n var objectProto = Object.prototype,\n getClass = objectProto.toString,\n isProperty = objectProto.hasOwnProperty,\n undefined;\n\n // Internal: Contains `try...catch` logic used by other functions.\n // This prevents other functions from being deoptimized.\n function attempt(func, errorFunc) {\n try {\n func();\n } catch (exception) {\n if (errorFunc) {\n errorFunc();\n }\n }\n }\n\n // Test the `Date#getUTC*` methods. Based on work by @Yaffle.\n var isExtended = new Date(-3509827334573292);\n attempt(function () {\n // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical\n // results for certain dates in Opera >= 10.53.\n isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 &&\n isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708;\n });\n\n // Internal: Determines whether the native `JSON.stringify` and `parse`\n // implementations are spec-compliant. Based on work by Ken Snyder.\n function has(name) {\n if (has[name] != null) {\n // Return cached feature test result.\n return has[name];\n }\n var isSupported;\n if (name == \"bug-string-char-index\") {\n // IE <= 7 doesn't support accessing string characters using square\n // bracket notation. IE 8 only supports this for primitives.\n isSupported = \"a\"[0] != \"a\";\n } else if (name == \"json\") {\n // Indicates whether both `JSON.stringify` and `JSON.parse` are\n // supported.\n isSupported = has(\"json-stringify\") && has(\"date-serialization\") && has(\"json-parse\");\n } else if (name == \"date-serialization\") {\n // Indicates whether `Date`s can be serialized accurately by `JSON.stringify`.\n isSupported = has(\"json-stringify\") && isExtended;\n if (isSupported) {\n var stringify = exports.stringify;\n attempt(function () {\n isSupported =\n // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly\n // serialize extended years.\n stringify(new Date(-8.64e15)) == '\"-271821-04-20T00:00:00.000Z\"' &&\n // The milliseconds are optional in ES 5, but required in 5.1.\n stringify(new Date(8.64e15)) == '\"+275760-09-13T00:00:00.000Z\"' &&\n // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative\n // four-digit years instead of six-digit years. Credits: @Yaffle.\n stringify(new Date(-621987552e5)) == '\"-000001-01-01T00:00:00.000Z\"' &&\n // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond\n // values less than 1000. Credits: @Yaffle.\n stringify(new Date(-1)) == '\"1969-12-31T23:59:59.999Z\"';\n });\n }\n } else {\n var value, serialized = '{\"a\":[1,true,false,null,\"\\\\u0000\\\\b\\\\n\\\\f\\\\r\\\\t\"]}';\n // Test `JSON.stringify`.\n if (name == \"json-stringify\") {\n var stringify = exports.stringify, stringifySupported = typeof stringify == \"function\";\n if (stringifySupported) {\n // A test function object with a custom `toJSON` method.\n (value = function () {\n return 1;\n }).toJSON = value;\n attempt(function () {\n stringifySupported =\n // Firefox 3.1b1 and b2 serialize string, number, and boolean\n // primitives as object literals.\n stringify(0) === \"0\" &&\n // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object\n // literals.\n stringify(new Number()) === \"0\" &&\n stringify(new String()) == '\"\"' &&\n // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or\n // does not define a canonical JSON representation (this applies to\n // objects with `toJSON` properties as well, *unless* they are nested\n // within an object or array).\n stringify(getClass) === undefined &&\n // IE 8 serializes `undefined` as `\"undefined\"`. Safari <= 5.1.7 and\n // FF 3.1b3 pass this test.\n stringify(undefined) === undefined &&\n // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,\n // respectively, if the value is omitted entirely.\n stringify() === undefined &&\n // FF 3.1b1, 2 throw an error if the given value is not a number,\n // string, array, object, Boolean, or `null` literal. This applies to\n // objects with custom `toJSON` methods as well, unless they are nested\n // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`\n // methods entirely.\n stringify(value) === \"1\" &&\n stringify([value]) == \"[1]\" &&\n // Prototype <= 1.6.1 serializes `[undefined]` as `\"[]\"` instead of\n // `\"[null]\"`.\n stringify([undefined]) == \"[null]\" &&\n // YUI 3.0.0b1 fails to serialize `null` literals.\n stringify(null) == \"null\" &&\n // FF 3.1b1, 2 halts serialization if an array contains a function:\n // `[1, true, getClass, 1]` serializes as \"[1,true,],\". FF 3.1b3\n // elides non-JSON values from objects and arrays, unless they\n // define custom `toJSON` methods.\n stringify([undefined, getClass, null]) == \"[null,null,null]\" &&\n // Simple serialization test. FF 3.1b1 uses Unicode escape sequences\n // where character escape codes are expected (e.g., `\\b` => `\\u0008`).\n stringify({ \"a\": [value, true, false, null, \"\\x00\\b\\n\\f\\r\\t\"] }) == serialized &&\n // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.\n stringify(null, value) === \"1\" &&\n stringify([1, 2], null, 1) == \"[\\n 1,\\n 2\\n]\";\n }, function () {\n stringifySupported = false;\n });\n }\n isSupported = stringifySupported;\n }\n // Test `JSON.parse`.\n if (name == \"json-parse\") {\n var parse = exports.parse, parseSupported;\n if (typeof parse == \"function\") {\n attempt(function () {\n // FF 3.1b1, b2 will throw an exception if a bare literal is provided.\n // Conforming implementations should also coerce the initial argument to\n // a string prior to parsing.\n if (parse(\"0\") === 0 && !parse(false)) {\n // Simple parsing test.\n value = parse(serialized);\n parseSupported = value[\"a\"].length == 5 && value[\"a\"][0] === 1;\n if (parseSupported) {\n attempt(function () {\n // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.\n parseSupported = !parse('\"\\t\"');\n });\n if (parseSupported) {\n attempt(function () {\n // FF 4.0 and 4.0.1 allow leading `+` signs and leading\n // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow\n // certain octal literals.\n parseSupported = parse(\"01\") !== 1;\n });\n }\n if (parseSupported) {\n attempt(function () {\n // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal\n // points. These environments, along with FF 3.1b1 and 2,\n // also allow trailing commas in JSON objects and arrays.\n parseSupported = parse(\"1.\") !== 1;\n });\n }\n }\n }\n }, function () {\n parseSupported = false;\n });\n }\n isSupported = parseSupported;\n }\n }\n return has[name] = !!isSupported;\n }\n has[\"bug-string-char-index\"] = has[\"date-serialization\"] = has[\"json\"] = has[\"json-stringify\"] = has[\"json-parse\"] = null;\n\n if (!has(\"json\")) {\n // Common `[[Class]]` name aliases.\n var functionClass = \"[object Function]\",\n dateClass = \"[object Date]\",\n numberClass = \"[object Number]\",\n stringClass = \"[object String]\",\n arrayClass = \"[object Array]\",\n booleanClass = \"[object Boolean]\";\n\n // Detect incomplete support for accessing string characters by index.\n var charIndexBuggy = has(\"bug-string-char-index\");\n\n // Internal: Normalizes the `for...in` iteration algorithm across\n // environments. Each enumerated key is yielded to a `callback` function.\n var forOwn = function (object, callback) {\n var size = 0, Properties, dontEnums, property;\n\n // Tests for bugs in the current environment's `for...in` algorithm. The\n // `valueOf` property inherits the non-enumerable flag from\n // `Object.prototype` in older versions of IE, Netscape, and Mozilla.\n (Properties = function () {\n this.valueOf = 0;\n }).prototype.valueOf = 0;\n\n // Iterate over a new instance of the `Properties` class.\n dontEnums = new Properties();\n for (property in dontEnums) {\n // Ignore all properties inherited from `Object.prototype`.\n if (isProperty.call(dontEnums, property)) {\n size++;\n }\n }\n Properties = dontEnums = null;\n\n // Normalize the iteration algorithm.\n if (!size) {\n // A list of non-enumerable properties inherited from `Object.prototype`.\n dontEnums = [\"valueOf\", \"toString\", \"toLocaleString\", \"propertyIsEnumerable\", \"isPrototypeOf\", \"hasOwnProperty\", \"constructor\"];\n // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable\n // properties.\n forOwn = function (object, callback) {\n var isFunction = getClass.call(object) == functionClass, property, length;\n var hasProperty = !isFunction && typeof object.constructor != \"function\" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty;\n for (property in object) {\n // Gecko <= 1.0 enumerates the `prototype` property of functions under\n // certain conditions; IE does not.\n if (!(isFunction && property == \"prototype\") && hasProperty.call(object, property)) {\n callback(property);\n }\n }\n // Manually invoke the callback for each non-enumerable property.\n for (length = dontEnums.length; property = dontEnums[--length];) {\n if (hasProperty.call(object, property)) {\n callback(property);\n }\n }\n };\n } else {\n // No bugs detected; use the standard `for...in` algorithm.\n forOwn = function (object, callback) {\n var isFunction = getClass.call(object) == functionClass, property, isConstructor;\n for (property in object) {\n if (!(isFunction && property == \"prototype\") && isProperty.call(object, property) && !(isConstructor = property === \"constructor\")) {\n callback(property);\n }\n }\n // Manually invoke the callback for the `constructor` property due to\n // cross-environment inconsistencies.\n if (isConstructor || isProperty.call(object, (property = \"constructor\"))) {\n callback(property);\n }\n };\n }\n return forOwn(object, callback);\n };\n\n // Public: Serializes a JavaScript `value` as a JSON string. The optional\n // `filter` argument may specify either a function that alters how object and\n // array members are serialized, or an array of strings and numbers that\n // indicates which properties should be serialized. The optional `width`\n // argument may be either a string or number that specifies the indentation\n // level of the output.\n if (!has(\"json-stringify\") && !has(\"date-serialization\")) {\n // Internal: A map of control characters and their escaped equivalents.\n var Escapes = {\n 92: \"\\\\\\\\\",\n 34: '\\\\\"',\n 8: \"\\\\b\",\n 12: \"\\\\f\",\n 10: \"\\\\n\",\n 13: \"\\\\r\",\n 9: \"\\\\t\"\n };\n\n // Internal: Converts `value` into a zero-padded string such that its\n // length is at least equal to `width`. The `width` must be <= 6.\n var leadingZeroes = \"000000\";\n var toPaddedString = function (width, value) {\n // The `|| 0` expression is necessary to work around a bug in\n // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== \"0\"`.\n return (leadingZeroes + (value || 0)).slice(-width);\n };\n\n // Internal: Serializes a date object.\n var serializeDate = function (value) {\n var getData, year, month, date, time, hours, minutes, seconds, milliseconds;\n // Define additional utility methods if the `Date` methods are buggy.\n if (!isExtended) {\n var floor = Math.floor;\n // A mapping between the months of the year and the number of days between\n // January 1st and the first of the respective month.\n var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n // Internal: Calculates the number of days between the Unix epoch and the\n // first day of the given month.\n var getDay = function (year, month) {\n return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400);\n };\n getData = function (value) {\n // Manually compute the year, month, date, hours, minutes,\n // seconds, and milliseconds if the `getUTC*` methods are\n // buggy. Adapted from @Yaffle's `date-shim` project.\n date = floor(value / 864e5);\n for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++);\n for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++);\n date = 1 + date - getDay(year, month);\n // The `time` value specifies the time within the day (see ES\n // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used\n // to compute `A modulo B`, as the `%` operator does not\n // correspond to the `modulo` operation for negative numbers.\n time = (value % 864e5 + 864e5) % 864e5;\n // The hours, minutes, seconds, and milliseconds are obtained by\n // decomposing the time within the day. See section 15.9.1.10.\n hours = floor(time / 36e5) % 24;\n minutes = floor(time / 6e4) % 60;\n seconds = floor(time / 1e3) % 60;\n milliseconds = time % 1e3;\n };\n } else {\n getData = function (value) {\n year = value.getUTCFullYear();\n month = value.getUTCMonth();\n date = value.getUTCDate();\n hours = value.getUTCHours();\n minutes = value.getUTCMinutes();\n seconds = value.getUTCSeconds();\n milliseconds = value.getUTCMilliseconds();\n };\n }\n serializeDate = function (value) {\n if (value > -1 / 0 && value < 1 / 0) {\n // Dates are serialized according to the `Date#toJSON` method\n // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15\n // for the ISO 8601 date time string format.\n getData(value);\n // Serialize extended years correctly.\n value = (year <= 0 || year >= 1e4 ? (year < 0 ? \"-\" : \"+\") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) +\n \"-\" + toPaddedString(2, month + 1) + \"-\" + toPaddedString(2, date) +\n // Months, dates, hours, minutes, and seconds should have two\n // digits; milliseconds should have three.\n \"T\" + toPaddedString(2, hours) + \":\" + toPaddedString(2, minutes) + \":\" + toPaddedString(2, seconds) +\n // Milliseconds are optional in ES 5.0, but required in 5.1.\n \".\" + toPaddedString(3, milliseconds) + \"Z\";\n year = month = date = hours = minutes = seconds = milliseconds = null;\n } else {\n value = null;\n }\n return value;\n };\n return serializeDate(value);\n };\n\n // For environments with `JSON.stringify` but buggy date serialization,\n // we override the native `Date#toJSON` implementation with a\n // spec-compliant one.\n if (has(\"json-stringify\") && !has(\"date-serialization\")) {\n // Internal: the `Date#toJSON` implementation used to override the native one.\n function dateToJSON (key) {\n return serializeDate(this);\n }\n\n // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.\n var nativeStringify = exports.stringify;\n exports.stringify = function (source, filter, width) {\n var nativeToJSON = Date.prototype.toJSON;\n Date.prototype.toJSON = dateToJSON;\n var result = nativeStringify(source, filter, width);\n Date.prototype.toJSON = nativeToJSON;\n return result;\n }\n } else {\n // Internal: Double-quotes a string `value`, replacing all ASCII control\n // characters (characters with code unit values between 0 and 31) with\n // their escaped equivalents. This is an implementation of the\n // `Quote(value)` operation defined in ES 5.1 section 15.12.3.\n var unicodePrefix = \"\\\\u00\";\n var escapeChar = function (character) {\n var charCode = character.charCodeAt(0), escaped = Escapes[charCode];\n if (escaped) {\n return escaped;\n }\n return unicodePrefix + toPaddedString(2, charCode.toString(16));\n };\n var reEscape = /[\\x00-\\x1f\\x22\\x5c]/g;\n var quote = function (value) {\n reEscape.lastIndex = 0;\n return '\"' +\n (\n reEscape.test(value)\n ? value.replace(reEscape, escapeChar)\n : value\n ) +\n '\"';\n };\n\n // Internal: Recursively serializes an object. Implements the\n // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.\n var serialize = function (property, object, callback, properties, whitespace, indentation, stack) {\n var value, type, className, results, element, index, length, prefix, result;\n attempt(function () {\n // Necessary for host object support.\n value = object[property];\n });\n if (typeof value == \"object\" && value) {\n if (value.getUTCFullYear && getClass.call(value) == dateClass && value.toJSON === Date.prototype.toJSON) {\n value = serializeDate(value);\n } else if (typeof value.toJSON == \"function\") {\n value = value.toJSON(property);\n }\n }\n if (callback) {\n // If a replacement function was provided, call it to obtain the value\n // for serialization.\n value = callback.call(object, property, value);\n }\n // Exit early if value is `undefined` or `null`.\n if (value == undefined) {\n return value === undefined ? value : \"null\";\n }\n type = typeof value;\n // Only call `getClass` if the value is an object.\n if (type == \"object\") {\n className = getClass.call(value);\n }\n switch (className || type) {\n case \"boolean\":\n case booleanClass:\n // Booleans are represented literally.\n return \"\" + value;\n case \"number\":\n case numberClass:\n // JSON numbers must be finite. `Infinity` and `NaN` are serialized as\n // `\"null\"`.\n return value > -1 / 0 && value < 1 / 0 ? \"\" + value : \"null\";\n case \"string\":\n case stringClass:\n // Strings are double-quoted and escaped.\n return quote(\"\" + value);\n }\n // Recursively serialize objects and arrays.\n if (typeof value == \"object\") {\n // Check for cyclic structures. This is a linear search; performance\n // is inversely proportional to the number of unique nested objects.\n for (length = stack.length; length--;) {\n if (stack[length] === value) {\n // Cyclic structures cannot be serialized by `JSON.stringify`.\n throw TypeError();\n }\n }\n // Add the object to the stack of traversed objects.\n stack.push(value);\n results = [];\n // Save the current indentation level and indent one additional level.\n prefix = indentation;\n indentation += whitespace;\n if (className == arrayClass) {\n // Recursively serialize array elements.\n for (index = 0, length = value.length; index < length; index++) {\n element = serialize(index, value, callback, properties, whitespace, indentation, stack);\n results.push(element === undefined ? \"null\" : element);\n }\n result = results.length ? (whitespace ? \"[\\n\" + indentation + results.join(\",\\n\" + indentation) + \"\\n\" + prefix + \"]\" : (\"[\" + results.join(\",\") + \"]\")) : \"[]\";\n } else {\n // Recursively serialize object members. Members are selected from\n // either a user-specified list of property names, or the object\n // itself.\n forOwn(properties || value, function (property) {\n var element = serialize(property, value, callback, properties, whitespace, indentation, stack);\n if (element !== undefined) {\n // According to ES 5.1 section 15.12.3: \"If `gap` {whitespace}\n // is not the empty string, let `member` {quote(property) + \":\"}\n // be the concatenation of `member` and the `space` character.\"\n // The \"`space` character\" refers to the literal space\n // character, not the `space` {width} argument provided to\n // `JSON.stringify`.\n results.push(quote(property) + \":\" + (whitespace ? \" \" : \"\") + element);\n }\n });\n result = results.length ? (whitespace ? \"{\\n\" + indentation + results.join(\",\\n\" + indentation) + \"\\n\" + prefix + \"}\" : (\"{\" + results.join(\",\") + \"}\")) : \"{}\";\n }\n // Remove the object from the traversed object stack.\n stack.pop();\n return result;\n }\n };\n\n // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.\n exports.stringify = function (source, filter, width) {\n var whitespace, callback, properties, className;\n if (objectTypes[typeof filter] && filter) {\n className = getClass.call(filter);\n if (className == functionClass) {\n callback = filter;\n } else if (className == arrayClass) {\n // Convert the property names array into a makeshift set.\n properties = {};\n for (var index = 0, length = filter.length, value; index < length;) {\n value = filter[index++];\n className = getClass.call(value);\n if (className == \"[object String]\" || className == \"[object Number]\") {\n properties[value] = 1;\n }\n }\n }\n }\n if (width) {\n className = getClass.call(width);\n if (className == numberClass) {\n // Convert the `width` to an integer and create a string containing\n // `width` number of space characters.\n if ((width -= width % 1) > 0) {\n if (width > 10) {\n width = 10;\n }\n for (whitespace = \"\"; whitespace.length < width;) {\n whitespace += \" \";\n }\n }\n } else if (className == stringClass) {\n whitespace = width.length <= 10 ? width : width.slice(0, 10);\n }\n }\n // Opera <= 7.54u2 discards the values associated with empty string keys\n // (`\"\"`) only if they are used directly within an object member list\n // (e.g., `!(\"\" in { \"\": 1})`).\n return serialize(\"\", (value = {}, value[\"\"] = source, value), callback, properties, whitespace, \"\", []);\n };\n }\n }\n\n // Public: Parses a JSON source string.\n if (!has(\"json-parse\")) {\n var fromCharCode = String.fromCharCode;\n\n // Internal: A map of escaped control characters and their unescaped\n // equivalents.\n var Unescapes = {\n 92: \"\\\\\",\n 34: '\"',\n 47: \"/\",\n 98: \"\\b\",\n 116: \"\\t\",\n 110: \"\\n\",\n 102: \"\\f\",\n 114: \"\\r\"\n };\n\n // Internal: Stores the parser state.\n var Index, Source;\n\n // Internal: Resets the parser state and throws a `SyntaxError`.\n var abort = function () {\n Index = Source = null;\n throw SyntaxError();\n };\n\n // Internal: Returns the next token, or `\"$\"` if the parser has reached\n // the end of the source string. A token may be a string, number, `null`\n // literal, or Boolean literal.\n var lex = function () {\n var source = Source, length = source.length, value, begin, position, isSigned, charCode;\n while (Index < length) {\n charCode = source.charCodeAt(Index);\n switch (charCode) {\n case 9: case 10: case 13: case 32:\n // Skip whitespace tokens, including tabs, carriage returns, line\n // feeds, and space characters.\n Index++;\n break;\n case 123: case 125: case 91: case 93: case 58: case 44:\n // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at\n // the current position.\n value = charIndexBuggy ? source.charAt(Index) : source[Index];\n Index++;\n return value;\n case 34:\n // `\"` delimits a JSON string; advance to the next character and\n // begin parsing the string. String tokens are prefixed with the\n // sentinel `@` character to distinguish them from punctuators and\n // end-of-string tokens.\n for (value = \"@\", Index++; Index < length;) {\n charCode = source.charCodeAt(Index);\n if (charCode < 32) {\n // Unescaped ASCII control characters (those with a code unit\n // less than the space character) are not permitted.\n abort();\n } else if (charCode == 92) {\n // A reverse solidus (`\\`) marks the beginning of an escaped\n // control character (including `\"`, `\\`, and `/`) or Unicode\n // escape sequence.\n charCode = source.charCodeAt(++Index);\n switch (charCode) {\n case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:\n // Revive escaped control characters.\n value += Unescapes[charCode];\n Index++;\n break;\n case 117:\n // `\\u` marks the beginning of a Unicode escape sequence.\n // Advance to the first character and validate the\n // four-digit code point.\n begin = ++Index;\n for (position = Index + 4; Index < position; Index++) {\n charCode = source.charCodeAt(Index);\n // A valid sequence comprises four hexdigits (case-\n // insensitive) that form a single hexadecimal value.\n if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) {\n // Invalid Unicode escape sequence.\n abort();\n }\n }\n // Revive the escaped character.\n value += fromCharCode(\"0x\" + source.slice(begin, Index));\n break;\n default:\n // Invalid escape sequence.\n abort();\n }\n } else {\n if (charCode == 34) {\n // An unescaped double-quote character marks the end of the\n // string.\n break;\n }\n charCode = source.charCodeAt(Index);\n begin = Index;\n // Optimize for the common case where a string is valid.\n while (charCode >= 32 && charCode != 92 && charCode != 34) {\n charCode = source.charCodeAt(++Index);\n }\n // Append the string as-is.\n value += source.slice(begin, Index);\n }\n }\n if (source.charCodeAt(Index) == 34) {\n // Advance to the next character and return the revived string.\n Index++;\n return value;\n }\n // Unterminated string.\n abort();\n default:\n // Parse numbers and literals.\n begin = Index;\n // Advance past the negative sign, if one is specified.\n if (charCode == 45) {\n isSigned = true;\n charCode = source.charCodeAt(++Index);\n }\n // Parse an integer or floating-point value.\n if (charCode >= 48 && charCode <= 57) {\n // Leading zeroes are interpreted as octal literals.\n if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) {\n // Illegal octal literal.\n abort();\n }\n isSigned = false;\n // Parse the integer component.\n for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++);\n // Floats cannot contain a leading decimal point; however, this\n // case is already accounted for by the parser.\n if (source.charCodeAt(Index) == 46) {\n position = ++Index;\n // Parse the decimal component.\n for (; position < length; position++) {\n charCode = source.charCodeAt(position);\n if (charCode < 48 || charCode > 57) {\n break;\n }\n }\n if (position == Index) {\n // Illegal trailing decimal.\n abort();\n }\n Index = position;\n }\n // Parse exponents. The `e` denoting the exponent is\n // case-insensitive.\n charCode = source.charCodeAt(Index);\n if (charCode == 101 || charCode == 69) {\n charCode = source.charCodeAt(++Index);\n // Skip past the sign following the exponent, if one is\n // specified.\n if (charCode == 43 || charCode == 45) {\n Index++;\n }\n // Parse the exponential component.\n for (position = Index; position < length; position++) {\n charCode = source.charCodeAt(position);\n if (charCode < 48 || charCode > 57) {\n break;\n }\n }\n if (position == Index) {\n // Illegal empty exponent.\n abort();\n }\n Index = position;\n }\n // Coerce the parsed value to a JavaScript number.\n return +source.slice(begin, Index);\n }\n // A negative sign may only precede numbers.\n if (isSigned) {\n abort();\n }\n // `true`, `false`, and `null` literals.\n var temp = source.slice(Index, Index + 4);\n if (temp == \"true\") {\n Index += 4;\n return true;\n } else if (temp == \"fals\" && source.charCodeAt(Index + 4 ) == 101) {\n Index += 5;\n return false;\n } else if (temp == \"null\") {\n Index += 4;\n return null;\n }\n // Unrecognized token.\n abort();\n }\n }\n // Return the sentinel `$` character if the parser has reached the end\n // of the source string.\n return \"$\";\n };\n\n // Internal: Parses a JSON `value` token.\n var get = function (value) {\n var results, hasMembers;\n if (value == \"$\") {\n // Unexpected end of input.\n abort();\n }\n if (typeof value == \"string\") {\n if ((charIndexBuggy ? value.charAt(0) : value[0]) == \"@\") {\n // Remove the sentinel `@` character.\n return value.slice(1);\n }\n // Parse object and array literals.\n if (value == \"[\") {\n // Parses a JSON array, returning a new JavaScript array.\n results = [];\n for (;;) {\n value = lex();\n // A closing square bracket marks the end of the array literal.\n if (value == \"]\") {\n break;\n }\n // If the array literal contains elements, the current token\n // should be a comma separating the previous element from the\n // next.\n if (hasMembers) {\n if (value == \",\") {\n value = lex();\n if (value == \"]\") {\n // Unexpected trailing `,` in array literal.\n abort();\n }\n } else {\n // A `,` must separate each array element.\n abort();\n }\n } else {\n hasMembers = true;\n }\n // Elisions and leading commas are not permitted.\n if (value == \",\") {\n abort();\n }\n results.push(get(value));\n }\n return results;\n } else if (value == \"{\") {\n // Parses a JSON object, returning a new JavaScript object.\n results = {};\n for (;;) {\n value = lex();\n // A closing curly brace marks the end of the object literal.\n if (value == \"}\") {\n break;\n }\n // If the object literal contains members, the current token\n // should be a comma separator.\n if (hasMembers) {\n if (value == \",\") {\n value = lex();\n if (value == \"}\") {\n // Unexpected trailing `,` in object literal.\n abort();\n }\n } else {\n // A `,` must separate each object member.\n abort();\n }\n } else {\n hasMembers = true;\n }\n // Leading commas are not permitted, object property names must be\n // double-quoted strings, and a `:` must separate each property\n // name and value.\n if (value == \",\" || typeof value != \"string\" || (charIndexBuggy ? value.charAt(0) : value[0]) != \"@\" || lex() != \":\") {\n abort();\n }\n results[value.slice(1)] = get(lex());\n }\n return results;\n }\n // Unexpected token encountered.\n abort();\n }\n return value;\n };\n\n // Internal: Updates a traversed object member.\n var update = function (source, property, callback) {\n var element = walk(source, property, callback);\n if (element === undefined) {\n delete source[property];\n } else {\n source[property] = element;\n }\n };\n\n // Internal: Recursively traverses a parsed JSON object, invoking the\n // `callback` function for each value. This is an implementation of the\n // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.\n var walk = function (source, property, callback) {\n var value = source[property], length;\n if (typeof value == \"object\" && value) {\n // `forOwn` can't be used to traverse an array in Opera <= 8.54\n // because its `Object#hasOwnProperty` implementation returns `false`\n // for array indices (e.g., `![1, 2, 3].hasOwnProperty(\"0\")`).\n if (getClass.call(value) == arrayClass) {\n for (length = value.length; length--;) {\n update(getClass, forOwn, value, length, callback);\n }\n } else {\n forOwn(value, function (property) {\n update(value, property, callback);\n });\n }\n }\n return callback.call(source, property, value);\n };\n\n // Public: `JSON.parse`. See ES 5.1 section 15.12.2.\n exports.parse = function (source, callback) {\n var result, value;\n Index = 0;\n Source = \"\" + source;\n result = get(lex());\n // If a JSON string contains multiple tokens, it is invalid.\n if (lex() != \"$\") {\n abort();\n }\n // Reset the parser state.\n Index = Source = null;\n return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[\"\"] = result, value), \"\", callback) : result;\n };\n }\n }\n\n exports.runInContext = runInContext;\n return exports;\n }\n\n if (freeExports && !isLoader) {\n // Export for CommonJS environments.\n runInContext(root, freeExports);\n } else {\n // Export for web browsers and JavaScript engines.\n var nativeJSON = root.JSON,\n previousJSON = root.JSON3,\n isRestored = false;\n\n var JSON3 = runInContext(root, (root.JSON3 = {\n // Public: Restores the original value of the global `JSON` object and\n // returns a reference to the `JSON3` object.\n \"noConflict\": function () {\n if (!isRestored) {\n isRestored = true;\n root.JSON = nativeJSON;\n root.JSON3 = previousJSON;\n nativeJSON = previousJSON = null;\n }\n return JSON3;\n }\n }));\n\n root.JSON = {\n \"parse\": JSON3.parse,\n \"stringify\": JSON3.stringify\n };\n }\n\n // Export for asynchronous module loaders.\n if (isLoader) {\n define(function () {\n return JSON3;\n });\n }\n}).call(this);\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"moment\")):\"function\"==typeof define&&define.amd?define(\"moment-range\",[\"moment\"],e):\"object\"==typeof exports?exports[\"moment-range\"]=e(require(\"moment\")):t[\"moment-range\"]=e(t.moment)}(this,function(t){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=3)}([function(t,e,n){\"use strict\";var r=n(5)();t.exports=function(t){return t!==r&&null!==t}},function(t,e,n){\"use strict\";t.exports=n(18)()?Symbol:n(20)},function(e,n){e.exports=t},function(t,e,n){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function u(t){return t.range=function(e,n){var r=this;return\"string\"==typeof e&&y.hasOwnProperty(e)?new h(t(r).startOf(e),t(r).endOf(e)):new h(e,n)},t.rangeFromInterval=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t();if(t.isMoment(r)||(r=t(r)),!r.isValid())throw new Error(\"Invalid date.\");var o=r.clone().add(n,e),i=[];return i.push(t.min(r,o)),i.push(t.max(r,o)),new h(i)},t.rangeFromISOString=function(e){var n=a(e),r=t.parseZone(n[0]),o=t.parseZone(n[1]);return new h(r,o)},t.parseZoneRange=t.rangeFromISOString,t.fn.range=t.range,t.range.constructor=h,t.isRange=function(t){return t instanceof h},t.fn.within=function(t){return t.contains(this.toDate())},t}function a(t){return t.split(\"/\")}Object.defineProperty(e,\"__esModule\",{value:!0}),e.DateRange=void 0;var s=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},f=function(){function t(t,e){for(var n=0;n=this.end.valueOf()}},{key:\"add\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{adjacent:!1};return this.overlaps(t,e)?new this.constructor(v.default.min(this.start,t.start),v.default.max(this.end,t.end)):null}},{key:\"by\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{excludeEnd:!1,step:1},n=this;return o({},p.default.iterator,function(){var r=e.step||1,o=Math.abs(n.start.diff(n.end,t))/r,i=e.excludeEnd||!1,u=0;return e.hasOwnProperty(\"exclusive\")&&(i=e.exclusive),{next:function(){var e=n.start.clone().add(u*r,t),a=i?!(u1&&void 0!==arguments[1]?arguments[1]:{excludeEnd:!1,step:1},n=this,r=e.step||1,i=this.valueOf()/t.valueOf()/r,u=Math.floor(i),a=e.excludeEnd||!1,s=0;return e.hasOwnProperty(\"exclusive\")&&(a=e.exclusive),o({},p.default.iterator,function(){return u===1/0?{done:!0}:{next:function(){var e=(0,v.default)(n.start.valueOf()+t.valueOf()*s*r),o=u===i&&a?!(s1&&void 0!==arguments[1]?arguments[1]:{excludeStart:!1,excludeEnd:!1},r=this.start.valueOf(),o=this.end.valueOf(),i=e.valueOf(),u=e.valueOf(),a=n.excludeStart||!1,s=n.excludeEnd||!1;n.hasOwnProperty(\"exclusive\")&&(a=s=n.exclusive),e instanceof t&&(i=e.start.valueOf(),u=e.end.valueOf());var c=ru||o>=u&&!s;return c&&f}},{key:\"diff\",value:function(t,e){return this.end.diff(this.start,t,e)}},{key:\"duration\",value:function(t,e){return this.diff(t,e)}},{key:\"intersect\",value:function(t){var e=this.start.valueOf(),n=this.end.valueOf(),r=t.start.valueOf(),o=t.end.valueOf(),i=e==n,u=r==o;if(i){var a=e;if(a==r||a==o)return null;if(a>r&&ae&&s1&&void 0!==arguments[1]?arguments[1]:{adjacent:!1},n=null!==this.intersect(t);return e.adjacent&&!n?this.adjacent(t):n}},{key:\"reverseBy\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{excludeStart:!1,step:1},n=this;return o({},p.default.iterator,function(){var r=e.step||1,o=Math.abs(n.start.diff(n.end,t))/r,i=e.excludeStart||!1,u=0;return e.hasOwnProperty(\"exclusive\")&&(i=e.exclusive),{next:function(){var e=n.end.clone().subtract(u*r,t),a=i?!(u1&&void 0!==arguments[1]?arguments[1]:{excludeStart:!1,step:1},n=this,r=e.step||1,i=this.valueOf()/t.valueOf()/r,u=Math.floor(i),a=e.excludeStart||!1,s=0;return e.hasOwnProperty(\"exclusive\")&&(a=e.exclusive),o({},p.default.iterator,function(){return u===1/0?{done:!0}:{next:function(){var e=(0,v.default)(n.end.valueOf()-t.valueOf()*s*r),o=u===i&&a?!(s-1}},function(t,e,n){\"use strict\";var r={object:!0,symbol:!0};t.exports=function(){var t;if(\"function\"!=typeof Symbol)return!1;t=Symbol(\"test symbol\");try{String(t)}catch(t){return!1}return!!r[typeof Symbol.iterator]&&(!!r[typeof Symbol.toPrimitive]&&!!r[typeof Symbol.toStringTag])}},function(t,e,n){\"use strict\";t.exports=function(t){return!!t&&(\"symbol\"==typeof t||!!t.constructor&&(\"Symbol\"===t.constructor.name&&\"Symbol\"===t[t.constructor.toStringTag]))}},function(t,e,n){\"use strict\";var r,o,i,u,a=n(4),s=n(21),c=Object.create,f=Object.defineProperties,l=Object.defineProperty,v=Object.prototype,d=c(null);if(\"function\"==typeof Symbol){r=Symbol;try{String(r()),u=!0}catch(t){}}var p=function(){var t=c(null);return function(e){for(var n,r,o=0;t[e+(o||\"\")];)++o;return e+=o||\"\",t[e]=!0,n=\"@@\"+e,l(v,n,a.gs(null,function(t){r||(r=!0,l(this,n,a(t)),r=!1)})),n}}();i=function(t){if(this instanceof i)throw new TypeError(\"Symbol is not a constructor\");return o(t)},t.exports=o=function t(e){var n;if(this instanceof t)throw new TypeError(\"Symbol is not a constructor\");return u?r(e):(n=c(i.prototype),e=void 0===e?\"\":String(e),f(n,{__description__:a(\"\",e),__name__:a(\"\",p(e))}))},f(o,{for:a(function(t){return d[t]?d[t]:d[t]=o(String(t))}),keyFor:a(function(t){var e;s(t);for(e in d)if(d[e]===t)return e}),hasInstance:a(\"\",r&&r.hasInstance||o(\"hasInstance\")),isConcatSpreadable:a(\"\",r&&r.isConcatSpreadable||o(\"isConcatSpreadable\")),iterator:a(\"\",r&&r.iterator||o(\"iterator\")),match:a(\"\",r&&r.match||o(\"match\")),replace:a(\"\",r&&r.replace||o(\"replace\")),search:a(\"\",r&&r.search||o(\"search\")),species:a(\"\",r&&r.species||o(\"species\")),split:a(\"\",r&&r.split||o(\"split\")),toPrimitive:a(\"\",r&&r.toPrimitive||o(\"toPrimitive\")),toStringTag:a(\"\",r&&r.toStringTag||o(\"toStringTag\")),unscopables:a(\"\",r&&r.unscopables||o(\"unscopables\"))}),f(i.prototype,{constructor:a(o),toString:a(\"\",function(){return this.__name__})}),f(o.prototype,{toString:a(function(){return\"Symbol (\"+s(this).__description__+\")\"}),valueOf:a(function(){return s(this)})}),l(o.prototype,o.toPrimitive,a(\"\",function(){var t=s(this);return\"symbol\"==typeof t?t:t.toString()})),l(o.prototype,o.toStringTag,a(\"c\",\"Symbol\")),l(i.prototype,o.toStringTag,a(\"c\",o.prototype[o.toStringTag])),l(i.prototype,o.toPrimitive,a(\"c\",o.prototype[o.toPrimitive]))},function(t,e,n){\"use strict\";var r=n(19);t.exports=function(t){if(!r(t))throw new TypeError(t+\" is not a symbol\");return t}}])});\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/*\nCopyright 2013 Sleepless Software Inc. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE. \n*/\n\n// yes, I know this seems stupid, but I have my reasons.\n\nvar net = require(\"net\")\nfor(k in net)\n\tglobal[k] = net[k]\n\n","import * as i0 from '@angular/core';\nimport { Directive, Component, ViewEncapsulation, ViewChild, ContentChild, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nfunction clamp(value, min, max) {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\nfunction coerceBooleanProperty(value) {\r\n return value != null && `${value}` !== 'false';\r\n}\r\nfunction coerceNumberProperty(value, fallbackValue = 0) {\r\n return isNaN(parseFloat(value)) || isNaN(Number(value)) ? fallbackValue : Number(value);\r\n}\r\nfunction cssUnit(value) {\r\n return `${value}px`;\r\n}\r\nfunction isNumber(value) {\r\n return value != undefined && !isNaN(parseFloat(value)) && !isNaN(Number(value));\r\n}\n\nclass NgxGaugeAppend {\r\n}\r\nNgxGaugeAppend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeAppend, deps: [], target: i0.ɵɵFactoryTarget.Directive });\r\nNgxGaugeAppend.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.1.4\", type: NgxGaugeAppend, selector: \"ngx-gauge-append\", exportAs: [\"ngxGaugeAppend\"], ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeAppend, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: \"ngx-gauge-append\",\r\n exportAs: \"ngxGaugeAppend\"\r\n }]\r\n }] });\r\nclass NgxGaugePrepend {\r\n}\r\nNgxGaugePrepend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugePrepend, deps: [], target: i0.ɵɵFactoryTarget.Directive });\r\nNgxGaugePrepend.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.1.4\", type: NgxGaugePrepend, selector: \"ngx-gauge-prepend\", exportAs: [\"ngxGaugePrepend\"], ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugePrepend, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: \"ngx-gauge-prepend\",\r\n exportAs: \"ngxGaugePrepend\"\r\n }]\r\n }] });\r\nclass NgxGaugeValue {\r\n}\r\nNgxGaugeValue.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeValue, deps: [], target: i0.ɵɵFactoryTarget.Directive });\r\nNgxGaugeValue.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.1.4\", type: NgxGaugeValue, selector: \"ngx-gauge-value\", exportAs: [\"ngxGaugeValue\"], ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeValue, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: \"ngx-gauge-value\",\r\n exportAs: \"ngxGaugeValue\"\r\n }]\r\n }] });\r\nclass NgxGaugeLabel {\r\n}\r\nNgxGaugeLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });\r\nNgxGaugeLabel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.1.4\", type: NgxGaugeLabel, selector: \"ngx-gauge-label\", exportAs: [\"ngxGaugeLabel\"], ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeLabel, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: \"ngx-gauge-label\",\r\n exportAs: \"ngxGaugeLabel\"\r\n }]\r\n }] });\n\nconst DEFAULTS = {\r\n MIN: 0,\r\n MAX: 100,\r\n TYPE: 'arch',\r\n THICK: 4,\r\n FOREGROUND_COLOR: 'rgba(0, 150, 136, 1)',\r\n BACKGROUND_COLOR: 'rgba(0, 0, 0, 0.1)',\r\n CAP: 'butt',\r\n SIZE: 200\r\n};\r\nclass NgxGauge {\r\n constructor(_elementRef, _renderer) {\r\n this._elementRef = _elementRef;\r\n this._renderer = _renderer;\r\n this._size = DEFAULTS.SIZE;\r\n this._min = DEFAULTS.MIN;\r\n this._max = DEFAULTS.MAX;\r\n this._animate = true;\r\n this._initialized = false;\r\n this._animationRequestID = 0;\r\n this.ariaLabel = '';\r\n this.ariaLabelledby = null;\r\n this.type = DEFAULTS.TYPE;\r\n this.cap = DEFAULTS.CAP;\r\n this.thick = DEFAULTS.THICK;\r\n this.foregroundColor = DEFAULTS.FOREGROUND_COLOR;\r\n this.backgroundColor = DEFAULTS.BACKGROUND_COLOR;\r\n this.thresholds = Object.create(null);\r\n this._value = 0;\r\n this.duration = 1200;\r\n }\r\n get size() { return this._size; }\r\n set size(value) {\r\n this._size = coerceNumberProperty(value);\r\n }\r\n get min() { return this._min; }\r\n set min(value) {\r\n this._min = coerceNumberProperty(value, DEFAULTS.MIN);\r\n }\r\n get animate() { return this._animate; }\r\n set animate(value) {\r\n this._animate = coerceBooleanProperty(value);\r\n }\r\n get max() { return this._max; }\r\n set max(value) {\r\n this._max = coerceNumberProperty(value, DEFAULTS.MAX);\r\n }\r\n get value() { return this._value; }\r\n set value(val) {\r\n this._value = coerceNumberProperty(val);\r\n }\r\n ngOnChanges(changes) {\r\n const isCanvasPropertyChanged = changes['thick'] || changes['type'] || changes['cap'] || changes['size'];\r\n const isDataChanged = changes['value'] || changes['min'] || changes['max'];\r\n if (this._initialized) {\r\n if (isDataChanged) {\r\n let nv, ov;\r\n if (changes['value']) {\r\n nv = changes['value'].currentValue;\r\n ov = changes['value'].previousValue;\r\n }\r\n this._update(nv, ov);\r\n }\r\n if (isCanvasPropertyChanged) {\r\n this._destroy();\r\n this._init();\r\n }\r\n }\r\n }\r\n _updateSize() {\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'width', cssUnit(this._getWidth()));\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'height', cssUnit(this._getCanvasHeight()));\r\n this._canvas.nativeElement.width = this._getWidth();\r\n this._canvas.nativeElement.height = this._getCanvasHeight();\r\n this._renderer.setStyle(this._label.nativeElement, 'transform', 'translateY(' + (this.size / 3 * 2 - this.size / 13 / 4) + 'px)');\r\n this._renderer.setStyle(this._reading.nativeElement, 'transform', 'translateY(' + (this.size / 2 - this.size * 0.22 / 2) + 'px)');\r\n }\r\n ngAfterViewInit() {\r\n if (this._canvas) {\r\n this._init();\r\n }\r\n }\r\n ngOnDestroy() {\r\n this._destroy();\r\n }\r\n _getBounds(type) {\r\n let head, tail;\r\n if (type == 'semi') {\r\n head = Math.PI;\r\n tail = 2 * Math.PI;\r\n }\r\n else if (type == 'full') {\r\n head = 1.5 * Math.PI;\r\n tail = 3.5 * Math.PI;\r\n }\r\n else if (type === 'arch') {\r\n head = 0.8 * Math.PI;\r\n tail = 2.2 * Math.PI;\r\n }\r\n return { head, tail };\r\n }\r\n _drawShell(start, middle, tail, color) {\r\n let center = this._getCenter(), radius = this._getRadius();\r\n middle = Math.max(middle, start); // never below 0%\r\n middle = Math.min(middle, tail); // never exceed 100%\r\n if (this._initialized) {\r\n this._clear();\r\n this._context.beginPath();\r\n this._context.strokeStyle = this.backgroundColor;\r\n this._context.arc(center.x, center.y, radius, middle, tail, false);\r\n this._context.stroke();\r\n this._context.beginPath();\r\n this._context.strokeStyle = color;\r\n this._context.arc(center.x, center.y, radius, start, middle, false);\r\n this._context.stroke();\r\n }\r\n }\r\n _clear() {\r\n this._context.clearRect(0, 0, this._getWidth(), this._getHeight());\r\n }\r\n _getWidth() {\r\n return this.size;\r\n }\r\n _getHeight() {\r\n return this.size;\r\n }\r\n // canvas height will be shorter for type 'semi' and 'arch'\r\n _getCanvasHeight() {\r\n return (this.type == 'arch' || this.type == 'semi')\r\n ? 0.85 * this._getHeight()\r\n : this._getHeight();\r\n }\r\n _getRadius() {\r\n var center = this._getCenter();\r\n return center.x - this.thick;\r\n }\r\n _getCenter() {\r\n var x = this._getWidth() / 2, y = this._getHeight() / 2;\r\n return { x, y };\r\n }\r\n _init() {\r\n this._context = this._canvas.nativeElement.getContext('2d');\r\n this._initialized = true;\r\n this._updateSize();\r\n this._setupStyles();\r\n this._create();\r\n }\r\n _destroy() {\r\n if (this._animationRequestID) {\r\n window.cancelAnimationFrame(this._animationRequestID);\r\n this._animationRequestID = 0;\r\n }\r\n this._clear();\r\n this._context = null;\r\n this._initialized = false;\r\n }\r\n _setupStyles() {\r\n this._context.lineCap = this.cap;\r\n this._context.lineWidth = this.thick;\r\n }\r\n _getForegroundColorByRange(value) {\r\n const match = Object.keys(this.thresholds)\r\n .filter(function (item) { return isNumber(item) && Number(item) <= value; })\r\n .sort((a, b) => Number(a) - Number(b))\r\n .reverse()[0];\r\n return match !== undefined\r\n ? this.thresholds[match].color || this.foregroundColor\r\n : this.foregroundColor;\r\n }\r\n _create(nv, ov) {\r\n let self = this, type = this.type, bounds = this._getBounds(type), duration = this.duration, min = this.min, max = this.max, value = clamp(this.value, this.min, this.max), start = bounds.head, unit = (bounds.tail - bounds.head) / (max - min), displacement = unit * (value - min), tail = bounds.tail, color = this._getForegroundColorByRange(value), startTime;\r\n if (self._animationRequestID) {\r\n window.cancelAnimationFrame(self._animationRequestID);\r\n }\r\n function animate(timestamp) {\r\n timestamp = timestamp || new Date().getTime();\r\n let runtime = timestamp - startTime;\r\n let progress = Math.min(runtime / duration, 1);\r\n let previousProgress = ov ? (ov - min) * unit : 0;\r\n let middle = start + previousProgress + displacement * progress;\r\n self._drawShell(start, middle, tail, color);\r\n if (self._animationRequestID && (runtime < duration)) {\r\n self._animationRequestID = window.requestAnimationFrame((timestamp) => animate(timestamp));\r\n }\r\n else {\r\n window.cancelAnimationFrame(self._animationRequestID);\r\n }\r\n }\r\n if (this._animate) {\r\n if (nv != undefined && ov != undefined) {\r\n displacement = unit * nv - unit * ov;\r\n }\r\n self._animationRequestID = window.requestAnimationFrame((timestamp) => {\r\n startTime = timestamp || new Date().getTime();\r\n animate(startTime);\r\n });\r\n }\r\n else {\r\n self._drawShell(start, start + displacement, tail, color);\r\n }\r\n }\r\n _update(nv, ov) {\r\n this._clear();\r\n this._create(nv, ov);\r\n }\r\n}\r\nNgxGauge.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGauge, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });\r\nNgxGauge.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.1.4\", type: NgxGauge, selector: \"ngx-gauge\", inputs: { ariaLabel: [\"aria-label\", \"ariaLabel\"], ariaLabelledby: [\"aria-labelledby\", \"ariaLabelledby\"], size: \"size\", min: \"min\", animate: \"animate\", max: \"max\", type: \"type\", cap: \"cap\", thick: \"thick\", label: \"label\", append: \"append\", prepend: \"prepend\", foregroundColor: \"foregroundColor\", backgroundColor: \"backgroundColor\", thresholds: \"thresholds\", value: \"value\", duration: \"duration\" }, host: { attributes: { \"role\": \"slider\", \"aria-readonly\": \"true\" }, properties: { \"class.ngx-gauge-meter\": \"true\", \"attr.aria-valuemin\": \"min\", \"attr.aria-valuemax\": \"max\", \"attr.aria-valuenow\": \"value\", \"attr.aria-label\": \"ariaLabel\", \"attr.aria-labelledby\": \"ariaLabelledby\" } }, queries: [{ propertyName: \"_labelChild\", first: true, predicate: NgxGaugeLabel, descendants: true }, { propertyName: \"_prependChild\", first: true, predicate: NgxGaugePrepend, descendants: true }, { propertyName: \"_appendChild\", first: true, predicate: NgxGaugeAppend, descendants: true }, { propertyName: \"_valueDisplayChild\", first: true, predicate: NgxGaugeValue, descendants: true }], viewQueries: [{ propertyName: \"_canvas\", first: true, predicate: [\"canvas\"], descendants: true, static: true }, { propertyName: \"_label\", first: true, predicate: [\"rLabel\"], descendants: true, static: true }, { propertyName: \"_reading\", first: true, predicate: [\"reading\"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: \"
    \\r\\n \\r\\n {{prepend}}{{value | number}}{{append}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n {{label}}\\r\\n
    \\r\\n\\r\\n\", styles: [\".ngx-gauge-meter{display:inline-block;text-align:center;position:relative}.reading-block,.reading-label{position:absolute;width:100%;font-weight:400;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis}.reading-label{font-family:inherit;display:inline-block}.reading-affix{text-decoration:none;font-size:.6em;opacity:.8;font-weight:200;padding:0 .18em}.reading-affix:first-child{padding-left:0}.reading-affix:last-child{padding-right:0}\"], directives: [{ type: i1.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { type: i1.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }], pipes: { \"number\": i1.DecimalPipe }, encapsulation: i0.ViewEncapsulation.None });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGauge, decorators: [{\r\n type: Component,\r\n args: [{\r\n selector: 'ngx-gauge',\r\n templateUrl: 'gauge.html',\r\n styleUrls: ['gauge.css'],\r\n host: {\r\n 'role': 'slider',\r\n 'aria-readonly': 'true',\r\n '[class.ngx-gauge-meter]': 'true',\r\n '[attr.aria-valuemin]': 'min',\r\n '[attr.aria-valuemax]': 'max',\r\n '[attr.aria-valuenow]': 'value',\r\n '[attr.aria-label]': 'ariaLabel',\r\n '[attr.aria-labelledby]': 'ariaLabelledby'\r\n },\r\n encapsulation: ViewEncapsulation.None\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { _canvas: [{\r\n type: ViewChild,\r\n args: ['canvas', { static: true }]\r\n }], _label: [{\r\n type: ViewChild,\r\n args: ['rLabel', { static: true }]\r\n }], _reading: [{\r\n type: ViewChild,\r\n args: ['reading', { static: true }]\r\n }], _labelChild: [{\r\n type: ContentChild,\r\n args: [NgxGaugeLabel]\r\n }], _prependChild: [{\r\n type: ContentChild,\r\n args: [NgxGaugePrepend]\r\n }], _appendChild: [{\r\n type: ContentChild,\r\n args: [NgxGaugeAppend]\r\n }], _valueDisplayChild: [{\r\n type: ContentChild,\r\n args: [NgxGaugeValue]\r\n }], ariaLabel: [{\r\n type: Input,\r\n args: ['aria-label']\r\n }], ariaLabelledby: [{\r\n type: Input,\r\n args: ['aria-labelledby']\r\n }], size: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], animate: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], cap: [{\r\n type: Input\r\n }], thick: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], append: [{\r\n type: Input\r\n }], prepend: [{\r\n type: Input\r\n }], foregroundColor: [{\r\n type: Input\r\n }], backgroundColor: [{\r\n type: Input\r\n }], thresholds: [{\r\n type: Input\r\n }], value: [{\r\n type: Input\r\n }], duration: [{\r\n type: Input\r\n }] } });\n\nclass NgxGaugeModule {\r\n}\r\nNgxGaugeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\nNgxGaugeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeModule, declarations: [NgxGauge, NgxGaugeAppend, NgxGaugePrepend, NgxGaugeValue, NgxGaugeLabel], imports: [CommonModule], exports: [NgxGauge, NgxGaugeAppend, NgxGaugePrepend, NgxGaugeValue, NgxGaugeLabel] });\r\nNgxGaugeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeModule, imports: [[CommonModule]] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.1.4\", ngImport: i0, type: NgxGaugeModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n imports: [CommonModule],\r\n declarations: [NgxGauge, NgxGaugeAppend, NgxGaugePrepend, NgxGaugeValue, NgxGaugeLabel],\r\n exports: [NgxGauge, NgxGaugeAppend, NgxGaugePrepend, NgxGaugeValue, NgxGaugeLabel]\r\n }]\r\n }] });\n\n/*\r\n * Public APIs of ngx-gauge\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { NgxGauge, NgxGaugeAppend, NgxGaugeLabel, NgxGaugeModule, NgxGaugePrepend, NgxGaugeValue };\n","import { Directive, ElementRef, EventEmitter, Input, NgModule, NgZone, Output } from '@angular/core';\nimport { fromEvent, of } from 'rxjs';\nimport { filter, map, mergeMap, tap, throttleTime } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/services/ngx-ins-utils.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} selector\n * @param {?} scrollWindow\n * @param {?} defaultElement\n * @param {?} fromRoot\n * @return {?}\n */\nimport * as ɵngcc0 from '@angular/core';\nfunction resolveContainerElement(selector, scrollWindow, defaultElement, fromRoot) {\n /** @type {?} */\n const hasWindow = window && !!window.document && window.document.documentElement;\n /** @type {?} */\n let container = hasWindow && scrollWindow ? window : defaultElement;\n if (selector) {\n /** @type {?} */\n const containerIsString = selector && hasWindow && typeof selector === 'string';\n container = containerIsString\n ? findElement(selector, defaultElement.nativeElement, fromRoot)\n : selector;\n if (!container) {\n throw new Error('ngx-infinite-scroll {resolveContainerElement()}: selector for');\n }\n }\n return container;\n}\n/**\n * @param {?} selector\n * @param {?} customRoot\n * @param {?} fromRoot\n * @return {?}\n */\nfunction findElement(selector, customRoot, fromRoot) {\n /** @type {?} */\n const rootEl = fromRoot ? window.document : customRoot;\n return rootEl.querySelector(selector);\n}\n/**\n * @param {?} prop\n * @return {?}\n */\nfunction inputPropChanged(prop) {\n return prop && !prop.firstChange;\n}\n/**\n * @return {?}\n */\nfunction hasWindowDefined() {\n return typeof window !== 'undefined';\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/services/axis-resolver.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst VerticalProps = {\n clientHeight: \"clientHeight\",\n offsetHeight: \"offsetHeight\",\n scrollHeight: \"scrollHeight\",\n pageYOffset: \"pageYOffset\",\n offsetTop: \"offsetTop\",\n scrollTop: \"scrollTop\",\n top: \"top\"\n};\n/** @type {?} */\nconst HorizontalProps = {\n clientHeight: \"clientWidth\",\n offsetHeight: \"offsetWidth\",\n scrollHeight: \"scrollWidth\",\n pageYOffset: \"pageXOffset\",\n offsetTop: \"offsetLeft\",\n scrollTop: \"scrollLeft\",\n top: \"left\"\n};\nclass AxisResolver {\n /**\n * @param {?=} vertical\n */\n constructor(vertical = true) {\n this.vertical = vertical;\n this.propsMap = vertical ? VerticalProps : HorizontalProps;\n }\n /**\n * @return {?}\n */\n clientHeightKey() {\n return this.propsMap.clientHeight;\n }\n /**\n * @return {?}\n */\n offsetHeightKey() {\n return this.propsMap.offsetHeight;\n }\n /**\n * @return {?}\n */\n scrollHeightKey() {\n return this.propsMap.scrollHeight;\n }\n /**\n * @return {?}\n */\n pageYOffsetKey() {\n return this.propsMap.pageYOffset;\n }\n /**\n * @return {?}\n */\n offsetTopKey() {\n return this.propsMap.offsetTop;\n }\n /**\n * @return {?}\n */\n scrollTopKey() {\n return this.propsMap.scrollTop;\n }\n /**\n * @return {?}\n */\n topKey() {\n return this.propsMap.top;\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/services/event-trigger.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @record\n */\n\n/**\n * @record\n */\n\n/**\n * @record\n */\n\n/**\n * @record\n */\n\n/**\n * @param {?} alwaysCallback\n * @param {?} shouldFireScrollEvent\n * @param {?} isTriggeredCurrentTotal\n * @return {?}\n */\nfunction shouldTriggerEvents(alwaysCallback, shouldFireScrollEvent, isTriggeredCurrentTotal) {\n if (alwaysCallback && shouldFireScrollEvent) {\n return true;\n }\n if (!isTriggeredCurrentTotal && shouldFireScrollEvent) {\n return true;\n }\n return false;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/services/position-resolver.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} __0\n * @return {?}\n */\nfunction createResolver({ windowElement, axis }) {\n return createResolverWithContainer({ axis, isWindow: isElementWindow(windowElement) }, windowElement);\n}\n/**\n * @param {?} resolver\n * @param {?} windowElement\n * @return {?}\n */\nfunction createResolverWithContainer(resolver, windowElement) {\n /** @type {?} */\n const container = resolver.isWindow || (windowElement && !windowElement.nativeElement)\n ? windowElement\n : windowElement.nativeElement;\n return Object.assign(Object.assign({}, resolver), { container });\n}\n/**\n * @param {?} windowElement\n * @return {?}\n */\nfunction isElementWindow(windowElement) {\n /** @type {?} */\n const isWindow = ['Window', 'global'].some((/**\n * @param {?} obj\n * @return {?}\n */\n (obj) => Object.prototype.toString.call(windowElement).includes(obj)));\n return isWindow;\n}\n/**\n * @param {?} isContainerWindow\n * @param {?} windowElement\n * @return {?}\n */\nfunction getDocumentElement(isContainerWindow, windowElement) {\n return isContainerWindow ? windowElement.document.documentElement : null;\n}\n/**\n * @param {?} element\n * @param {?} resolver\n * @return {?}\n */\nfunction calculatePoints(element, resolver) {\n /** @type {?} */\n const height = extractHeightForElement(resolver);\n return resolver.isWindow\n ? calculatePointsForWindow(height, element, resolver)\n : calculatePointsForElement(height, element, resolver);\n}\n/**\n * @param {?} height\n * @param {?} element\n * @param {?} resolver\n * @return {?}\n */\nfunction calculatePointsForWindow(height, element, resolver) {\n const { axis, container, isWindow } = resolver;\n const { offsetHeightKey, clientHeightKey } = extractHeightPropKeys(axis);\n // scrolled until now / current y point\n /** @type {?} */\n const scrolled = height +\n getElementPageYOffset(getDocumentElement(isWindow, container), axis, isWindow);\n // total height / most bottom y point\n /** @type {?} */\n const nativeElementHeight = getElementHeight(element.nativeElement, isWindow, offsetHeightKey, clientHeightKey);\n /** @type {?} */\n const totalToScroll = getElementOffsetTop(element.nativeElement, axis, isWindow) +\n nativeElementHeight;\n return { height, scrolled, totalToScroll, isWindow };\n}\n/**\n * @param {?} height\n * @param {?} element\n * @param {?} resolver\n * @return {?}\n */\nfunction calculatePointsForElement(height, element, resolver) {\n const { axis, container } = resolver;\n // perhaps use container.offsetTop instead of 'scrollTop'\n /** @type {?} */\n const scrolled = container[axis.scrollTopKey()];\n /** @type {?} */\n const totalToScroll = container[axis.scrollHeightKey()];\n return { height, scrolled, totalToScroll, isWindow: false };\n}\n/**\n * @param {?} axis\n * @return {?}\n */\nfunction extractHeightPropKeys(axis) {\n return {\n offsetHeightKey: axis.offsetHeightKey(),\n clientHeightKey: axis.clientHeightKey()\n };\n}\n/**\n * @param {?} __0\n * @return {?}\n */\nfunction extractHeightForElement({ container, isWindow, axis }) {\n const { offsetHeightKey, clientHeightKey } = extractHeightPropKeys(axis);\n return getElementHeight(container, isWindow, offsetHeightKey, clientHeightKey);\n}\n/**\n * @param {?} elem\n * @param {?} isWindow\n * @param {?} offsetHeightKey\n * @param {?} clientHeightKey\n * @return {?}\n */\nfunction getElementHeight(elem, isWindow, offsetHeightKey, clientHeightKey) {\n if (isNaN(elem[offsetHeightKey])) {\n /** @type {?} */\n const docElem = getDocumentElement(isWindow, elem);\n return docElem ? docElem[clientHeightKey] : 0;\n }\n else {\n return elem[offsetHeightKey];\n }\n}\n/**\n * @param {?} elem\n * @param {?} axis\n * @param {?} isWindow\n * @return {?}\n */\nfunction getElementOffsetTop(elem, axis, isWindow) {\n /** @type {?} */\n const topKey = axis.topKey();\n // elem = elem.nativeElement;\n if (!elem.getBoundingClientRect) {\n // || elem.css('none')) {\n return;\n }\n return (elem.getBoundingClientRect()[topKey] +\n getElementPageYOffset(elem, axis, isWindow));\n}\n/**\n * @param {?} elem\n * @param {?} axis\n * @param {?} isWindow\n * @return {?}\n */\nfunction getElementPageYOffset(elem, axis, isWindow) {\n /** @type {?} */\n const pageYOffset = axis.pageYOffsetKey();\n /** @type {?} */\n const scrollTop = axis.scrollTopKey();\n /** @type {?} */\n const offsetTop = axis.offsetTopKey();\n if (isNaN(window.pageYOffset)) {\n return getDocumentElement(isWindow, elem)[scrollTop];\n }\n else if (elem.ownerDocument) {\n return elem.ownerDocument.defaultView[pageYOffset];\n }\n else {\n return elem[offsetTop];\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/services/scroll-resolver.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} container\n * @param {?} distance\n * @param {?} scrollingDown\n * @return {?}\n */\nfunction shouldFireScrollEvent(container, distance, scrollingDown) {\n /** @type {?} */\n let remaining;\n /** @type {?} */\n let containerBreakpoint;\n if (container.totalToScroll <= 0) {\n return false;\n }\n /** @type {?} */\n const scrolledUntilNow = container.isWindow ? container.scrolled : container.height + container.scrolled;\n if (scrollingDown) {\n remaining =\n (container.totalToScroll - scrolledUntilNow) / container.totalToScroll;\n containerBreakpoint = distance.down / 10;\n }\n else {\n /** @type {?} */\n const totalHiddenContentHeight = container.scrolled + (container.totalToScroll - scrolledUntilNow);\n remaining = container.scrolled / totalHiddenContentHeight;\n containerBreakpoint = distance.up / 10;\n }\n /** @type {?} */\n const shouldFireEvent = remaining <= containerBreakpoint;\n return shouldFireEvent;\n}\n/**\n * @param {?} lastScrollPosition\n * @param {?} container\n * @return {?}\n */\nfunction isScrollingDownwards(lastScrollPosition, container) {\n return lastScrollPosition < container.scrolled;\n}\n/**\n * @param {?} lastScrollPosition\n * @param {?} container\n * @param {?} distance\n * @return {?}\n */\nfunction getScrollStats(lastScrollPosition, container, distance) {\n /** @type {?} */\n const scrollDown = isScrollingDownwards(lastScrollPosition, container);\n return {\n fire: shouldFireScrollEvent(container, distance, scrollDown),\n scrollDown\n };\n}\n/**\n * @param {?} position\n * @param {?} scrollState\n * @return {?}\n */\n\n/**\n * @param {?} totalToScroll\n * @param {?} scrollState\n * @return {?}\n */\n\n/**\n * @param {?} scrollState\n * @return {?}\n */\n\n/**\n * @param {?} scroll\n * @param {?} scrollState\n * @param {?} triggered\n * @param {?} isScrollingDown\n * @return {?}\n */\n\n/**\n * @param {?} totalToScroll\n * @param {?} scrollState\n * @param {?} isScrollingDown\n * @return {?}\n */\n\n/**\n * @param {?} scrollState\n * @param {?} scrolledUntilNow\n * @param {?} totalToScroll\n * @return {?}\n */\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/services/scroll-state.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass ScrollState {\n /**\n * @param {?} __0\n */\n constructor({ totalToScroll }) {\n this.lastScrollPosition = 0;\n this.lastTotalToScroll = 0;\n this.totalToScroll = 0;\n this.triggered = {\n down: 0,\n up: 0\n };\n this.totalToScroll = totalToScroll;\n }\n /**\n * @param {?} position\n * @return {?}\n */\n updateScrollPosition(position) {\n return (this.lastScrollPosition = position);\n }\n /**\n * @param {?} totalToScroll\n * @return {?}\n */\n updateTotalToScroll(totalToScroll) {\n if (this.lastTotalToScroll !== totalToScroll) {\n this.lastTotalToScroll = this.totalToScroll;\n this.totalToScroll = totalToScroll;\n }\n }\n /**\n * @param {?} scrolledUntilNow\n * @param {?} totalToScroll\n * @return {?}\n */\n updateScroll(scrolledUntilNow, totalToScroll) {\n this.updateScrollPosition(scrolledUntilNow);\n this.updateTotalToScroll(totalToScroll);\n }\n /**\n * @param {?} scroll\n * @param {?} isScrollingDown\n * @return {?}\n */\n updateTriggeredFlag(scroll, isScrollingDown) {\n if (isScrollingDown) {\n this.triggered.down = scroll;\n }\n else {\n this.triggered.up = scroll;\n }\n }\n /**\n * @param {?} totalToScroll\n * @param {?} isScrollingDown\n * @return {?}\n */\n isTriggeredScroll(totalToScroll, isScrollingDown) {\n return isScrollingDown\n ? this.triggered.down === totalToScroll\n : this.triggered.up === totalToScroll;\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/services/scroll-register.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} config\n * @return {?}\n */\nfunction createScroller(config) {\n const { scrollContainer, scrollWindow, element, fromRoot } = config;\n /** @type {?} */\n const resolver = createResolver({\n axis: new AxisResolver(!config.horizontal),\n windowElement: resolveContainerElement(scrollContainer, scrollWindow, element, fromRoot)\n });\n /** @type {?} */\n const scrollState = new ScrollState({\n totalToScroll: calculatePoints(element, resolver)\n });\n /** @type {?} */\n const options = {\n container: resolver.container,\n throttle: config.throttle\n };\n /** @type {?} */\n const distance = {\n up: config.upDistance,\n down: config.downDistance\n };\n return attachScrollEvent(options).pipe(mergeMap((/**\n * @return {?}\n */\n () => of(calculatePoints(element, resolver)))), map((/**\n * @param {?} positionStats\n * @return {?}\n */\n (positionStats) => toInfiniteScrollParams(scrollState.lastScrollPosition, positionStats, distance))), tap((/**\n * @param {?} __0\n * @return {?}\n */\n ({ stats }) => scrollState.updateScroll(stats.scrolled, stats.totalToScroll))), filter((/**\n * @param {?} __0\n * @return {?}\n */\n ({ fire, scrollDown, stats: { totalToScroll } }) => shouldTriggerEvents(config.alwaysCallback, fire, scrollState.isTriggeredScroll(totalToScroll, scrollDown)))), tap((/**\n * @param {?} __0\n * @return {?}\n */\n ({ scrollDown, stats: { totalToScroll } }) => {\n scrollState.updateTriggeredFlag(totalToScroll, scrollDown);\n })), map(toInfiniteScrollAction));\n}\n/**\n * @param {?} options\n * @return {?}\n */\nfunction attachScrollEvent(options) {\n /** @type {?} */\n let obs = fromEvent(options.container, 'scroll');\n // For an unknown reason calling `sampleTime()` causes trouble for many users, even with `options.throttle = 0`.\n // Let's avoid calling the function unless needed.\n // Replacing with throttleTime seems to solve the problem\n // See https://github.com/orizens/ngx-infinite-scroll/issues/198\n if (options.throttle) {\n obs = obs.pipe(throttleTime(options.throttle));\n }\n return obs;\n}\n/**\n * @param {?} lastScrollPosition\n * @param {?} stats\n * @param {?} distance\n * @return {?}\n */\nfunction toInfiniteScrollParams(lastScrollPosition, stats, distance) {\n const { scrollDown, fire } = getScrollStats(lastScrollPosition, stats, distance);\n return {\n scrollDown,\n fire,\n stats\n };\n}\n/** @type {?} */\nconst InfiniteScrollActions = {\n DOWN: '[NGX_ISE] DOWN',\n UP: '[NGX_ISE] UP'\n};\n/**\n * @param {?} response\n * @return {?}\n */\nfunction toInfiniteScrollAction(response) {\n const { scrollDown, stats: { scrolled: currentScrollPosition } } = response;\n return {\n type: scrollDown ? InfiniteScrollActions.DOWN : InfiniteScrollActions.UP,\n payload: {\n currentScrollPosition\n }\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/modules/infinite-scroll.directive.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass InfiniteScrollDirective {\n /**\n * @param {?} element\n * @param {?} zone\n */\n constructor(element, zone) {\n this.element = element;\n this.zone = zone;\n this.scrolled = new EventEmitter();\n this.scrolledUp = new EventEmitter();\n this.infiniteScrollDistance = 2;\n this.infiniteScrollUpDistance = 1.5;\n this.infiniteScrollThrottle = 150;\n this.infiniteScrollDisabled = false;\n this.infiniteScrollContainer = null;\n this.scrollWindow = true;\n this.immediateCheck = false;\n this.horizontal = false;\n this.alwaysCallback = false;\n this.fromRoot = false;\n }\n /**\n * @return {?}\n */\n ngAfterViewInit() {\n if (!this.infiniteScrollDisabled) {\n this.setup();\n }\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n ngOnChanges({ infiniteScrollContainer, infiniteScrollDisabled, infiniteScrollDistance }) {\n /** @type {?} */\n const containerChanged = inputPropChanged(infiniteScrollContainer);\n /** @type {?} */\n const disabledChanged = inputPropChanged(infiniteScrollDisabled);\n /** @type {?} */\n const distanceChanged = inputPropChanged(infiniteScrollDistance);\n /** @type {?} */\n const shouldSetup = (!disabledChanged && !this.infiniteScrollDisabled) ||\n (disabledChanged && !infiniteScrollDisabled.currentValue) || distanceChanged;\n if (containerChanged || disabledChanged || distanceChanged) {\n this.destroyScroller();\n if (shouldSetup) {\n this.setup();\n }\n }\n }\n /**\n * @return {?}\n */\n setup() {\n if (hasWindowDefined()) {\n this.zone.runOutsideAngular((/**\n * @return {?}\n */\n () => {\n this.disposeScroller = createScroller({\n fromRoot: this.fromRoot,\n alwaysCallback: this.alwaysCallback,\n disable: this.infiniteScrollDisabled,\n downDistance: this.infiniteScrollDistance,\n element: this.element,\n horizontal: this.horizontal,\n scrollContainer: this.infiniteScrollContainer,\n scrollWindow: this.scrollWindow,\n throttle: this.infiniteScrollThrottle,\n upDistance: this.infiniteScrollUpDistance\n }).subscribe((/**\n * @param {?} payload\n * @return {?}\n */\n (payload) => this.zone.run((/**\n * @return {?}\n */\n () => this.handleOnScroll(payload)))));\n }));\n }\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n handleOnScroll({ type, payload }) {\n switch (type) {\n case InfiniteScrollActions.DOWN:\n return this.scrolled.emit(payload);\n case InfiniteScrollActions.UP:\n return this.scrolledUp.emit(payload);\n default:\n return;\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this.destroyScroller();\n }\n /**\n * @return {?}\n */\n destroyScroller() {\n if (this.disposeScroller) {\n this.disposeScroller.unsubscribe();\n }\n }\n}\nInfiniteScrollDirective.ɵfac = function InfiniteScrollDirective_Factory(t) { return new (t || InfiniteScrollDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nInfiniteScrollDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: InfiniteScrollDirective, selectors: [[\"\", \"infiniteScroll\", \"\"], [\"\", \"infinite-scroll\", \"\"], [\"\", \"data-infinite-scroll\", \"\"]], inputs: { infiniteScrollDistance: \"infiniteScrollDistance\", infiniteScrollUpDistance: \"infiniteScrollUpDistance\", infiniteScrollThrottle: \"infiniteScrollThrottle\", infiniteScrollDisabled: \"infiniteScrollDisabled\", infiniteScrollContainer: \"infiniteScrollContainer\", scrollWindow: \"scrollWindow\", immediateCheck: \"immediateCheck\", horizontal: \"horizontal\", alwaysCallback: \"alwaysCallback\", fromRoot: \"fromRoot\" }, outputs: { scrolled: \"scrolled\", scrolledUp: \"scrolledUp\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/** @nocollapse */\nInfiniteScrollDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone }\n];\nInfiniteScrollDirective.propDecorators = {\n scrolled: [{ type: Output }],\n scrolledUp: [{ type: Output }],\n infiniteScrollDistance: [{ type: Input }],\n infiniteScrollUpDistance: [{ type: Input }],\n infiniteScrollThrottle: [{ type: Input }],\n infiniteScrollDisabled: [{ type: Input }],\n infiniteScrollContainer: [{ type: Input }],\n scrollWindow: [{ type: Input }],\n immediateCheck: [{ type: Input }],\n horizontal: [{ type: Input }],\n alwaysCallback: [{ type: Input }],\n fromRoot: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(InfiniteScrollDirective, [{\n type: Directive,\n args: [{\n selector: '[infiniteScroll], [infinite-scroll], [data-infinite-scroll]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { scrolled: [{\n type: Output\n }], scrolledUp: [{\n type: Output\n }], infiniteScrollDistance: [{\n type: Input\n }], infiniteScrollUpDistance: [{\n type: Input\n }], infiniteScrollThrottle: [{\n type: Input\n }], infiniteScrollDisabled: [{\n type: Input\n }], infiniteScrollContainer: [{\n type: Input\n }], scrollWindow: [{\n type: Input\n }], immediateCheck: [{\n type: Input\n }], horizontal: [{\n type: Input\n }], alwaysCallback: [{\n type: Input\n }], fromRoot: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/modules/ngx-infinite-scroll.module.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass InfiniteScrollModule {\n}\nInfiniteScrollModule.ɵfac = function InfiniteScrollModule_Factory(t) { return new (t || InfiniteScrollModule)(); };\nInfiniteScrollModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: InfiniteScrollModule });\nInfiniteScrollModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [], imports: [[]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(InfiniteScrollModule, [{\n type: NgModule,\n args: [{\n declarations: [InfiniteScrollDirective],\n exports: [InfiniteScrollDirective],\n imports: [],\n providers: []\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(InfiniteScrollModule, { declarations: [InfiniteScrollDirective], exports: [InfiniteScrollDirective] }); })();\n\n/**\n * @fileoverview added by tsickle\n * Generated from: src/ngx-infinite-scroll.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * Generated from: public-api.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Angular library starter.\n * Build an Angular library compatible with AoT compilation & Tree shaking.\n * Written by Roberto Simonetti.\n * MIT license.\n * https://github.com/robisim74/angular-library-starter\n */\n/**\n * Entry point for all public APIs of the package.\n */\n\n/**\n * @fileoverview added by tsickle\n * Generated from: ngx-infinite-scroll.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { InfiniteScrollDirective, InfiniteScrollModule };\n\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","import { Subject } from './Subject';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n getValue() {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n next(value) {\n super.next((this._value = value));\n }\n}\n","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(_bufferSize = Infinity, _windowTime = Infinity, _timestampProvider = dateTimestampProvider) {\n super();\n this._bufferSize = _bufferSize;\n this._windowTime = _windowTime;\n this._timestampProvider = _timestampProvider;\n this._buffer = [];\n this._infiniteTimeWindow = true;\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n next(value) {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { _infiniteTimeWindow, _buffer } = this;\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n for (let i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class Scheduler {\n constructor(schedulerActionCtor, now = Scheduler.now) {\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\nScheduler.now = dateTimestampProvider.now;\n","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n const copy = this.observers.slice();\n for (const observer of copy) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n return hasError || isStopped\n ? EMPTY_SUBSCRIPTION\n : (observers.push(subscriber), new Subscription(() => arrRemove(observers, subscriber)));\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let next;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n ({ next, error, complete } = observerOrNext);\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n }\n else {\n context = observerOrNext;\n }\n next = next === null || next === void 0 ? void 0 : next.bind(context);\n error = error === null || error === void 0 ? void 0 : error.bind(context);\n complete = complete === null || complete === void 0 ? void 0 : complete.bind(context);\n }\n this.destination = {\n next: next ? wrapForErrorHandling(next, this) : noop,\n error: wrapForErrorHandling(error !== null && error !== void 0 ? error : defaultErrorHandler, this),\n complete: complete ? wrapForErrorHandling(complete, this) : noop,\n };\n }\n}\nfunction wrapForErrorHandling(handler, instance) {\n return (...args) => {\n try {\n handler(...args);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(err);\n }\n else {\n reportUnhandledError(err);\n }\n }\n };\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._teardowns = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown } = this;\n if (isFunction(initialTeardown)) {\n try {\n initialTeardown();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _teardowns } = this;\n if (_teardowns) {\n this._teardowns = null;\n for (const teardown of _teardowns) {\n try {\n execTeardown(teardown);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execTeardown(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._teardowns = (_a = this._teardowns) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _teardowns } = this;\n _teardowns && arrRemove(_teardowns, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execTeardown(teardown) {\n if (isFunction(teardown)) {\n teardown();\n }\n else {\n teardown.unsubscribe();\n }\n}\n","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { OperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._subject = null;\n this._refCount = 0;\n this._connection = null;\n if (hasLift(source)) {\n this.lift = source.lift;\n }\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n _teardown() {\n this._refCount = 0;\n const { _connection } = this;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n const subject = this.getSubject();\n connection.add(this.source.subscribe(new OperatorSubscriber(subject, undefined, () => {\n this._teardown();\n subject.complete();\n }, (err) => {\n this._teardown();\n subject.error(err);\n }, () => this._teardown())));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { OperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => createObject(keys, values)\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n maybeSchedule(scheduler, () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n let remainingFirstValues = length;\n for (let i = 0; i < length; i++) {\n maybeSchedule(scheduler, () => {\n const source = from(observables[i], scheduler);\n let hasFirstValue = false;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, () => {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat(...args) {\n return concatAll()(from(args, popScheduler(args)));\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nexport function defer(observableFactory) {\n return new Observable((subscriber) => {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n","import { Subject, AnonymousSubject } from '../../Subject';\nimport { Subscriber } from '../../Subscriber';\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { ReplaySubject } from '../../ReplaySubject';\nconst DEFAULT_WEBSOCKET_CONFIG = {\n url: '',\n deserializer: (e) => JSON.parse(e.data),\n serializer: (value) => JSON.stringify(value),\n};\nconst WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';\nexport class WebSocketSubject extends AnonymousSubject {\n constructor(urlConfigOrSource, destination) {\n super();\n this._socket = null;\n if (urlConfigOrSource instanceof Observable) {\n this.destination = destination;\n this.source = urlConfigOrSource;\n }\n else {\n const config = (this._config = Object.assign({}, DEFAULT_WEBSOCKET_CONFIG));\n this._output = new Subject();\n if (typeof urlConfigOrSource === 'string') {\n config.url = urlConfigOrSource;\n }\n else {\n for (const key in urlConfigOrSource) {\n if (urlConfigOrSource.hasOwnProperty(key)) {\n config[key] = urlConfigOrSource[key];\n }\n }\n }\n if (!config.WebSocketCtor && WebSocket) {\n config.WebSocketCtor = WebSocket;\n }\n else if (!config.WebSocketCtor) {\n throw new Error('no WebSocket constructor can be found');\n }\n this.destination = new ReplaySubject();\n }\n }\n lift(operator) {\n const sock = new WebSocketSubject(this._config, this.destination);\n sock.operator = operator;\n sock.source = this;\n return sock;\n }\n _resetState() {\n this._socket = null;\n if (!this.source) {\n this.destination = new ReplaySubject();\n }\n this._output = new Subject();\n }\n multiplex(subMsg, unsubMsg, messageFilter) {\n const self = this;\n return new Observable((observer) => {\n try {\n self.next(subMsg());\n }\n catch (err) {\n observer.error(err);\n }\n const subscription = self.subscribe((x) => {\n try {\n if (messageFilter(x)) {\n observer.next(x);\n }\n }\n catch (err) {\n observer.error(err);\n }\n }, (err) => observer.error(err), () => observer.complete());\n return () => {\n try {\n self.next(unsubMsg());\n }\n catch (err) {\n observer.error(err);\n }\n subscription.unsubscribe();\n };\n });\n }\n _connectSocket() {\n const { WebSocketCtor, protocol, url, binaryType } = this._config;\n const observer = this._output;\n let socket = null;\n try {\n socket = protocol ? new WebSocketCtor(url, protocol) : new WebSocketCtor(url);\n this._socket = socket;\n if (binaryType) {\n this._socket.binaryType = binaryType;\n }\n }\n catch (e) {\n observer.error(e);\n return;\n }\n const subscription = new Subscription(() => {\n this._socket = null;\n if (socket && socket.readyState === 1) {\n socket.close();\n }\n });\n socket.onopen = (evt) => {\n const { _socket } = this;\n if (!_socket) {\n socket.close();\n this._resetState();\n return;\n }\n const { openObserver } = this._config;\n if (openObserver) {\n openObserver.next(evt);\n }\n const queue = this.destination;\n this.destination = Subscriber.create((x) => {\n if (socket.readyState === 1) {\n try {\n const { serializer } = this._config;\n socket.send(serializer(x));\n }\n catch (e) {\n this.destination.error(e);\n }\n }\n }, (err) => {\n const { closingObserver } = this._config;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n if (err && err.code) {\n socket.close(err.code, err.reason);\n }\n else {\n observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));\n }\n this._resetState();\n }, () => {\n const { closingObserver } = this._config;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n socket.close();\n this._resetState();\n });\n if (queue && queue instanceof ReplaySubject) {\n subscription.add(queue.subscribe(this.destination));\n }\n };\n socket.onerror = (e) => {\n this._resetState();\n observer.error(e);\n };\n socket.onclose = (e) => {\n if (socket === this._socket) {\n this._resetState();\n }\n const { closeObserver } = this._config;\n if (closeObserver) {\n closeObserver.next(e);\n }\n if (e.wasClean) {\n observer.complete();\n }\n else {\n observer.error(e);\n }\n };\n socket.onmessage = (e) => {\n try {\n const { deserializer } = this._config;\n observer.next(deserializer(e));\n }\n catch (err) {\n observer.error(err);\n }\n };\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return source.subscribe(subscriber);\n }\n if (!this._socket) {\n this._connectSocket();\n }\n this._output.subscribe(subscriber);\n subscriber.add(() => {\n const { _socket } = this;\n if (this._output.observers.length === 0) {\n if (_socket && (_socket.readyState === 1 || _socket.readyState === 0)) {\n _socket.close();\n }\n this._resetState();\n }\n });\n return subscriber;\n }\n unsubscribe() {\n const { _socket } = this;\n if (_socket && (_socket.readyState === 1 || _socket.readyState === 0)) {\n _socket.close();\n }\n this._resetState();\n super.unsubscribe();\n }\n}\n","import { WebSocketSubject } from './WebSocketSubject';\nexport function webSocket(urlConfigOrSource) {\n return new WebSocketSubject(urlConfigOrSource);\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { innerFrom } from './innerFrom';\nimport { popResultSelector } from '../util/args';\nimport { OperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { createObject } from '../util/createObject';\nexport function forkJoin(...args) {\n const resultSelector = popResultSelector(args);\n const { args: sources, keys } = argsArgArrayOrObject(args);\n const result = new Observable((subscriber) => {\n const { length } = sources;\n if (!length) {\n subscriber.complete();\n return;\n }\n const values = new Array(length);\n let remainingCompletions = length;\n let remainingEmissions = length;\n for (let sourceIndex = 0; sourceIndex < length; sourceIndex++) {\n let hasValue = false;\n innerFrom(sources[sourceIndex]).subscribe(new OperatorSubscriber(subscriber, (value) => {\n if (!hasValue) {\n hasValue = true;\n remainingEmissions--;\n }\n values[sourceIndex] = value;\n }, () => remainingCompletions--, undefined, () => {\n if (!remainingCompletions || !hasValue) {\n if (!remainingEmissions) {\n subscriber.next(keys ? createObject(keys, values) : values);\n }\n subscriber.complete();\n }\n }));\n }\n });\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\n","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Observable } from '../Observable';\nimport { mergeMap } from '../operators/mergeMap';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isFunction } from '../util/isFunction';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nconst nodeEventEmitterMethods = ['addListener', 'removeListener'];\nconst eventTargetMethods = ['addEventListener', 'removeEventListener'];\nconst jqueryMethods = ['on', 'off'];\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));\n }\n const [add, remove] = isEventTarget(target)\n ? eventTargetMethods.map((methodName) => (handler) => target[methodName](eventName, handler, options))\n :\n isNodeStyleEventEmitter(target)\n ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))\n : isJQueryStyleEventEmitter(target)\n ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))\n : [];\n if (!add) {\n if (isArrayLike(target)) {\n return mergeMap((subTarget) => fromEvent(subTarget, eventName, options))(innerFrom(target));\n }\n }\n if (!add) {\n throw new TypeError('Invalid event target');\n }\n return new Observable((subscriber) => {\n const handler = (...args) => subscriber.next(1 < args.length ? args : args[0]);\n add(handler);\n return () => remove(handler);\n });\n}\nfunction toCommonHandlerRegistry(target, eventName) {\n return (methodName) => (handler) => target[methodName](eventName, handler);\n}\nfunction isNodeStyleEventEmitter(target) {\n return isFunction(target.addListener) && isFunction(target.removeListener);\n}\nfunction isJQueryStyleEventEmitter(target) {\n return isFunction(target.on) && isFunction(target.off);\n}\nfunction isEventTarget(target) {\n return isFunction(target.addEventListener) && isFunction(target.removeEventListener);\n}\n","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable((subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { timer } from './timer';\nexport function interval(period = 0, scheduler = asyncScheduler) {\n if (period < 0) {\n period = 0;\n }\n return timer(period, period, scheduler);\n}\n","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport const NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of(...args) {\n const scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { OperatorSubscriber } from '../operators/OperatorSubscriber';\nexport function race(...sources) {\n sources = argsOrArgArray(sources);\n return sources.length === 1 ? innerFrom(sources[0]) : new Observable(raceInit(sources));\n}\nexport function raceInit(sources) {\n return (subscriber) => {\n let subscriptions = [];\n for (let i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {\n subscriptions.push(innerFrom(sources[i]).subscribe(new OperatorSubscriber(subscriber, (value) => {\n if (subscriptions) {\n for (let s = 0; s < subscriptions.length; s++) {\n s !== i && subscriptions[s].unsubscribe();\n }\n subscriptions = null;\n }\n subscriber.next(value);\n })));\n }\n };\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from '../util/isFunction';\nexport function throwError(errorOrErrorFactory, scheduler) {\n const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory;\n const init = (subscriber) => subscriber.error(errorFactory());\n return new Observable(scheduler ? (subscriber) => scheduler.schedule(init, 0, subscriber) : init);\n}\n","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime = 0, intervalOrScheduler, scheduler = asyncScheduler) {\n let intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable((subscriber) => {\n let due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n let n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { EMPTY } from './empty';\nimport { OperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { popResultSelector } from '../util/args';\nexport function zip(...args) {\n const resultSelector = popResultSelector(args);\n const sources = argsOrArgArray(args);\n return sources.length\n ? new Observable((subscriber) => {\n let buffers = sources.map(() => []);\n let completed = sources.map(() => false);\n subscriber.add(() => {\n buffers = completed = null;\n });\n for (let sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {\n innerFrom(sources[sourceIndex]).subscribe(new OperatorSubscriber(subscriber, (value) => {\n buffers[sourceIndex].push(value);\n if (buffers.every((buffer) => buffer.length)) {\n const result = buffers.map((buffer) => buffer.shift());\n subscriber.next(resultSelector ? resultSelector(...result) : result);\n if (buffers.some((buffer, i) => !buffer.length && completed[i])) {\n subscriber.complete();\n }\n }\n }, () => {\n completed[sourceIndex] = true;\n !buffers[sourceIndex].length && subscriber.complete();\n }));\n }\n return () => {\n buffers = completed = null;\n };\n })\n : EMPTY;\n}\n","import { Subscriber } from '../Subscriber';\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize) {\n super(destination);\n this.onFinalize = onFinalize;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n}\n","import { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function audit(durationSelector) {\n return operate((source, subscriber) => {\n let hasValue = false;\n let lastValue = null;\n let durationSubscriber = null;\n let isComplete = false;\n const endDuration = () => {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n isComplete && subscriber.complete();\n };\n const cleanupDuration = () => {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom(durationSelector(value)).subscribe((durationSubscriber = new OperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, () => {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\n }));\n });\n}\n","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler = async) {\n return audit(() => timer(duration, scheduler));\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate((source, subscriber) => {\n let innerSub = null;\n let syncUnsub = false;\n let handledResult;\n innerSub = source.subscribe(new OperatorSubscriber(subscriber, undefined, undefined, (err) => {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nimport { isFunction } from '../util/isFunction';\nexport function concatMap(project, resultSelector) {\n return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler = asyncScheduler) {\n return operate((source, subscriber) => {\n let activeTask = null;\n let lastValue = null;\n let lastTime = null;\n const emit = () => {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n const targetTime = lastTime + dueTime;\n const now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, () => {\n emit();\n subscriber.complete();\n }, undefined, () => {\n lastValue = activeTask = null;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler = asyncScheduler) {\n const duration = timer(due, scheduler);\n return delayWhen(() => duration);\n}\n","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return (source) => concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n }\n return mergeMap((value, index) => delayDurationSelector(value, index).pipe(take(1), mapTo(value)));\n}\n","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector = identity) {\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate((source, subscriber) => {\n let previousKey;\n let first = true;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n const currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n","import { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith(...values) {\n return (source) => concat(source, of(...values));\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate((source, subscriber) => {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, noop));\n });\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n","import { map } from './map';\nexport function mapTo(value) {\n return map(() => value);\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalTeardown) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(new OperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(new OperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalTeardown === null || additionalTeardown === void 0 ? void 0 : additionalTeardown();\n };\n}\n","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(new OperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)));\n });\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function pairwise() {\n return operate((source, subscriber) => {\n let prev;\n let hasPrev = false;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n const p = prev;\n prev = value;\n hasPrev && subscriber.next([p, value]);\n hasPrev = true;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function refCount() {\n return operate((source, subscriber) => {\n let connection = null;\n source._refCount++;\n const refCounter = new OperatorSubscriber(subscriber, undefined, undefined, undefined, () => {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n const sharedConnection = source._connection;\n const conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\n","import { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\nexport function scan(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\n","import { OperatorSubscriber } from './OperatorSubscriber';\nexport function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return (source, subscriber) => {\n let hasState = hasSeed;\n let state = seed;\n let index = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n const i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (() => {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\n","import { from } from '../observable/from';\nimport { take } from '../operators/take';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options = {}) {\n const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;\n return (wrapperSource) => {\n let connection = null;\n let resetConnection = null;\n let subject = null;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = null;\n };\n const reset = () => {\n cancelReset();\n connection = subject = null;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection) {\n connection = new SafeSubscriber({\n next: (value) => dest.next(value),\n error: (err) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n from(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return null;\n }\n if (on === false) {\n return null;\n }\n return on(...args)\n .pipe(take(1))\n .subscribe(() => reset());\n}\n","import { ReplaySubject } from '../ReplaySubject';\nimport { share } from './share';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var _a, _b;\n let bufferSize;\n let refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n bufferSize = (_a = configOrBufferSize.bufferSize) !== null && _a !== void 0 ? _a : Infinity;\n windowTime = (_b = configOrBufferSize.windowTime) !== null && _b !== void 0 ? _b : Infinity;\n refCount = !!configOrBufferSize.refCount;\n scheduler = configOrBufferSize.scheduler;\n }\n else {\n bufferSize = configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity;\n }\n return share({\n connector: () => new ReplaySubject(bufferSize, windowTime, scheduler),\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount\n });\n}\n","import { filter } from './filter';\nexport function skip(count) {\n return filter((_, index) => count <= index);\n}\n","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate((source, subscriber) => {\n let innerSubscriber = null;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n let innerIndex = 0;\n const outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = new OperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), () => {\n innerSubscriber = null;\n checkComplete();\n })));\n }, () => {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n () => EMPTY\n : operate((source, subscriber) => {\n let seen = 0;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function takeLast(count) {\n return count <= 0\n ? () => EMPTY\n : operate((source, subscriber) => {\n let buffer = [];\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n buffer.push(value);\n count < buffer.length && buffer.shift();\n }, () => {\n for (const value of buffer) {\n subscriber.next(value);\n }\n subscriber.complete();\n }, undefined, () => {\n buffer = null;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(new OperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport const defaultThrottleConfig = {\n leading: true,\n trailing: false,\n};\nexport function throttle(durationSelector, config = defaultThrottleConfig) {\n return operate((source, subscriber) => {\n const { leading, trailing } = config;\n let hasValue = false;\n let sendValue = null;\n let throttled = null;\n let isComplete = false;\n const endThrottling = () => {\n throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n const cleanupThrottling = () => {\n throttled = null;\n isComplete && subscriber.complete();\n };\n const startThrottle = (value) => (throttled = innerFrom(durationSelector(value)).subscribe(new OperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n const send = () => {\n if (hasValue) {\n hasValue = false;\n const value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, () => {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\n","import { asyncScheduler } from '../scheduler/async';\nimport { defaultThrottleConfig, throttle } from './throttle';\nimport { timer } from '../observable/timer';\nexport function throttleTime(duration, scheduler = asyncScheduler, config = defaultThrottleConfig) {\n const duration$ = timer(duration, scheduler);\n return throttle(() => duration$, config);\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { operate } from '../util/lift';\nimport { OperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom(...inputs) {\n const project = popResultSelector(inputs);\n return operate((source, subscriber) => {\n const len = inputs.length;\n const otherValues = new Array(len);\n let hasValue = inputs.map(() => false);\n let ready = false;\n for (let i = 0; i < len; i++) {\n innerFrom(inputs[i]).subscribe(new OperatorSubscriber(subscriber, (value) => {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, noop));\n }\n source.subscribe(new OperatorSubscriber(subscriber, (value) => {\n if (ready) {\n const values = [value, ...otherValues];\n subscriber.next(project ? project(...values) : values);\n }\n }));\n });\n}\n","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, () => {\n iterator.next().then((result) => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n executeSchedule(subscriber, scheduler, () => {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, () => {\n let value;\n let done;\n try {\n ({ value, done } = iterator.next());\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { animationFrameProvider } from './animationFrameProvider';\nexport class AnimationFrameAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (!scheduler.actions.some((action) => action.id === id)) {\n animationFrameProvider.cancelAnimationFrame(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AnimationFrameScheduler extends AsyncScheduler {\n flush(action) {\n this._active = true;\n const flushId = this._scheduled;\n this._scheduled = undefined;\n const { actions } = this;\n let error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { immediateProvider } from './immediateProvider';\nexport class AsapAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (!scheduler.actions.some((action) => action.id === id)) {\n immediateProvider.clearImmediate(id);\n scheduler._scheduled = undefined;\n }\n return undefined;\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AsapScheduler extends AsyncScheduler {\n flush(action) {\n this._active = true;\n const flushId = this._scheduled;\n this._scheduled = undefined;\n const { actions } = this;\n let error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, _id, delay = 0) {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(_scheduler, id, delay = 0) {\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, _delay) {\n let errored = false;\n let errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n super.unsubscribe();\n }\n }\n}\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, now);\n this.actions = [];\n this._active = false;\n this._scheduled = undefined;\n }\n flush(action) {\n const { actions } = this;\n if (this._active) {\n actions.push(action);\n return;\n }\n let error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport const animationFrame = animationFrameScheduler;\n","import { Subscription } from '../Subscription';\nexport const animationFrameProvider = {\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel === null || cancel === void 0 ? void 0 : cancel(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport const asapScheduler = new AsapScheduler(AsapAction);\nexport const asap = asapScheduler;\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n","export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n","import { Immediate } from '../util/Immediate';\nconst { setImmediate, clearImmediate } = Immediate;\nexport const immediateProvider = {\n setImmediate(...args) {\n const { delegate } = immediateProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate)(...args);\n },\n clearImmediate(handle) {\n const { delegate } = immediateProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n","export const intervalProvider = {\n setInterval(...args) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) || setInterval)(...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n","export const timeoutProvider = {\n setTimeout(...args) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) || setTimeout)(...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\n","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","import { createErrorClass } from './createErrorClass';\nexport const EmptyError = createErrorClass((_super) => function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n});\n","let nextHandle = 1;\nlet resolved;\nconst activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport const Immediate = {\n setImmediate(cb) {\n const handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(() => findAndClearHandle(handle) && cb());\n return handle;\n },\n clearImmediate(handle) {\n findAndClearHandle(handle);\n },\n};\nexport const TestTools = {\n pending() {\n return Object.keys(activeHandles).length;\n }\n};\n","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n","const { isArray } = Array;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n","export function createObject(keys, values) {\n return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {});\n}\n","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n","export function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) {\n const scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n","export function identity(x) {\n return x;\n}\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from './isFunction';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (isFunction(obj.lift) && isFunction(obj.subscribe)));\n}\n","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n","import { __asyncGenerator, __await } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = yield __await(reader.read());\n if (done) {\n return yield __await(void 0);\n }\n yield yield __await(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n","export function noop() { }\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`);\n}\n","'use strict';\n\nvar transportList = require('./transport-list');\n\nmodule.exports = require('./main')(transportList);\n\n// TODO can't get rid of this until all servers do\nif ('_sockjs_onload' in global) {\n setTimeout(global._sockjs_onload, 1);\n}\n","'use strict';\n\nvar inherits = require('inherits')\n , Event = require('./event')\n ;\n\nfunction CloseEvent() {\n Event.call(this);\n this.initEvent('close', false, false);\n this.wasClean = false;\n this.code = 0;\n this.reason = '';\n}\n\ninherits(CloseEvent, Event);\n\nmodule.exports = CloseEvent;\n","'use strict';\n\nvar inherits = require('inherits')\n , EventTarget = require('./eventtarget')\n ;\n\nfunction EventEmitter() {\n EventTarget.call(this);\n}\n\ninherits(EventEmitter, EventTarget);\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n if (type) {\n delete this._listeners[type];\n } else {\n this._listeners = {};\n }\n};\n\nEventEmitter.prototype.once = function(type, listener) {\n var self = this\n , fired = false;\n\n function g() {\n self.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n this.on(type, g);\n};\n\nEventEmitter.prototype.emit = function() {\n var type = arguments[0];\n var listeners = this._listeners[type];\n if (!listeners) {\n return;\n }\n // equivalent of Array.prototype.slice.call(arguments, 1);\n var l = arguments.length;\n var args = new Array(l - 1);\n for (var ai = 1; ai < l; ai++) {\n args[ai - 1] = arguments[ai];\n }\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].apply(this, args);\n }\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener = EventTarget.prototype.addEventListener;\nEventEmitter.prototype.removeListener = EventTarget.prototype.removeEventListener;\n\nmodule.exports.EventEmitter = EventEmitter;\n","'use strict';\n\nfunction Event(eventType) {\n this.type = eventType;\n}\n\nEvent.prototype.initEvent = function(eventType, canBubble, cancelable) {\n this.type = eventType;\n this.bubbles = canBubble;\n this.cancelable = cancelable;\n this.timeStamp = +new Date();\n return this;\n};\n\nEvent.prototype.stopPropagation = function() {};\nEvent.prototype.preventDefault = function() {};\n\nEvent.CAPTURING_PHASE = 1;\nEvent.AT_TARGET = 2;\nEvent.BUBBLING_PHASE = 3;\n\nmodule.exports = Event;\n","'use strict';\n\n/* Simplified implementation of DOM2 EventTarget.\n * http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget\n */\n\nfunction EventTarget() {\n this._listeners = {};\n}\n\nEventTarget.prototype.addEventListener = function(eventType, listener) {\n if (!(eventType in this._listeners)) {\n this._listeners[eventType] = [];\n }\n var arr = this._listeners[eventType];\n // #4\n if (arr.indexOf(listener) === -1) {\n // Make a copy so as not to interfere with a current dispatchEvent.\n arr = arr.concat([listener]);\n }\n this._listeners[eventType] = arr;\n};\n\nEventTarget.prototype.removeEventListener = function(eventType, listener) {\n var arr = this._listeners[eventType];\n if (!arr) {\n return;\n }\n var idx = arr.indexOf(listener);\n if (idx !== -1) {\n if (arr.length > 1) {\n // Make a copy so as not to interfere with a current dispatchEvent.\n this._listeners[eventType] = arr.slice(0, idx).concat(arr.slice(idx + 1));\n } else {\n delete this._listeners[eventType];\n }\n return;\n }\n};\n\nEventTarget.prototype.dispatchEvent = function() {\n var event = arguments[0];\n var t = event.type;\n // equivalent of Array.prototype.slice.call(arguments, 0);\n var args = arguments.length === 1 ? [event] : Array.apply(null, arguments);\n // TODO: This doesn't match the real behavior; per spec, onfoo get\n // their place in line from the /first/ time they're set from\n // non-null. Although WebKit bumps it to the end every time it's\n // set.\n if (this['on' + t]) {\n this['on' + t].apply(this, args);\n }\n if (t in this._listeners) {\n // Grab a reference to the listeners list. removeEventListener may alter the list.\n var listeners = this._listeners[t];\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].apply(this, args);\n }\n }\n};\n\nmodule.exports = EventTarget;\n","'use strict';\n\nvar inherits = require('inherits')\n , Event = require('./event')\n ;\n\nfunction TransportMessageEvent(data) {\n Event.call(this);\n this.initEvent('message', false, false);\n this.data = data;\n}\n\ninherits(TransportMessageEvent, Event);\n\nmodule.exports = TransportMessageEvent;\n","'use strict';\n\nvar JSON3 = require('json3')\n , iframeUtils = require('./utils/iframe')\n ;\n\nfunction FacadeJS(transport) {\n this._transport = transport;\n transport.on('message', this._transportMessage.bind(this));\n transport.on('close', this._transportClose.bind(this));\n}\n\nFacadeJS.prototype._transportClose = function(code, reason) {\n iframeUtils.postMessage('c', JSON3.stringify([code, reason]));\n};\nFacadeJS.prototype._transportMessage = function(frame) {\n iframeUtils.postMessage('t', frame);\n};\nFacadeJS.prototype._send = function(data) {\n this._transport.send(data);\n};\nFacadeJS.prototype._close = function() {\n this._transport.close();\n this._transport.removeAllListeners();\n};\n\nmodule.exports = FacadeJS;\n","'use strict';\n\nvar urlUtils = require('./utils/url')\n , eventUtils = require('./utils/event')\n , JSON3 = require('json3')\n , FacadeJS = require('./facade')\n , InfoIframeReceiver = require('./info-iframe-receiver')\n , iframeUtils = require('./utils/iframe')\n , loc = require('./location')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:iframe-bootstrap');\n}\n\nmodule.exports = function(SockJS, availableTransports) {\n var transportMap = {};\n availableTransports.forEach(function(at) {\n if (at.facadeTransport) {\n transportMap[at.facadeTransport.transportName] = at.facadeTransport;\n }\n });\n\n // hard-coded for the info iframe\n // TODO see if we can make this more dynamic\n transportMap[InfoIframeReceiver.transportName] = InfoIframeReceiver;\n var parentOrigin;\n\n /* eslint-disable camelcase */\n SockJS.bootstrap_iframe = function() {\n /* eslint-enable camelcase */\n var facade;\n iframeUtils.currentWindowId = loc.hash.slice(1);\n var onMessage = function(e) {\n if (e.source !== parent) {\n return;\n }\n if (typeof parentOrigin === 'undefined') {\n parentOrigin = e.origin;\n }\n if (e.origin !== parentOrigin) {\n return;\n }\n\n var iframeMessage;\n try {\n iframeMessage = JSON3.parse(e.data);\n } catch (ignored) {\n debug('bad json', e.data);\n return;\n }\n\n if (iframeMessage.windowId !== iframeUtils.currentWindowId) {\n return;\n }\n switch (iframeMessage.type) {\n case 's':\n var p;\n try {\n p = JSON3.parse(iframeMessage.data);\n } catch (ignored) {\n debug('bad json', iframeMessage.data);\n break;\n }\n var version = p[0];\n var transport = p[1];\n var transUrl = p[2];\n var baseUrl = p[3];\n debug(version, transport, transUrl, baseUrl);\n // change this to semver logic\n if (version !== SockJS.version) {\n throw new Error('Incompatible SockJS! Main site uses:' +\n ' \"' + version + '\", the iframe:' +\n ' \"' + SockJS.version + '\".');\n }\n\n if (!urlUtils.isOriginEqual(transUrl, loc.href) ||\n !urlUtils.isOriginEqual(baseUrl, loc.href)) {\n throw new Error('Can\\'t connect to different domain from within an ' +\n 'iframe. (' + loc.href + ', ' + transUrl + ', ' + baseUrl + ')');\n }\n facade = new FacadeJS(new transportMap[transport](transUrl, baseUrl));\n break;\n case 'm':\n facade._send(iframeMessage.data);\n break;\n case 'c':\n if (facade) {\n facade._close();\n }\n facade = null;\n break;\n }\n };\n\n eventUtils.attachEvent('message', onMessage);\n\n // Start\n iframeUtils.postMessage('s');\n };\n};\n","'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , JSON3 = require('json3')\n , objectUtils = require('./utils/object')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-ajax');\n}\n\nfunction InfoAjax(url, AjaxObject) {\n EventEmitter.call(this);\n\n var self = this;\n var t0 = +new Date();\n this.xo = new AjaxObject('GET', url);\n\n this.xo.once('finish', function(status, text) {\n var info, rtt;\n if (status === 200) {\n rtt = (+new Date()) - t0;\n if (text) {\n try {\n info = JSON3.parse(text);\n } catch (e) {\n debug('bad json', text);\n }\n }\n\n if (!objectUtils.isObject(info)) {\n info = {};\n }\n }\n self.emit('finish', info, rtt);\n self.removeAllListeners();\n });\n}\n\ninherits(InfoAjax, EventEmitter);\n\nInfoAjax.prototype.close = function() {\n this.removeAllListeners();\n this.xo.close();\n};\n\nmodule.exports = InfoAjax;\n","'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n , JSON3 = require('json3')\n , XHRLocalObject = require('./transport/sender/xhr-local')\n , InfoAjax = require('./info-ajax')\n ;\n\nfunction InfoReceiverIframe(transUrl) {\n var self = this;\n EventEmitter.call(this);\n\n this.ir = new InfoAjax(transUrl, XHRLocalObject);\n this.ir.once('finish', function(info, rtt) {\n self.ir = null;\n self.emit('message', JSON3.stringify([info, rtt]));\n });\n}\n\ninherits(InfoReceiverIframe, EventEmitter);\n\nInfoReceiverIframe.transportName = 'iframe-info-receiver';\n\nInfoReceiverIframe.prototype.close = function() {\n if (this.ir) {\n this.ir.close();\n this.ir = null;\n }\n this.removeAllListeners();\n};\n\nmodule.exports = InfoReceiverIframe;\n","'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , JSON3 = require('json3')\n , utils = require('./utils/event')\n , IframeTransport = require('./transport/iframe')\n , InfoReceiverIframe = require('./info-iframe-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-iframe');\n}\n\nfunction InfoIframe(baseUrl, url) {\n var self = this;\n EventEmitter.call(this);\n\n var go = function() {\n var ifr = self.ifr = new IframeTransport(InfoReceiverIframe.transportName, url, baseUrl);\n\n ifr.once('message', function(msg) {\n if (msg) {\n var d;\n try {\n d = JSON3.parse(msg);\n } catch (e) {\n debug('bad json', msg);\n self.emit('finish');\n self.close();\n return;\n }\n\n var info = d[0], rtt = d[1];\n self.emit('finish', info, rtt);\n }\n self.close();\n });\n\n ifr.once('close', function() {\n self.emit('finish');\n self.close();\n });\n };\n\n // TODO this seems the same as the 'needBody' from transports\n if (!global.document.body) {\n utils.attachEvent('load', go);\n } else {\n go();\n }\n}\n\ninherits(InfoIframe, EventEmitter);\n\nInfoIframe.enabled = function() {\n return IframeTransport.enabled();\n};\n\nInfoIframe.prototype.close = function() {\n if (this.ifr) {\n this.ifr.close();\n }\n this.removeAllListeners();\n this.ifr = null;\n};\n\nmodule.exports = InfoIframe;\n","'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , urlUtils = require('./utils/url')\n , XDR = require('./transport/sender/xdr')\n , XHRCors = require('./transport/sender/xhr-cors')\n , XHRLocal = require('./transport/sender/xhr-local')\n , XHRFake = require('./transport/sender/xhr-fake')\n , InfoIframe = require('./info-iframe')\n , InfoAjax = require('./info-ajax')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-receiver');\n}\n\nfunction InfoReceiver(baseUrl, urlInfo) {\n debug(baseUrl);\n var self = this;\n EventEmitter.call(this);\n\n setTimeout(function() {\n self.doXhr(baseUrl, urlInfo);\n }, 0);\n}\n\ninherits(InfoReceiver, EventEmitter);\n\n// TODO this is currently ignoring the list of available transports and the whitelist\n\nInfoReceiver._getReceiver = function(baseUrl, url, urlInfo) {\n // determine method of CORS support (if needed)\n if (urlInfo.sameOrigin) {\n return new InfoAjax(url, XHRLocal);\n }\n if (XHRCors.enabled) {\n return new InfoAjax(url, XHRCors);\n }\n if (XDR.enabled && urlInfo.sameScheme) {\n return new InfoAjax(url, XDR);\n }\n if (InfoIframe.enabled()) {\n return new InfoIframe(baseUrl, url);\n }\n return new InfoAjax(url, XHRFake);\n};\n\nInfoReceiver.prototype.doXhr = function(baseUrl, urlInfo) {\n var self = this\n , url = urlUtils.addPath(baseUrl, '/info')\n ;\n debug('doXhr', url);\n\n this.xo = InfoReceiver._getReceiver(baseUrl, url, urlInfo);\n\n this.timeoutRef = setTimeout(function() {\n debug('timeout');\n self._cleanup(false);\n self.emit('finish');\n }, InfoReceiver.timeout);\n\n this.xo.once('finish', function(info, rtt) {\n debug('finish', info, rtt);\n self._cleanup(true);\n self.emit('finish', info, rtt);\n });\n};\n\nInfoReceiver.prototype._cleanup = function(wasClean) {\n debug('_cleanup');\n clearTimeout(this.timeoutRef);\n this.timeoutRef = null;\n if (!wasClean && this.xo) {\n this.xo.close();\n }\n this.xo = null;\n};\n\nInfoReceiver.prototype.close = function() {\n debug('close');\n this.removeAllListeners();\n this._cleanup(false);\n};\n\nInfoReceiver.timeout = 8000;\n\nmodule.exports = InfoReceiver;\n","'use strict';\n\nmodule.exports = global.location || {\n origin: 'http://localhost:80'\n, protocol: 'http:'\n, host: 'localhost'\n, port: 80\n, href: 'http://localhost/'\n, hash: ''\n};\n","'use strict';\n\nrequire('./shims');\n\nvar URL = require('url-parse')\n , inherits = require('inherits')\n , JSON3 = require('json3')\n , random = require('./utils/random')\n , escape = require('./utils/escape')\n , urlUtils = require('./utils/url')\n , eventUtils = require('./utils/event')\n , transport = require('./utils/transport')\n , objectUtils = require('./utils/object')\n , browser = require('./utils/browser')\n , log = require('./utils/log')\n , Event = require('./event/event')\n , EventTarget = require('./event/eventtarget')\n , loc = require('./location')\n , CloseEvent = require('./event/close')\n , TransportMessageEvent = require('./event/trans-message')\n , InfoReceiver = require('./info-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:main');\n}\n\nvar transports;\n\n// follow constructor steps defined at http://dev.w3.org/html5/websockets/#the-websocket-interface\nfunction SockJS(url, protocols, options) {\n if (!(this instanceof SockJS)) {\n return new SockJS(url, protocols, options);\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'SockJS: 1 argument required, but only 0 present\");\n }\n EventTarget.call(this);\n\n this.readyState = SockJS.CONNECTING;\n this.extensions = '';\n this.protocol = '';\n\n // non-standard extension\n options = options || {};\n if (options.protocols_whitelist) {\n log.warn(\"'protocols_whitelist' is DEPRECATED. Use 'transports' instead.\");\n }\n this._transportsWhitelist = options.transports;\n this._transportOptions = options.transportOptions || {};\n this._timeout = options.timeout || 0;\n\n var sessionId = options.sessionId || 8;\n if (typeof sessionId === 'function') {\n this._generateSessionId = sessionId;\n } else if (typeof sessionId === 'number') {\n this._generateSessionId = function() {\n return random.string(sessionId);\n };\n } else {\n throw new TypeError('If sessionId is used in the options, it needs to be a number or a function.');\n }\n\n this._server = options.server || random.numberString(1000);\n\n // Step 1 of WS spec - parse and validate the url. Issue #8\n var parsedUrl = new URL(url);\n if (!parsedUrl.host || !parsedUrl.protocol) {\n throw new SyntaxError(\"The URL '\" + url + \"' is invalid\");\n } else if (parsedUrl.hash) {\n throw new SyntaxError('The URL must not contain a fragment');\n } else if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new SyntaxError(\"The URL's scheme must be either 'http:' or 'https:'. '\" + parsedUrl.protocol + \"' is not allowed.\");\n }\n\n var secure = parsedUrl.protocol === 'https:';\n // Step 2 - don't allow secure origin with an insecure protocol\n if (loc.protocol === 'https:' && !secure) {\n // exception is 127.0.0.0/8 and ::1 urls\n if (!urlUtils.isLoopbackAddr(parsedUrl.hostname)) {\n throw new Error('SecurityError: An insecure SockJS connection may not be initiated from a page loaded over HTTPS');\n }\n }\n\n // Step 3 - check port access - no need here\n // Step 4 - parse protocols argument\n if (!protocols) {\n protocols = [];\n } else if (!Array.isArray(protocols)) {\n protocols = [protocols];\n }\n\n // Step 5 - check protocols argument\n var sortedProtocols = protocols.sort();\n sortedProtocols.forEach(function(proto, i) {\n if (!proto) {\n throw new SyntaxError(\"The protocols entry '\" + proto + \"' is invalid.\");\n }\n if (i < (sortedProtocols.length - 1) && proto === sortedProtocols[i + 1]) {\n throw new SyntaxError(\"The protocols entry '\" + proto + \"' is duplicated.\");\n }\n });\n\n // Step 6 - convert origin\n var o = urlUtils.getOrigin(loc.href);\n this._origin = o ? o.toLowerCase() : null;\n\n // remove the trailing slash\n parsedUrl.set('pathname', parsedUrl.pathname.replace(/\\/+$/, ''));\n\n // store the sanitized url\n this.url = parsedUrl.href;\n debug('using url', this.url);\n\n // Step 7 - start connection in background\n // obtain server info\n // http://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html#section-26\n this._urlInfo = {\n nullOrigin: !browser.hasDomain()\n , sameOrigin: urlUtils.isOriginEqual(this.url, loc.href)\n , sameScheme: urlUtils.isSchemeEqual(this.url, loc.href)\n };\n\n this._ir = new InfoReceiver(this.url, this._urlInfo);\n this._ir.once('finish', this._receiveInfo.bind(this));\n}\n\ninherits(SockJS, EventTarget);\n\nfunction userSetCode(code) {\n return code === 1000 || (code >= 3000 && code <= 4999);\n}\n\nSockJS.prototype.close = function(code, reason) {\n // Step 1\n if (code && !userSetCode(code)) {\n throw new Error('InvalidAccessError: Invalid code');\n }\n // Step 2.4 states the max is 123 bytes, but we are just checking length\n if (reason && reason.length > 123) {\n throw new SyntaxError('reason argument has an invalid length');\n }\n\n // Step 3.1\n if (this.readyState === SockJS.CLOSING || this.readyState === SockJS.CLOSED) {\n return;\n }\n\n // TODO look at docs to determine how to set this\n var wasClean = true;\n this._close(code || 1000, reason || 'Normal closure', wasClean);\n};\n\nSockJS.prototype.send = function(data) {\n // #13 - convert anything non-string to string\n // TODO this currently turns objects into [object Object]\n if (typeof data !== 'string') {\n data = '' + data;\n }\n if (this.readyState === SockJS.CONNECTING) {\n throw new Error('InvalidStateError: The connection has not been established yet');\n }\n if (this.readyState !== SockJS.OPEN) {\n return;\n }\n this._transport.send(escape.quote(data));\n};\n\nSockJS.version = require('./version');\n\nSockJS.CONNECTING = 0;\nSockJS.OPEN = 1;\nSockJS.CLOSING = 2;\nSockJS.CLOSED = 3;\n\nSockJS.prototype._receiveInfo = function(info, rtt) {\n debug('_receiveInfo', rtt);\n this._ir = null;\n if (!info) {\n this._close(1002, 'Cannot connect to server');\n return;\n }\n\n // establish a round-trip timeout (RTO) based on the\n // round-trip time (RTT)\n this._rto = this.countRTO(rtt);\n // allow server to override url used for the actual transport\n this._transUrl = info.base_url ? info.base_url : this.url;\n info = objectUtils.extend(info, this._urlInfo);\n debug('info', info);\n // determine list of desired and supported transports\n var enabledTransports = transports.filterToEnabled(this._transportsWhitelist, info);\n this._transports = enabledTransports.main;\n debug(this._transports.length + ' enabled transports');\n\n this._connect();\n};\n\nSockJS.prototype._connect = function() {\n for (var Transport = this._transports.shift(); Transport; Transport = this._transports.shift()) {\n debug('attempt', Transport.transportName);\n if (Transport.needBody) {\n if (!global.document.body ||\n (typeof global.document.readyState !== 'undefined' &&\n global.document.readyState !== 'complete' &&\n global.document.readyState !== 'interactive')) {\n debug('waiting for body');\n this._transports.unshift(Transport);\n eventUtils.attachEvent('load', this._connect.bind(this));\n return;\n }\n }\n\n // calculate timeout based on RTO and round trips. Default to 5s\n var timeoutMs = Math.max(this._timeout, (this._rto * Transport.roundTrips) || 5000);\n this._transportTimeoutId = setTimeout(this._transportTimeout.bind(this), timeoutMs);\n debug('using timeout', timeoutMs);\n\n var transportUrl = urlUtils.addPath(this._transUrl, '/' + this._server + '/' + this._generateSessionId());\n var options = this._transportOptions[Transport.transportName];\n debug('transport url', transportUrl);\n var transportObj = new Transport(transportUrl, this._transUrl, options);\n transportObj.on('message', this._transportMessage.bind(this));\n transportObj.once('close', this._transportClose.bind(this));\n transportObj.transportName = Transport.transportName;\n this._transport = transportObj;\n\n return;\n }\n this._close(2000, 'All transports failed', false);\n};\n\nSockJS.prototype._transportTimeout = function() {\n debug('_transportTimeout');\n if (this.readyState === SockJS.CONNECTING) {\n if (this._transport) {\n this._transport.close();\n }\n\n this._transportClose(2007, 'Transport timed out');\n }\n};\n\nSockJS.prototype._transportMessage = function(msg) {\n debug('_transportMessage', msg);\n var self = this\n , type = msg.slice(0, 1)\n , content = msg.slice(1)\n , payload\n ;\n\n // first check for messages that don't need a payload\n switch (type) {\n case 'o':\n this._open();\n return;\n case 'h':\n this.dispatchEvent(new Event('heartbeat'));\n debug('heartbeat', this.transport);\n return;\n }\n\n if (content) {\n try {\n payload = JSON3.parse(content);\n } catch (e) {\n debug('bad json', content);\n }\n }\n\n if (typeof payload === 'undefined') {\n debug('empty payload', content);\n return;\n }\n\n switch (type) {\n case 'a':\n if (Array.isArray(payload)) {\n payload.forEach(function(p) {\n debug('message', self.transport, p);\n self.dispatchEvent(new TransportMessageEvent(p));\n });\n }\n break;\n case 'm':\n debug('message', this.transport, payload);\n this.dispatchEvent(new TransportMessageEvent(payload));\n break;\n case 'c':\n if (Array.isArray(payload) && payload.length === 2) {\n this._close(payload[0], payload[1], true);\n }\n break;\n }\n};\n\nSockJS.prototype._transportClose = function(code, reason) {\n debug('_transportClose', this.transport, code, reason);\n if (this._transport) {\n this._transport.removeAllListeners();\n this._transport = null;\n this.transport = null;\n }\n\n if (!userSetCode(code) && code !== 2000 && this.readyState === SockJS.CONNECTING) {\n this._connect();\n return;\n }\n\n this._close(code, reason);\n};\n\nSockJS.prototype._open = function() {\n debug('_open', this._transport && this._transport.transportName, this.readyState);\n if (this.readyState === SockJS.CONNECTING) {\n if (this._transportTimeoutId) {\n clearTimeout(this._transportTimeoutId);\n this._transportTimeoutId = null;\n }\n this.readyState = SockJS.OPEN;\n this.transport = this._transport.transportName;\n this.dispatchEvent(new Event('open'));\n debug('connected', this.transport);\n } else {\n // The server might have been restarted, and lost track of our\n // connection.\n this._close(1006, 'Server lost session');\n }\n};\n\nSockJS.prototype._close = function(code, reason, wasClean) {\n debug('_close', this.transport, code, reason, wasClean, this.readyState);\n var forceFail = false;\n\n if (this._ir) {\n forceFail = true;\n this._ir.close();\n this._ir = null;\n }\n if (this._transport) {\n this._transport.close();\n this._transport = null;\n this.transport = null;\n }\n\n if (this.readyState === SockJS.CLOSED) {\n throw new Error('InvalidStateError: SockJS has already been closed');\n }\n\n this.readyState = SockJS.CLOSING;\n setTimeout(function() {\n this.readyState = SockJS.CLOSED;\n\n if (forceFail) {\n this.dispatchEvent(new Event('error'));\n }\n\n var e = new CloseEvent('close');\n e.wasClean = wasClean || false;\n e.code = code || 1000;\n e.reason = reason;\n\n this.dispatchEvent(e);\n this.onmessage = this.onclose = this.onerror = null;\n debug('disconnected');\n }.bind(this), 0);\n};\n\n// See: http://www.erg.abdn.ac.uk/~gerrit/dccp/notes/ccid2/rto_estimator/\n// and RFC 2988.\nSockJS.prototype.countRTO = function(rtt) {\n // In a local environment, when using IE8/9 and the `jsonp-polling`\n // transport the time needed to establish a connection (the time that pass\n // from the opening of the transport to the call of `_dispatchOpen`) is\n // around 200msec (the lower bound used in the article above) and this\n // causes spurious timeouts. For this reason we calculate a value slightly\n // larger than that used in the article.\n if (rtt > 100) {\n return 4 * rtt; // rto > 400msec\n }\n return 300 + rtt; // 300msec < rto <= 400msec\n};\n\nmodule.exports = function(availableTransports) {\n transports = transport(availableTransports);\n require('./iframe-bootstrap')(SockJS, availableTransports);\n return SockJS;\n};\n","/* eslint-disable */\n/* jscs: disable */\n'use strict';\n\n// pulled specific shims from https://github.com/es-shims/es5-shim\n\nvar ArrayPrototype = Array.prototype;\nvar ObjectPrototype = Object.prototype;\nvar FunctionPrototype = Function.prototype;\nvar StringPrototype = String.prototype;\nvar array_slice = ArrayPrototype.slice;\n\nvar _toString = ObjectPrototype.toString;\nvar isFunction = function (val) {\n return ObjectPrototype.toString.call(val) === '[object Function]';\n};\nvar isArray = function isArray(obj) {\n return _toString.call(obj) === '[object Array]';\n};\nvar isString = function isString(obj) {\n return _toString.call(obj) === '[object String]';\n};\n\nvar supportsDescriptors = Object.defineProperty && (function () {\n try {\n Object.defineProperty({}, 'x', {});\n return true;\n } catch (e) { /* this is ES3 */\n return false;\n }\n}());\n\n// Define configurable, writable and non-enumerable props\n// if they don't exist.\nvar defineProperty;\nif (supportsDescriptors) {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) { return; }\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: method\n });\n };\n} else {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) { return; }\n object[name] = method;\n };\n}\nvar defineProperties = function (object, map, forceAssign) {\n for (var name in map) {\n if (ObjectPrototype.hasOwnProperty.call(map, name)) {\n defineProperty(object, name, map[name], forceAssign);\n }\n }\n};\n\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \" + o + ' to object');\n }\n return Object(o);\n};\n\n//\n// Util\n// ======\n//\n\n// ES5 9.4\n// http://es5.github.com/#x9.4\n// http://jsperf.com/to-integer\n\nfunction toInteger(num) {\n var n = +num;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction ToUint32(x) {\n return x >>> 0;\n}\n\n//\n// Function\n// ========\n//\n\n// ES-5 15.3.4.5\n// http://es5.github.com/#x15.3.4.5\n\nfunction Empty() {}\n\ndefineProperties(FunctionPrototype, {\n bind: function bind(that) { // .length is 1\n // 1. Let Target be the this value.\n var target = this;\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\n if (!isFunction(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n }\n // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n var binder = function () {\n\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n\n var result = target.apply(\n this,\n args.concat(array_slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n\n // equiv: target.call(this, ...boundArgs, ...args)\n return target.apply(\n that,\n args.concat(array_slice.call(arguments))\n );\n\n }\n\n };\n\n // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n var boundLength = Math.max(0, target.length - args.length);\n\n // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n // Clean up dangling references.\n Empty.prototype = null;\n }\n\n // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n\n // 22. Return F.\n return bound;\n }\n});\n\n//\n// Array\n// =====\n//\n\n// ES5 15.4.3.2\n// http://es5.github.com/#x15.4.3.2\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\ndefineProperties(Array, { isArray: isArray });\n\n\nvar boxedString = Object('a');\nvar splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\nvar properlyBoxesContext = function properlyBoxed(method) {\n // Check node 0.6.21 bug where third parameter is not boxed\n var properlyBoxesNonStrict = true;\n var properlyBoxesStrict = true;\n if (method) {\n method.call('foo', function (_, __, context) {\n if (typeof context !== 'object') { properlyBoxesNonStrict = false; }\n });\n\n method.call([1], function () {\n 'use strict';\n properlyBoxesStrict = typeof this === 'string';\n }, 'x');\n }\n return !!method && properlyBoxesNonStrict && properlyBoxesStrict;\n};\n\ndefineProperties(ArrayPrototype, {\n forEach: function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && isString(this) ? this.split('') : object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n\n // If no callback function or if callback is not a callable function\n if (!isFunction(fun)) {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n // Invoke the callback function with call, passing arguments:\n // context, property value, property key, thisArg object\n // context\n fun.call(thisp, self[i], i, object);\n }\n }\n }\n}, !properlyBoxesContext(ArrayPrototype.forEach));\n\n// ES5 15.4.4.14\n// http://es5.github.com/#x15.4.4.14\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\nvar hasFirefox2IndexOfBug = Array.prototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\ndefineProperties(ArrayPrototype, {\n indexOf: function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && isString(this) ? this.split('') : toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n\n // handle negative indices\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n }\n}, hasFirefox2IndexOfBug);\n\n//\n// String\n// ======\n//\n\n// ES5 15.5.4.14\n// http://es5.github.com/#x15.5.4.14\n\n// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n// Many browsers do not split properly with regular expressions or they\n// do not perform the split correctly under obscure conditions.\n// See http://blog.stevenlevithan.com/archives/cross-browser-split\n// I've tested in many browsers and this seems to cover the deviant ones:\n// 'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n// '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n// 'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n// [undefined, \"t\", undefined, \"e\", ...]\n// ''.split(/.?/) should be [], not [\"\"]\n// '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\nvar string_split = StringPrototype.split;\nif (\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n 'tesst'.split(/(s)*/)[1] === 't' ||\n 'test'.split(/(?:)/, -1).length !== 4 ||\n ''.split(/.?/).length ||\n '.'.split(/()()/).length > 1\n) {\n (function () {\n var compliantExecNpcg = /()??/.exec('')[1] === void 0; // NPCG: nonparticipating capturing group\n\n StringPrototype.split = function (separator, limit) {\n var string = this;\n if (separator === void 0 && limit === 0) {\n return [];\n }\n\n // If `separator` is not a regex, use native split\n if (_toString.call(separator) !== '[object RegExp]') {\n return string_split.call(this, separator, limit);\n }\n\n var output = [],\n flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.extended ? 'x' : '') + // Proposed for ES6\n (separator.sticky ? 'y' : ''), // Firefox 3+\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n separator = new RegExp(separator.source, flags + 'g');\n string += ''; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp('^' + separator.source + '$(?!\\\\s)', flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n limit = limit === void 0 ?\n -1 >>> 0 : // Math.pow(2, 32) - 1\n ToUint32(limit);\n while (match = separator.exec(string)) {\n // `separator.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n match[0].replace(separator2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === void 0) {\n match[i] = void 0;\n }\n }\n });\n }\n if (match.length > 1 && match.index < string.length) {\n ArrayPrototype.push.apply(output, match.slice(1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= limit) {\n break;\n }\n }\n if (separator.lastIndex === match.index) {\n separator.lastIndex++; // Avoid an infinite loop\n }\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separator.test('')) {\n output.push('');\n }\n } else {\n output.push(string.slice(lastLastIndex));\n }\n return output.length > limit ? output.slice(0, limit) : output;\n };\n }());\n\n// [bugfix, chrome]\n// If separator is undefined, then the result array contains just one String,\n// which is the this value (converted to a String). If limit is not undefined,\n// then the output array is truncated so that it contains no more than limit\n// elements.\n// \"0\".split(undefined, 0) -> []\n} else if ('0'.split(void 0, 0).length) {\n StringPrototype.split = function split(separator, limit) {\n if (separator === void 0 && limit === 0) { return []; }\n return string_split.call(this, separator, limit);\n };\n}\n\n// ECMA-262, 3rd B.2.3\n// Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n// non-normative section suggesting uniform semantics and it should be\n// normalized across all browsers\n// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\nvar string_substr = StringPrototype.substr;\nvar hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\ndefineProperties(StringPrototype, {\n substr: function substr(start, length) {\n return string_substr.call(\n this,\n start < 0 ? ((start = this.length + start) < 0 ? 0 : start) : start,\n length\n );\n }\n}, hasNegativeSubstrBug);\n","'use strict';\n\nmodule.exports = [\n // streaming transports\n require('./transport/websocket')\n, require('./transport/xhr-streaming')\n, require('./transport/xdr-streaming')\n, require('./transport/eventsource')\n, require('./transport/lib/iframe-wrap')(require('./transport/eventsource'))\n\n // polling transports\n, require('./transport/htmlfile')\n, require('./transport/lib/iframe-wrap')(require('./transport/htmlfile'))\n, require('./transport/xhr-polling')\n, require('./transport/xdr-polling')\n, require('./transport/lib/iframe-wrap')(require('./transport/xhr-polling'))\n, require('./transport/jsonp-polling')\n];\n","'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , utils = require('../../utils/event')\n , urlUtils = require('../../utils/url')\n , XHR = global.XMLHttpRequest\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:browser:xhr');\n}\n\nfunction AbstractXHRObject(method, url, payload, opts) {\n debug(method, url);\n var self = this;\n EventEmitter.call(this);\n\n setTimeout(function () {\n self._start(method, url, payload, opts);\n }, 0);\n}\n\ninherits(AbstractXHRObject, EventEmitter);\n\nAbstractXHRObject.prototype._start = function(method, url, payload, opts) {\n var self = this;\n\n try {\n this.xhr = new XHR();\n } catch (x) {\n // intentionally empty\n }\n\n if (!this.xhr) {\n debug('no xhr');\n this.emit('finish', 0, 'no xhr support');\n this._cleanup();\n return;\n }\n\n // several browsers cache POSTs\n url = urlUtils.addQuery(url, 't=' + (+new Date()));\n\n // Explorer tends to keep connection open, even after the\n // tab gets closed: http://bugs.jquery.com/ticket/5280\n this.unloadRef = utils.unloadAdd(function() {\n debug('unload cleanup');\n self._cleanup(true);\n });\n try {\n this.xhr.open(method, url, true);\n if (this.timeout && 'timeout' in this.xhr) {\n this.xhr.timeout = this.timeout;\n this.xhr.ontimeout = function() {\n debug('xhr timeout');\n self.emit('finish', 0, '');\n self._cleanup(false);\n };\n }\n } catch (e) {\n debug('exception', e);\n // IE raises an exception on wrong port.\n this.emit('finish', 0, '');\n this._cleanup(false);\n return;\n }\n\n if ((!opts || !opts.noCredentials) && AbstractXHRObject.supportsCORS) {\n debug('withCredentials');\n // Mozilla docs says https://developer.mozilla.org/en/XMLHttpRequest :\n // \"This never affects same-site requests.\"\n\n this.xhr.withCredentials = true;\n }\n if (opts && opts.headers) {\n for (var key in opts.headers) {\n this.xhr.setRequestHeader(key, opts.headers[key]);\n }\n }\n\n this.xhr.onreadystatechange = function() {\n if (self.xhr) {\n var x = self.xhr;\n var text, status;\n debug('readyState', x.readyState);\n switch (x.readyState) {\n case 3:\n // IE doesn't like peeking into responseText or status\n // on Microsoft.XMLHTTP and readystate=3\n try {\n status = x.status;\n text = x.responseText;\n } catch (e) {\n // intentionally empty\n }\n debug('status', status);\n // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450\n if (status === 1223) {\n status = 204;\n }\n\n // IE does return readystate == 3 for 404 answers.\n if (status === 200 && text && text.length > 0) {\n debug('chunk');\n self.emit('chunk', status, text);\n }\n break;\n case 4:\n status = x.status;\n debug('status', status);\n // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450\n if (status === 1223) {\n status = 204;\n }\n // IE returns this for a bad port\n // http://msdn.microsoft.com/en-us/library/windows/desktop/aa383770(v=vs.85).aspx\n if (status === 12005 || status === 12029) {\n status = 0;\n }\n\n debug('finish', status, x.responseText);\n self.emit('finish', status, x.responseText);\n self._cleanup(false);\n break;\n }\n }\n };\n\n try {\n self.xhr.send(payload);\n } catch (e) {\n self.emit('finish', 0, '');\n self._cleanup(false);\n }\n};\n\nAbstractXHRObject.prototype._cleanup = function(abort) {\n debug('cleanup');\n if (!this.xhr) {\n return;\n }\n this.removeAllListeners();\n utils.unloadDel(this.unloadRef);\n\n // IE needs this field to be a function\n this.xhr.onreadystatechange = function() {};\n if (this.xhr.ontimeout) {\n this.xhr.ontimeout = null;\n }\n\n if (abort) {\n try {\n this.xhr.abort();\n } catch (x) {\n // intentionally empty\n }\n }\n this.unloadRef = this.xhr = null;\n};\n\nAbstractXHRObject.prototype.close = function() {\n debug('close');\n this._cleanup(true);\n};\n\nAbstractXHRObject.enabled = !!XHR;\n// override XMLHttpRequest for IE6/7\n// obfuscate to avoid firewalls\nvar axo = ['Active'].concat('Object').join('X');\nif (!AbstractXHRObject.enabled && (axo in global)) {\n debug('overriding xmlhttprequest');\n XHR = function() {\n try {\n return new global[axo]('Microsoft.XMLHTTP');\n } catch (e) {\n return null;\n }\n };\n AbstractXHRObject.enabled = !!new XHR();\n}\n\nvar cors = false;\ntry {\n cors = 'withCredentials' in new XHR();\n} catch (ignored) {\n // intentionally empty\n}\n\nAbstractXHRObject.supportsCORS = cors;\n\nmodule.exports = AbstractXHRObject;\n","module.exports = global.EventSource;\n","'use strict';\n\nvar Driver = global.WebSocket || global.MozWebSocket;\nif (Driver) {\n\tmodule.exports = function WebSocketBrowserDriver(url) {\n\t\treturn new Driver(url);\n\t};\n} else {\n\tmodule.exports = undefined;\n}\n","'use strict';\n\nvar inherits = require('inherits')\n , AjaxBasedTransport = require('./lib/ajax-based')\n , EventSourceReceiver = require('./receiver/eventsource')\n , XHRCorsObject = require('./sender/xhr-cors')\n , EventSourceDriver = require('eventsource')\n ;\n\nfunction EventSourceTransport(transUrl) {\n if (!EventSourceTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n\n AjaxBasedTransport.call(this, transUrl, '/eventsource', EventSourceReceiver, XHRCorsObject);\n}\n\ninherits(EventSourceTransport, AjaxBasedTransport);\n\nEventSourceTransport.enabled = function() {\n return !!EventSourceDriver;\n};\n\nEventSourceTransport.transportName = 'eventsource';\nEventSourceTransport.roundTrips = 2;\n\nmodule.exports = EventSourceTransport;\n","'use strict';\n\nvar inherits = require('inherits')\n , HtmlfileReceiver = require('./receiver/htmlfile')\n , XHRLocalObject = require('./sender/xhr-local')\n , AjaxBasedTransport = require('./lib/ajax-based')\n ;\n\nfunction HtmlFileTransport(transUrl) {\n if (!HtmlfileReceiver.enabled) {\n throw new Error('Transport created when disabled');\n }\n AjaxBasedTransport.call(this, transUrl, '/htmlfile', HtmlfileReceiver, XHRLocalObject);\n}\n\ninherits(HtmlFileTransport, AjaxBasedTransport);\n\nHtmlFileTransport.enabled = function(info) {\n return HtmlfileReceiver.enabled && info.sameOrigin;\n};\n\nHtmlFileTransport.transportName = 'htmlfile';\nHtmlFileTransport.roundTrips = 2;\n\nmodule.exports = HtmlFileTransport;\n","'use strict';\n\n// Few cool transports do work only for same-origin. In order to make\n// them work cross-domain we shall use iframe, served from the\n// remote domain. New browsers have capabilities to communicate with\n// cross domain iframe using postMessage(). In IE it was implemented\n// from IE 8+, but of course, IE got some details wrong:\n// http://msdn.microsoft.com/en-us/library/cc197015(v=VS.85).aspx\n// http://stevesouders.com/misc/test-postmessage.php\n\nvar inherits = require('inherits')\n , JSON3 = require('json3')\n , EventEmitter = require('events').EventEmitter\n , version = require('../version')\n , urlUtils = require('../utils/url')\n , iframeUtils = require('../utils/iframe')\n , eventUtils = require('../utils/event')\n , random = require('../utils/random')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:transport:iframe');\n}\n\nfunction IframeTransport(transport, transUrl, baseUrl) {\n if (!IframeTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n EventEmitter.call(this);\n\n var self = this;\n this.origin = urlUtils.getOrigin(baseUrl);\n this.baseUrl = baseUrl;\n this.transUrl = transUrl;\n this.transport = transport;\n this.windowId = random.string(8);\n\n var iframeUrl = urlUtils.addPath(baseUrl, '/iframe.html') + '#' + this.windowId;\n debug(transport, transUrl, iframeUrl);\n\n this.iframeObj = iframeUtils.createIframe(iframeUrl, function(r) {\n debug('err callback');\n self.emit('close', 1006, 'Unable to load an iframe (' + r + ')');\n self.close();\n });\n\n this.onmessageCallback = this._message.bind(this);\n eventUtils.attachEvent('message', this.onmessageCallback);\n}\n\ninherits(IframeTransport, EventEmitter);\n\nIframeTransport.prototype.close = function() {\n debug('close');\n this.removeAllListeners();\n if (this.iframeObj) {\n eventUtils.detachEvent('message', this.onmessageCallback);\n try {\n // When the iframe is not loaded, IE raises an exception\n // on 'contentWindow'.\n this.postMessage('c');\n } catch (x) {\n // intentionally empty\n }\n this.iframeObj.cleanup();\n this.iframeObj = null;\n this.onmessageCallback = this.iframeObj = null;\n }\n};\n\nIframeTransport.prototype._message = function(e) {\n debug('message', e.data);\n if (!urlUtils.isOriginEqual(e.origin, this.origin)) {\n debug('not same origin', e.origin, this.origin);\n return;\n }\n\n var iframeMessage;\n try {\n iframeMessage = JSON3.parse(e.data);\n } catch (ignored) {\n debug('bad json', e.data);\n return;\n }\n\n if (iframeMessage.windowId !== this.windowId) {\n debug('mismatched window id', iframeMessage.windowId, this.windowId);\n return;\n }\n\n switch (iframeMessage.type) {\n case 's':\n this.iframeObj.loaded();\n // window global dependency\n this.postMessage('s', JSON3.stringify([\n version\n , this.transport\n , this.transUrl\n , this.baseUrl\n ]));\n break;\n case 't':\n this.emit('message', iframeMessage.data);\n break;\n case 'c':\n var cdata;\n try {\n cdata = JSON3.parse(iframeMessage.data);\n } catch (ignored) {\n debug('bad json', iframeMessage.data);\n return;\n }\n this.emit('close', cdata[0], cdata[1]);\n this.close();\n break;\n }\n};\n\nIframeTransport.prototype.postMessage = function(type, data) {\n debug('postMessage', type, data);\n this.iframeObj.post(JSON3.stringify({\n windowId: this.windowId\n , type: type\n , data: data || ''\n }), this.origin);\n};\n\nIframeTransport.prototype.send = function(message) {\n debug('send', message);\n this.postMessage('m', message);\n};\n\nIframeTransport.enabled = function() {\n return iframeUtils.iframeEnabled;\n};\n\nIframeTransport.transportName = 'iframe';\nIframeTransport.roundTrips = 2;\n\nmodule.exports = IframeTransport;\n","'use strict';\n\n// The simplest and most robust transport, using the well-know cross\n// domain hack - JSONP. This transport is quite inefficient - one\n// message could use up to one http request. But at least it works almost\n// everywhere.\n// Known limitations:\n// o you will get a spinning cursor\n// o for Konqueror a dumb timer is needed to detect errors\n\nvar inherits = require('inherits')\n , SenderReceiver = require('./lib/sender-receiver')\n , JsonpReceiver = require('./receiver/jsonp')\n , jsonpSender = require('./sender/jsonp')\n ;\n\nfunction JsonPTransport(transUrl) {\n if (!JsonPTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n SenderReceiver.call(this, transUrl, '/jsonp', jsonpSender, JsonpReceiver);\n}\n\ninherits(JsonPTransport, SenderReceiver);\n\nJsonPTransport.enabled = function() {\n return !!global.document;\n};\n\nJsonPTransport.transportName = 'jsonp-polling';\nJsonPTransport.roundTrips = 1;\nJsonPTransport.needBody = true;\n\nmodule.exports = JsonPTransport;\n","'use strict';\n\nvar inherits = require('inherits')\n , urlUtils = require('../../utils/url')\n , SenderReceiver = require('./sender-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:ajax-based');\n}\n\nfunction createAjaxSender(AjaxObject) {\n return function(url, payload, callback) {\n debug('create ajax sender', url, payload);\n var opt = {};\n if (typeof payload === 'string') {\n opt.headers = {'Content-type': 'text/plain'};\n }\n var ajaxUrl = urlUtils.addPath(url, '/xhr_send');\n var xo = new AjaxObject('POST', ajaxUrl, payload, opt);\n xo.once('finish', function(status) {\n debug('finish', status);\n xo = null;\n\n if (status !== 200 && status !== 204) {\n return callback(new Error('http status ' + status));\n }\n callback();\n });\n return function() {\n debug('abort');\n xo.close();\n xo = null;\n\n var err = new Error('Aborted');\n err.code = 1000;\n callback(err);\n };\n };\n}\n\nfunction AjaxBasedTransport(transUrl, urlSuffix, Receiver, AjaxObject) {\n SenderReceiver.call(this, transUrl, urlSuffix, createAjaxSender(AjaxObject), Receiver, AjaxObject);\n}\n\ninherits(AjaxBasedTransport, SenderReceiver);\n\nmodule.exports = AjaxBasedTransport;\n","'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:buffered-sender');\n}\n\nfunction BufferedSender(url, sender) {\n debug(url);\n EventEmitter.call(this);\n this.sendBuffer = [];\n this.sender = sender;\n this.url = url;\n}\n\ninherits(BufferedSender, EventEmitter);\n\nBufferedSender.prototype.send = function(message) {\n debug('send', message);\n this.sendBuffer.push(message);\n if (!this.sendStop) {\n this.sendSchedule();\n }\n};\n\n// For polling transports in a situation when in the message callback,\n// new message is being send. If the sending connection was started\n// before receiving one, it is possible to saturate the network and\n// timeout due to the lack of receiving socket. To avoid that we delay\n// sending messages by some small time, in order to let receiving\n// connection be started beforehand. This is only a halfmeasure and\n// does not fix the big problem, but it does make the tests go more\n// stable on slow networks.\nBufferedSender.prototype.sendScheduleWait = function() {\n debug('sendScheduleWait');\n var self = this;\n var tref;\n this.sendStop = function() {\n debug('sendStop');\n self.sendStop = null;\n clearTimeout(tref);\n };\n tref = setTimeout(function() {\n debug('timeout');\n self.sendStop = null;\n self.sendSchedule();\n }, 25);\n};\n\nBufferedSender.prototype.sendSchedule = function() {\n debug('sendSchedule', this.sendBuffer.length);\n var self = this;\n if (this.sendBuffer.length > 0) {\n var payload = '[' + this.sendBuffer.join(',') + ']';\n this.sendStop = this.sender(this.url, payload, function(err) {\n self.sendStop = null;\n if (err) {\n debug('error', err);\n self.emit('close', err.code || 1006, 'Sending error: ' + err);\n self.close();\n } else {\n self.sendScheduleWait();\n }\n });\n this.sendBuffer = [];\n }\n};\n\nBufferedSender.prototype._cleanup = function() {\n debug('_cleanup');\n this.removeAllListeners();\n};\n\nBufferedSender.prototype.close = function() {\n debug('close');\n this._cleanup();\n if (this.sendStop) {\n this.sendStop();\n this.sendStop = null;\n }\n};\n\nmodule.exports = BufferedSender;\n","'use strict';\n\nvar inherits = require('inherits')\n , IframeTransport = require('../iframe')\n , objectUtils = require('../../utils/object')\n ;\n\nmodule.exports = function(transport) {\n\n function IframeWrapTransport(transUrl, baseUrl) {\n IframeTransport.call(this, transport.transportName, transUrl, baseUrl);\n }\n\n inherits(IframeWrapTransport, IframeTransport);\n\n IframeWrapTransport.enabled = function(url, info) {\n if (!global.document) {\n return false;\n }\n\n var iframeInfo = objectUtils.extend({}, info);\n iframeInfo.sameOrigin = true;\n return transport.enabled(iframeInfo) && IframeTransport.enabled();\n };\n\n IframeWrapTransport.transportName = 'iframe-' + transport.transportName;\n IframeWrapTransport.needBody = true;\n IframeWrapTransport.roundTrips = IframeTransport.roundTrips + transport.roundTrips - 1; // html, javascript (2) + transport - no CORS (1)\n\n IframeWrapTransport.facadeTransport = transport;\n\n return IframeWrapTransport;\n};\n","'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:polling');\n}\n\nfunction Polling(Receiver, receiveUrl, AjaxObject) {\n debug(receiveUrl);\n EventEmitter.call(this);\n this.Receiver = Receiver;\n this.receiveUrl = receiveUrl;\n this.AjaxObject = AjaxObject;\n this._scheduleReceiver();\n}\n\ninherits(Polling, EventEmitter);\n\nPolling.prototype._scheduleReceiver = function() {\n debug('_scheduleReceiver');\n var self = this;\n var poll = this.poll = new this.Receiver(this.receiveUrl, this.AjaxObject);\n\n poll.on('message', function(msg) {\n debug('message', msg);\n self.emit('message', msg);\n });\n\n poll.once('close', function(code, reason) {\n debug('close', code, reason, self.pollIsClosing);\n self.poll = poll = null;\n\n if (!self.pollIsClosing) {\n if (reason === 'network') {\n self._scheduleReceiver();\n } else {\n self.emit('close', code || 1006, reason);\n self.removeAllListeners();\n }\n }\n });\n};\n\nPolling.prototype.abort = function() {\n debug('abort');\n this.removeAllListeners();\n this.pollIsClosing = true;\n if (this.poll) {\n this.poll.abort();\n }\n};\n\nmodule.exports = Polling;\n","'use strict';\n\nvar inherits = require('inherits')\n , urlUtils = require('../../utils/url')\n , BufferedSender = require('./buffered-sender')\n , Polling = require('./polling')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:sender-receiver');\n}\n\nfunction SenderReceiver(transUrl, urlSuffix, senderFunc, Receiver, AjaxObject) {\n var pollUrl = urlUtils.addPath(transUrl, urlSuffix);\n debug(pollUrl);\n var self = this;\n BufferedSender.call(this, transUrl, senderFunc);\n\n this.poll = new Polling(Receiver, pollUrl, AjaxObject);\n this.poll.on('message', function(msg) {\n debug('poll message', msg);\n self.emit('message', msg);\n });\n this.poll.once('close', function(code, reason) {\n debug('poll close', code, reason);\n self.poll = null;\n self.emit('close', code, reason);\n self.close();\n });\n}\n\ninherits(SenderReceiver, BufferedSender);\n\nSenderReceiver.prototype.close = function() {\n BufferedSender.prototype.close.call(this);\n debug('close');\n this.removeAllListeners();\n if (this.poll) {\n this.poll.abort();\n this.poll = null;\n }\n};\n\nmodule.exports = SenderReceiver;\n","'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n , EventSourceDriver = require('eventsource')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:eventsource');\n}\n\nfunction EventSourceReceiver(url) {\n debug(url);\n EventEmitter.call(this);\n\n var self = this;\n var es = this.es = new EventSourceDriver(url);\n es.onmessage = function(e) {\n debug('message', e.data);\n self.emit('message', decodeURI(e.data));\n };\n es.onerror = function(e) {\n debug('error', es.readyState, e);\n // ES on reconnection has readyState = 0 or 1.\n // on network error it's CLOSED = 2\n var reason = (es.readyState !== 2 ? 'network' : 'permanent');\n self._cleanup();\n self._close(reason);\n };\n}\n\ninherits(EventSourceReceiver, EventEmitter);\n\nEventSourceReceiver.prototype.abort = function() {\n debug('abort');\n this._cleanup();\n this._close('user');\n};\n\nEventSourceReceiver.prototype._cleanup = function() {\n debug('cleanup');\n var es = this.es;\n if (es) {\n es.onmessage = es.onerror = null;\n es.close();\n this.es = null;\n }\n};\n\nEventSourceReceiver.prototype._close = function(reason) {\n debug('close', reason);\n var self = this;\n // Safari and chrome < 15 crash if we close window before\n // waiting for ES cleanup. See:\n // https://code.google.com/p/chromium/issues/detail?id=89155\n setTimeout(function() {\n self.emit('close', null, reason);\n self.removeAllListeners();\n }, 200);\n};\n\nmodule.exports = EventSourceReceiver;\n","'use strict';\n\nvar inherits = require('inherits')\n , iframeUtils = require('../../utils/iframe')\n , urlUtils = require('../../utils/url')\n , EventEmitter = require('events').EventEmitter\n , random = require('../../utils/random')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:htmlfile');\n}\n\nfunction HtmlfileReceiver(url) {\n debug(url);\n EventEmitter.call(this);\n var self = this;\n iframeUtils.polluteGlobalNamespace();\n\n this.id = 'a' + random.string(6);\n url = urlUtils.addQuery(url, 'c=' + decodeURIComponent(iframeUtils.WPrefix + '.' + this.id));\n\n debug('using htmlfile', HtmlfileReceiver.htmlfileEnabled);\n var constructFunc = HtmlfileReceiver.htmlfileEnabled ?\n iframeUtils.createHtmlfile : iframeUtils.createIframe;\n\n global[iframeUtils.WPrefix][this.id] = {\n start: function() {\n debug('start');\n self.iframeObj.loaded();\n }\n , message: function(data) {\n debug('message', data);\n self.emit('message', data);\n }\n , stop: function() {\n debug('stop');\n self._cleanup();\n self._close('network');\n }\n };\n this.iframeObj = constructFunc(url, function() {\n debug('callback');\n self._cleanup();\n self._close('permanent');\n });\n}\n\ninherits(HtmlfileReceiver, EventEmitter);\n\nHtmlfileReceiver.prototype.abort = function() {\n debug('abort');\n this._cleanup();\n this._close('user');\n};\n\nHtmlfileReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n if (this.iframeObj) {\n this.iframeObj.cleanup();\n this.iframeObj = null;\n }\n delete global[iframeUtils.WPrefix][this.id];\n};\n\nHtmlfileReceiver.prototype._close = function(reason) {\n debug('_close', reason);\n this.emit('close', null, reason);\n this.removeAllListeners();\n};\n\nHtmlfileReceiver.htmlfileEnabled = false;\n\n// obfuscate to avoid firewalls\nvar axo = ['Active'].concat('Object').join('X');\nif (axo in global) {\n try {\n HtmlfileReceiver.htmlfileEnabled = !!new global[axo]('htmlfile');\n } catch (x) {\n // intentionally empty\n }\n}\n\nHtmlfileReceiver.enabled = HtmlfileReceiver.htmlfileEnabled || iframeUtils.iframeEnabled;\n\nmodule.exports = HtmlfileReceiver;\n","'use strict';\n\nvar utils = require('../../utils/iframe')\n , random = require('../../utils/random')\n , browser = require('../../utils/browser')\n , urlUtils = require('../../utils/url')\n , inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:jsonp');\n}\n\nfunction JsonpReceiver(url) {\n debug(url);\n var self = this;\n EventEmitter.call(this);\n\n utils.polluteGlobalNamespace();\n\n this.id = 'a' + random.string(6);\n var urlWithId = urlUtils.addQuery(url, 'c=' + encodeURIComponent(utils.WPrefix + '.' + this.id));\n\n global[utils.WPrefix][this.id] = this._callback.bind(this);\n this._createScript(urlWithId);\n\n // Fallback mostly for Konqueror - stupid timer, 35 seconds shall be plenty.\n this.timeoutId = setTimeout(function() {\n debug('timeout');\n self._abort(new Error('JSONP script loaded abnormally (timeout)'));\n }, JsonpReceiver.timeout);\n}\n\ninherits(JsonpReceiver, EventEmitter);\n\nJsonpReceiver.prototype.abort = function() {\n debug('abort');\n if (global[utils.WPrefix][this.id]) {\n var err = new Error('JSONP user aborted read');\n err.code = 1000;\n this._abort(err);\n }\n};\n\nJsonpReceiver.timeout = 35000;\nJsonpReceiver.scriptErrorTimeout = 1000;\n\nJsonpReceiver.prototype._callback = function(data) {\n debug('_callback', data);\n this._cleanup();\n\n if (this.aborting) {\n return;\n }\n\n if (data) {\n debug('message', data);\n this.emit('message', data);\n }\n this.emit('close', null, 'network');\n this.removeAllListeners();\n};\n\nJsonpReceiver.prototype._abort = function(err) {\n debug('_abort', err);\n this._cleanup();\n this.aborting = true;\n this.emit('close', err.code, err.message);\n this.removeAllListeners();\n};\n\nJsonpReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n clearTimeout(this.timeoutId);\n if (this.script2) {\n this.script2.parentNode.removeChild(this.script2);\n this.script2 = null;\n }\n if (this.script) {\n var script = this.script;\n // Unfortunately, you can't really abort script loading of\n // the script.\n script.parentNode.removeChild(script);\n script.onreadystatechange = script.onerror =\n script.onload = script.onclick = null;\n this.script = null;\n }\n delete global[utils.WPrefix][this.id];\n};\n\nJsonpReceiver.prototype._scriptError = function() {\n debug('_scriptError');\n var self = this;\n if (this.errorTimer) {\n return;\n }\n\n this.errorTimer = setTimeout(function() {\n if (!self.loadedOkay) {\n self._abort(new Error('JSONP script loaded abnormally (onerror)'));\n }\n }, JsonpReceiver.scriptErrorTimeout);\n};\n\nJsonpReceiver.prototype._createScript = function(url) {\n debug('_createScript', url);\n var self = this;\n var script = this.script = global.document.createElement('script');\n var script2; // Opera synchronous load trick.\n\n script.id = 'a' + random.string(8);\n script.src = url;\n script.type = 'text/javascript';\n script.charset = 'UTF-8';\n script.onerror = this._scriptError.bind(this);\n script.onload = function() {\n debug('onload');\n self._abort(new Error('JSONP script loaded abnormally (onload)'));\n };\n\n // IE9 fires 'error' event after onreadystatechange or before, in random order.\n // Use loadedOkay to determine if actually errored\n script.onreadystatechange = function() {\n debug('onreadystatechange', script.readyState);\n if (/loaded|closed/.test(script.readyState)) {\n if (script && script.htmlFor && script.onclick) {\n self.loadedOkay = true;\n try {\n // In IE, actually execute the script.\n script.onclick();\n } catch (x) {\n // intentionally empty\n }\n }\n if (script) {\n self._abort(new Error('JSONP script loaded abnormally (onreadystatechange)'));\n }\n }\n };\n // IE: event/htmlFor/onclick trick.\n // One can't rely on proper order for onreadystatechange. In order to\n // make sure, set a 'htmlFor' and 'event' properties, so that\n // script code will be installed as 'onclick' handler for the\n // script object. Later, onreadystatechange, manually execute this\n // code. FF and Chrome doesn't work with 'event' and 'htmlFor'\n // set. For reference see:\n // http://jaubourg.net/2010/07/loading-script-as-onclick-handler-of.html\n // Also, read on that about script ordering:\n // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order\n if (typeof script.async === 'undefined' && global.document.attachEvent) {\n // According to mozilla docs, in recent browsers script.async defaults\n // to 'true', so we may use it to detect a good browser:\n // https://developer.mozilla.org/en/HTML/Element/script\n if (!browser.isOpera()) {\n // Naively assume we're in IE\n try {\n script.htmlFor = script.id;\n script.event = 'onclick';\n } catch (x) {\n // intentionally empty\n }\n script.async = true;\n } else {\n // Opera, second sync script hack\n script2 = this.script2 = global.document.createElement('script');\n script2.text = \"try{var a = document.getElementById('\" + script.id + \"'); if(a)a.onerror();}catch(x){};\";\n script.async = script2.async = false;\n }\n }\n if (typeof script.async !== 'undefined') {\n script.async = true;\n }\n\n var head = global.document.getElementsByTagName('head')[0];\n head.insertBefore(script, head.firstChild);\n if (script2) {\n head.insertBefore(script2, head.firstChild);\n }\n};\n\nmodule.exports = JsonpReceiver;\n","'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:xhr');\n}\n\nfunction XhrReceiver(url, AjaxObject) {\n debug(url);\n EventEmitter.call(this);\n var self = this;\n\n this.bufferPosition = 0;\n\n this.xo = new AjaxObject('POST', url, null);\n this.xo.on('chunk', this._chunkHandler.bind(this));\n this.xo.once('finish', function(status, text) {\n debug('finish', status, text);\n self._chunkHandler(status, text);\n self.xo = null;\n var reason = status === 200 ? 'network' : 'permanent';\n debug('close', reason);\n self.emit('close', null, reason);\n self._cleanup();\n });\n}\n\ninherits(XhrReceiver, EventEmitter);\n\nXhrReceiver.prototype._chunkHandler = function(status, text) {\n debug('_chunkHandler', status);\n if (status !== 200 || !text) {\n return;\n }\n\n for (var idx = -1; ; this.bufferPosition += idx + 1) {\n var buf = text.slice(this.bufferPosition);\n idx = buf.indexOf('\\n');\n if (idx === -1) {\n break;\n }\n var msg = buf.slice(0, idx);\n if (msg) {\n debug('message', msg);\n this.emit('message', msg);\n }\n }\n};\n\nXhrReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n this.removeAllListeners();\n};\n\nXhrReceiver.prototype.abort = function() {\n debug('abort');\n if (this.xo) {\n this.xo.close();\n debug('close');\n this.emit('close', null, 'user');\n this.xo = null;\n }\n this._cleanup();\n};\n\nmodule.exports = XhrReceiver;\n","'use strict';\n\nvar random = require('../../utils/random')\n , urlUtils = require('../../utils/url')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:sender:jsonp');\n}\n\nvar form, area;\n\nfunction createIframe(id) {\n debug('createIframe', id);\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n return global.document.createElement('\\n\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: MatomoOptOutFormComponent, decorators: [{\n type: Component,\n args: [{ selector: 'matomo-opt-out-form', template: \"\\n\" }]\n }], ctorParameters: function () {\n return [{ type: i1.DomSanitizer }, { type: undefined, decorators: [{\n type: Inject,\n args: [INTERNAL_MATOMO_CONFIGURATION]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LOCALE_ID]\n }] }];\n }, propDecorators: { locale: [{\n type: Input\n }], color: [{\n type: Input\n }], backgroundColor: [{\n type: Input\n }], fontSize: [{\n type: Input\n }], fontFamily: [{\n type: Input\n }], serverUrl: [{\n type: Input\n }], height: [{\n type: Input\n }], width: [{\n type: Input\n }], border: [{\n type: Input\n }] } });\n\nclass MatomoTrackClickDirective {\n constructor(tracker) {\n this.tracker = tracker;\n }\n onClick() {\n this.tracker.trackEvent(requireNonNull(this.matomoClickCategory, 'matomo category is required'), requireNonNull(this.matomoClickAction, 'matomo action is required'), this.matomoClickName, this.matomoClickValue);\n }\n}\nMatomoTrackClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: MatomoTrackClickDirective, deps: [{ token: MatomoTracker }], target: i0.ɵɵFactoryTarget.Directive });\nMatomoTrackClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.5\", type: MatomoTrackClickDirective, selector: \"[matomoClickCategory][matomoClickAction]\", inputs: { matomoClickCategory: \"matomoClickCategory\", matomoClickAction: \"matomoClickAction\", matomoClickName: \"matomoClickName\", matomoClickValue: \"matomoClickValue\" }, host: { listeners: { \"click\": \"onClick()\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: MatomoTrackClickDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[matomoClickCategory][matomoClickAction]',\n }]\n }], ctorParameters: function () { return [{ type: MatomoTracker }]; }, propDecorators: { matomoClickCategory: [{\n type: Input\n }], matomoClickAction: [{\n type: Input\n }], matomoClickName: [{\n type: Input\n }], matomoClickValue: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n\nfunction coerceEventNames(input) {\n if (input && input.length > 0) {\n return Array.isArray(input) ? input : [input];\n }\n else {\n return undefined;\n }\n}\nclass MatomoTrackerDirective {\n constructor(tracker, elementRef) {\n this.tracker = tracker;\n this.elementRef = elementRef;\n }\n /** Track a Matomo event whenever specified DOM event is triggered */\n set matomoTracker(input) {\n var _a;\n const eventNames = coerceEventNames(input);\n (_a = this.sub) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n if (eventNames) {\n const handlers = eventNames.map(eventName => fromEvent(this.elementRef.nativeElement, eventName));\n this.sub = merge(...handlers).subscribe(() => this.trackEvent());\n }\n else {\n this.sub = undefined;\n }\n }\n ngOnDestroy() {\n var _a;\n (_a = this.sub) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n }\n trackEvent(arg1, arg2) {\n var _a, _b, _c, _d;\n let category = this.matomoCategory;\n let action = this.matomoAction;\n let name = this.matomoName;\n let value = this.matomoValue;\n if (typeof arg1 === 'object') {\n category = (_a = arg1.category) !== null && _a !== void 0 ? _a : category;\n action = (_b = arg1.action) !== null && _b !== void 0 ? _b : action;\n name = (_c = arg1.name) !== null && _c !== void 0 ? _c : name;\n value = (_d = arg1.value) !== null && _d !== void 0 ? _d : value;\n }\n else if (typeof arg1 === 'string') {\n name = arg1;\n if (typeof arg2 === 'number') {\n value = arg2;\n }\n }\n else if (typeof arg1 === 'number') {\n value = arg1;\n }\n this.tracker.trackEvent(requireNonNull(category, 'matomo category is required'), requireNonNull(action, 'matomo action is required'), name, value);\n }\n}\nMatomoTrackerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: MatomoTrackerDirective, deps: [{ token: MatomoTracker }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nMatomoTrackerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.5\", type: MatomoTrackerDirective, selector: \"[matomoTracker]\", inputs: { matomoCategory: \"matomoCategory\", matomoAction: \"matomoAction\", matomoName: \"matomoName\", matomoValue: \"matomoValue\", matomoTracker: \"matomoTracker\" }, exportAs: [\"matomo\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: MatomoTrackerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[matomoTracker]',\n exportAs: 'matomo',\n }]\n }], ctorParameters: function () { return [{ type: MatomoTracker }, { type: i0.ElementRef }]; }, propDecorators: { matomoCategory: [{\n type: Input\n }], matomoAction: [{\n type: Input\n }], matomoName: [{\n type: Input\n }], matomoValue: [{\n type: Input\n }], matomoTracker: [{\n type: Input\n }] } });\n\nconst createDefaultMatomoScriptElement = (scriptUrl, document) => {\n const g = document.createElement('script');\n g.type = 'text/javascript';\n g.defer = true;\n g.async = true;\n g.src = scriptUrl;\n return g;\n};\nconst MATOMO_SCRIPT_FACTORY = new InjectionToken('MATOMO_SCRIPT_FACTORY', {\n providedIn: 'root',\n factory: () => createDefaultMatomoScriptElement,\n});\n\nconst ALREADY_INJECTED_ERROR = 'Matomo trackers have already been initialized';\nconst ALREADY_INITIALIZED_ERROR = 'Matomo has already been initialized';\n\nfunction coerceSiteId(siteId) {\n return `${siteId}`;\n}\nfunction appendTrailingSlash(str) {\n return str.endsWith('/') ? str : `${str}/`;\n}\nfunction buildTrackerUrl(url, suffix) {\n if (suffix == null) {\n return appendTrailingSlash(url) + DEFAULT_TRACKER_SUFFIX;\n }\n return url + suffix;\n}\nconst DEFAULT_TRACKER_SUFFIX = 'matomo.php';\nconst DEFAULT_SCRIPT_SUFFIX = 'matomo.js';\nfunction createMatomoInitializer(config, tracker, scriptFactory, document, platformId) {\n return config.disabled || !isPlatformBrowser(platformId)\n ? new NoopMatomoInitializer()\n : new MatomoInitializerService(config, tracker, scriptFactory, document);\n}\nclass NoopMatomoInitializer {\n initialize() {\n // No-op\n }\n initializeTracker(_) {\n // No-op\n }\n}\nclass MatomoInitializerService {\n constructor(config, tracker, scriptFactory, document) {\n this.config = config;\n this.tracker = tracker;\n this.scriptFactory = scriptFactory;\n this.document = document;\n this.initialized = false;\n this.injected = false;\n initializeMatomoHolder();\n }\n /** @deprecated use {@link initialize initialize()} instead */\n init() {\n this.initialize();\n }\n initialize() {\n this.runPreInitTasks();\n if (this.initialized) {\n throw new Error(ALREADY_INITIALIZED_ERROR);\n }\n if (isAutoConfigurationMode(this.config)) {\n this.injectMatomoScript(this.config);\n }\n this.initialized = true;\n }\n initializeTracker(config) {\n this.injectMatomoScript(config);\n }\n injectMatomoScript(config) {\n if (this.injected) {\n throw new Error(ALREADY_INJECTED_ERROR);\n }\n if (isExplicitTrackerConfiguration(config)) {\n const { scriptUrl: customScriptUrl } = config;\n const [mainTracker, ...additionalTrackers] = getTrackersConfiguration(config);\n const scriptUrl = customScriptUrl !== null && customScriptUrl !== void 0 ? customScriptUrl : appendTrailingSlash(mainTracker.trackerUrl) + DEFAULT_SCRIPT_SUFFIX;\n this.registerMainTracker(mainTracker);\n this.registerAdditionalTrackers(additionalTrackers);\n this.injectDOMScript(scriptUrl);\n }\n else if (isEmbeddedTrackerConfiguration(config)) {\n const { scriptUrl, trackers: additionalTrackers } = Object.assign({ trackers: [] }, config);\n this.registerAdditionalTrackers(additionalTrackers);\n this.injectDOMScript(scriptUrl);\n }\n this.injected = true;\n }\n registerMainTracker(mainTracker) {\n const mainTrackerUrl = buildTrackerUrl(mainTracker.trackerUrl, mainTracker.trackerUrlSuffix);\n const mainTrackerSiteId = coerceSiteId(mainTracker.siteId);\n this.tracker.setTrackerUrl(mainTrackerUrl);\n this.tracker.setSiteId(mainTrackerSiteId);\n }\n registerAdditionalTrackers(additionalTrackers) {\n additionalTrackers.forEach(({ trackerUrl, siteId, trackerUrlSuffix }) => {\n const additionalTrackerUrl = buildTrackerUrl(trackerUrl, trackerUrlSuffix);\n const additionalTrackerSiteId = coerceSiteId(siteId);\n this.tracker.addTracker(additionalTrackerUrl, additionalTrackerSiteId);\n });\n }\n injectDOMScript(scriptUrl) {\n const scriptElement = this.scriptFactory(scriptUrl, this.document);\n const selfScript = requireNonNull(this.document.getElementsByTagName('script')[0], 'no existing script found');\n const parent = requireNonNull(selfScript.parentNode, \"no script's parent node found\");\n parent.insertBefore(scriptElement, selfScript);\n }\n runPreInitTasks() {\n if (this.config.acceptDoNotTrack) {\n this.tracker.setDoNotTrack(true);\n }\n if (this.config.requireConsent === MatomoConsentMode.COOKIE) {\n this.tracker.requireCookieConsent();\n }\n else if (this.config.requireConsent === MatomoConsentMode.TRACKING) {\n this.tracker.requireConsent();\n }\n if (this.config.enableJSErrorTracking) {\n this.tracker.enableJSErrorTracking();\n }\n if (this.config.trackAppInitialLoad) {\n this.tracker.trackPageView();\n }\n if (this.config.enableLinkTracking) {\n this.tracker.enableLinkTracking();\n }\n }\n}\nMatomoInitializerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: MatomoInitializerService, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Injectable });\nMatomoInitializerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: MatomoInitializerService, providedIn: 'root', useFactory: createMatomoInitializer, deps: [{ token: INTERNAL_MATOMO_CONFIGURATION }, { token: MatomoTracker }, { token: MATOMO_SCRIPT_FACTORY }, { token: DOCUMENT }, { token: PLATFORM_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: MatomoInitializerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: createMatomoInitializer,\n deps: [\n INTERNAL_MATOMO_CONFIGURATION,\n MatomoTracker,\n MATOMO_SCRIPT_FACTORY,\n DOCUMENT,\n PLATFORM_ID,\n ],\n }]\n }], ctorParameters: function () {\n return [{ type: undefined }, { type: MatomoTracker }, { type: undefined, decorators: [{\n type: Inject,\n args: [MATOMO_SCRIPT_FACTORY]\n }] }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\nclass NgxMatomoTrackerModule {\n constructor(initializer, parent) {\n this.initializer = initializer;\n if (!parent) {\n // Do not initialize if it is already (by a parent module)\n this.initializer.initialize();\n }\n }\n static forRoot(config, scriptFactory) {\n const providers = [{ provide: MATOMO_CONFIGURATION, useValue: config }];\n if (scriptFactory) {\n providers.push({ provide: MATOMO_SCRIPT_FACTORY, useValue: scriptFactory });\n }\n return {\n ngModule: NgxMatomoTrackerModule,\n providers,\n };\n }\n}\nNgxMatomoTrackerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: NgxMatomoTrackerModule, deps: [{ token: MatomoInitializerService }, { token: NgxMatomoTrackerModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });\nNgxMatomoTrackerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: NgxMatomoTrackerModule, declarations: [MatomoTrackerDirective, MatomoTrackClickDirective, MatomoOptOutFormComponent], exports: [MatomoTrackerDirective, MatomoTrackClickDirective, MatomoOptOutFormComponent] });\nNgxMatomoTrackerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: NgxMatomoTrackerModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.5\", ngImport: i0, type: NgxMatomoTrackerModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [MatomoTrackerDirective, MatomoTrackClickDirective, MatomoOptOutFormComponent],\n exports: [MatomoTrackerDirective, MatomoTrackClickDirective, MatomoOptOutFormComponent],\n }]\n }], ctorParameters: function () {\n return [{ type: MatomoInitializerService }, { type: NgxMatomoTrackerModule, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }] }];\n } });\n\n/*\n * Public API Surface of tracker\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INTERNAL_MATOMO_CONFIGURATION, MATOMO_CONFIGURATION, MATOMO_SCRIPT_FACTORY, MatomoConsentMode, MatomoInitializationMode, MatomoInitializerService, MatomoOptOutFormComponent, MatomoTrackClickDirective, MatomoTracker, MatomoTrackerDirective, NgxMatomoTrackerModule, createDefaultMatomoScriptElement };\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Directive, Input, Output, NgModule, Optional } from '@angular/core';\nimport { Chart, Title, Tooltip, Filler, Legend, LineController, LineElement, PointElement, LinearScale, CategoryScale, BarController, BarElement, DoughnutController, ArcElement, RadarController, RadialLinearScale, PieController, PolarAreaController, BubbleController, ScatterController, TimeSeriesScale, defaults } from 'chart.js';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { merge } from 'lodash-es';\nimport { BehaviorSubject } from 'rxjs';\n\nclass ThemeService {\n constructor() {\n this.colorschemesOptions = new BehaviorSubject(undefined);\n }\n setColorschemesOptions(options) {\n this.pColorschemesOptions = options;\n this.colorschemesOptions.next(options);\n }\n getColorschemesOptions() {\n return this.pColorschemesOptions;\n }\n}\nThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: ThemeService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: ThemeService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: function () { return []; } });\n\nclass BaseChartDirective {\n constructor(element, zone, themeService) {\n this.element = element;\n this.zone = zone;\n this.themeService = themeService;\n this.type = 'bar';\n this.plugins = [];\n this.chartClick = new EventEmitter();\n this.chartHover = new EventEmitter();\n this.subs = [];\n this.ctx = element.nativeElement.getContext('2d');\n this.subs.push(this.themeService.colorschemesOptions\n .pipe(distinctUntilChanged())\n .subscribe(r => this.themeChanged(r)));\n }\n ngOnChanges(changes) {\n const requireRender = ['type'];\n const propertyNames = Object.getOwnPropertyNames(changes);\n if (propertyNames.some(key => requireRender.includes(key)) ||\n propertyNames.every(key => changes[key].isFirstChange())) {\n this.render();\n }\n else {\n const config = this.getChartConfiguration();\n if (this.chart) {\n Object.assign(this.chart.config.data, config.data);\n Object.assign(this.chart.config.plugins, config.plugins);\n Object.assign(this.chart.config.options, config.options);\n }\n this.update();\n }\n }\n ngOnDestroy() {\n if (this.chart) {\n this.chart.destroy();\n this.chart = void 0;\n }\n this.subs.forEach(s => s.unsubscribe());\n }\n render() {\n if (this.chart) {\n this.chart.destroy();\n }\n return this.zone.runOutsideAngular(() => this.chart = new Chart(this.ctx, this.getChartConfiguration()));\n }\n update(duration) {\n if (this.chart) {\n this.zone.runOutsideAngular(() => { var _a; return (_a = this.chart) === null || _a === void 0 ? void 0 : _a.update(duration); });\n }\n }\n hideDataset(index, hidden) {\n if (this.chart) {\n this.chart.getDatasetMeta(index).hidden = hidden;\n this.update();\n }\n }\n isDatasetHidden(index) {\n var _a, _b;\n return (_b = (_a = this.chart) === null || _a === void 0 ? void 0 : _a.getDatasetMeta(index)) === null || _b === void 0 ? void 0 : _b.hidden;\n }\n toBase64Image() {\n var _a;\n return (_a = this.chart) === null || _a === void 0 ? void 0 : _a.toBase64Image();\n }\n themeChanged(options) {\n this.themeOverrides = options;\n if (this.chart) {\n Object.assign(this.chart.config.options, this.getChartOptions());\n this.update();\n }\n }\n getChartOptions() {\n return merge({\n onHover: (event, active) => {\n if (this.chartHover.observed && active && !active.length) {\n return;\n }\n this.zone.run(() => this.chartHover.emit({ event, active }));\n },\n onClick: (event, active) => {\n if (!this.chartClick.observed) {\n return;\n }\n this.zone.run(() => this.chartClick.emit({ event, active }));\n }\n }, this.themeOverrides, this.options, {\n plugins: {\n legend: {\n display: this.legend\n }\n }\n });\n }\n getChartConfiguration() {\n return {\n type: this.type,\n data: this.getChartData(),\n plugins: this.plugins,\n options: this.getChartOptions()\n };\n }\n getChartData() {\n return this.data ? this.data : {\n labels: this.labels || [],\n datasets: this.datasets || []\n };\n }\n}\nBaseChartDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: BaseChartDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: ThemeService }], target: i0.ɵɵFactoryTarget.Directive });\nBaseChartDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.1.1\", type: BaseChartDirective, selector: \"canvas[baseChart]\", inputs: { type: \"type\", legend: \"legend\", data: \"data\", options: \"options\", plugins: \"plugins\", labels: \"labels\", datasets: \"datasets\" }, outputs: { chartClick: \"chartClick\", chartHover: \"chartHover\" }, exportAs: [\"base-chart\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: BaseChartDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'canvas[baseChart]',\n exportAs: 'base-chart',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: ThemeService }]; }, propDecorators: { type: [{\n type: Input\n }], legend: [{\n type: Input\n }], data: [{\n type: Input\n }], options: [{\n type: Input\n }], plugins: [{\n type: Input\n }], labels: [{\n type: Input\n }], datasets: [{\n type: Input\n }], chartClick: [{\n type: Output\n }], chartHover: [{\n type: Output\n }] } });\n\nconst baseColors = [\n [255, 99, 132],\n [54, 162, 235],\n [255, 206, 86],\n [231, 233, 237],\n [75, 192, 192],\n [151, 187, 205],\n [220, 220, 220],\n [247, 70, 74],\n [70, 191, 189],\n [253, 180, 92],\n [148, 159, 177],\n [77, 83, 96]\n];\n\nconst builtInDefaults = {\n datasets: {\n line: {\n backgroundColor: (context) => rgba(generateColor(context.datasetIndex), 0.4),\n borderColor: (context) => rgba(generateColor(context.datasetIndex), 1),\n pointBackgroundColor: (context) => rgba(generateColor(context.datasetIndex), 1),\n pointBorderColor: '#fff',\n pointHoverBackgroundColor: '#fff',\n pointHoverBorderColor: (context) => rgba(generateColor(context.datasetIndex), 0.8)\n },\n bar: {\n backgroundColor: (context) => rgba(generateColor(context.datasetIndex), 0.6),\n borderColor: (context) => rgba(generateColor(context.datasetIndex), 1),\n hoverBackgroundColor: (context) => rgba(generateColor(context.datasetIndex), 0.8),\n hoverBorderColor: (context) => rgba(generateColor(context.datasetIndex), 1)\n },\n get radar() {\n return this.line;\n },\n doughnut: {\n backgroundColor: (context) => rgba(generateColor(context.dataIndex), 0.6),\n borderColor: '#fff',\n hoverBackgroundColor: (context) => rgba(generateColor(context.dataIndex), 1),\n hoverBorderColor: (context) => rgba(generateColor(context.dataIndex), 1)\n },\n get pie() {\n return this.doughnut;\n },\n polarArea: {\n backgroundColor: (context) => rgba(generateColor(context.dataIndex), 0.6),\n borderColor: (context) => rgba(generateColor(context.dataIndex), 1),\n hoverBackgroundColor: (context) => rgba(generateColor(context.dataIndex), 0.8),\n hoverBorderColor: (context) => rgba(generateColor(context.dataIndex), 1)\n },\n get bubble() {\n return this.doughnut;\n },\n get scatter() {\n return this.doughnut;\n },\n get area() {\n return this.polarArea;\n }\n }\n};\nfunction rgba(colour, alpha) {\n return 'rgba(' + colour.concat(alpha).join(',') + ')';\n}\nfunction getRandomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\nfunction getRandomColor() {\n return [getRandomInt(0, 255), getRandomInt(0, 255), getRandomInt(0, 255)];\n}\n/**\n * Generate colors\n */\nfunction generateColor(index = 0) {\n return baseColors[index] || getRandomColor();\n}\n\nChart.register(Title, Tooltip, Filler, Legend, LineController, LineElement, PointElement, LinearScale, CategoryScale, BarController, BarElement, DoughnutController, ArcElement, RadarController, RadialLinearScale, PieController, PolarAreaController, BubbleController, ScatterController, TimeSeriesScale);\nclass NgChartsConfiguration {\n}\nNgChartsConfiguration.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgChartsConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgChartsConfiguration.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgChartsConfiguration, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgChartsConfiguration, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nclass NgChartsModule {\n constructor(config) {\n if (config === null || config === void 0 ? void 0 : config.plugins)\n Chart.register(...config === null || config === void 0 ? void 0 : config.plugins);\n const ngChartsDefaults = merge(builtInDefaults, (config === null || config === void 0 ? void 0 : config.defaults) || {});\n defaults.set(ngChartsDefaults);\n }\n static forRoot(config) {\n return {\n ngModule: NgChartsModule,\n providers: [\n { provide: NgChartsConfiguration, useValue: config }\n ]\n };\n }\n}\nNgChartsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgChartsModule, deps: [{ token: NgChartsConfiguration, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });\nNgChartsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgChartsModule, declarations: [BaseChartDirective], exports: [BaseChartDirective] });\nNgChartsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgChartsModule, imports: [[]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.1\", ngImport: i0, type: NgChartsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n declarations: [BaseChartDirective],\n exports: [BaseChartDirective]\n }]\n }], ctorParameters: function () {\n return [{ type: NgChartsConfiguration, decorators: [{\n type: Optional\n }] }];\n } });\n\n/*\n * Public API Surface of ng2-charts\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BaseChartDirective, NgChartsConfiguration, NgChartsModule, ThemeService, baseColors };\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT } from '@angular/common';\n\n// This service is based on the `ng2-cookies` package which sadly is not a service and does\nclass CookieService {\n constructor(document, \n // Get the `PLATFORM_ID` so we can check if we're in a browser.\n platformId) {\n this.document = document;\n this.platformId = platformId;\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n }\n /**\n * Get cookie Regular Expression\n *\n * @param name Cookie name\n * @returns property RegExp\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static getCookieRegExp(name) {\n const escapedName = name.replace(/([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi, '\\\\$1');\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\n }\n /**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @param encodedURIComponent A value representing an encoded URI component.\n *\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static safeDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent);\n }\n catch (_a) {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n /**\n * Return `true` if {@link Document} is accessible, otherwise return `false`\n *\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n check(name) {\n if (!this.documentIsAccessible) {\n return false;\n }\n name = encodeURIComponent(name);\n const regExp = CookieService.getCookieRegExp(name);\n return regExp.test(this.document.cookie);\n }\n /**\n * Get cookies by name\n *\n * @param name Cookie name\n * @returns property value\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n get(name) {\n if (this.documentIsAccessible && this.check(name)) {\n name = encodeURIComponent(name);\n const regExp = CookieService.getCookieRegExp(name);\n const result = regExp.exec(this.document.cookie);\n return result[1] ? CookieService.safeDecodeURIComponent(result[1]) : '';\n }\n else {\n return '';\n }\n }\n /**\n * Get all cookies in JSON format\n *\n * @returns all the cookies in json\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n getAll() {\n if (!this.documentIsAccessible) {\n return {};\n }\n const cookies = {};\n const document = this.document;\n if (document.cookie && document.cookie !== '') {\n document.cookie.split(';').forEach((currentCookie) => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[CookieService.safeDecodeURIComponent(cookieName.replace(/^ /, ''))] = CookieService.safeDecodeURIComponent(cookieValue);\n });\n }\n return cookies;\n }\n set(name, value, expiresOrOptions, path, domain, secure, sameSite) {\n if (!this.documentIsAccessible) {\n return;\n }\n if (typeof expiresOrOptions === 'number' || expiresOrOptions instanceof Date || path || domain || secure || sameSite) {\n const optionsBody = {\n expires: expiresOrOptions,\n path,\n domain,\n secure,\n sameSite: sameSite ? sameSite : 'Lax',\n };\n this.set(name, value, optionsBody);\n return;\n }\n let cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n const options = expiresOrOptions ? expiresOrOptions : {};\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const dateExpires = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n }\n else {\n cookieString += 'expires=' + options.expires.toUTCString() + ';';\n }\n }\n if (options.path) {\n cookieString += 'path=' + options.path + ';';\n }\n if (options.domain) {\n cookieString += 'domain=' + options.domain + ';';\n }\n if (options.secure === false && options.sameSite === 'None') {\n options.secure = true;\n console.warn(`[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` +\n `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`);\n }\n if (options.secure) {\n cookieString += 'secure;';\n }\n if (!options.sameSite) {\n options.sameSite = 'Lax';\n }\n cookieString += 'sameSite=' + options.sameSite + ';';\n this.document.cookie = cookieString;\n }\n /**\n * Delete cookie by name\n *\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Cookie secure flag\n * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n delete(name, path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const expiresDate = new Date('Thu, 01 Jan 1970 00:00:01 GMT');\n this.set(name, '', { expires: expiresDate, path, domain, secure, sameSite });\n }\n /**\n * Delete all cookies\n *\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Is the Cookie secure\n * @param sameSite Is the cookie same site\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n deleteAll(path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const cookies = this.getAll();\n for (const cookieName in cookies) {\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n}\nCookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: CookieService, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nCookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: CookieService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: CookieService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: function () {\n return [{ type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }];\n } });\n\n/*\n * Public API Surface of ngx-cookie-service\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CookieService };\n","import * as i0 from '@angular/core';\nimport { Directive, NgModule, InjectionToken, Injectable, Inject, SecurityContext, Component, HostBinding, HostListener } from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { Subject } from 'rxjs';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i2 from '@angular/platform-browser';\n\nclass ToastContainerDirective {\n constructor(el) {\n this.el = el;\n }\n getContainerElement() {\n return this.el.nativeElement;\n }\n}\nToastContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastContainerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nToastContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.0.2\", type: ToastContainerDirective, selector: \"[toastContainer]\", exportAs: [\"toastContainer\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastContainerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[toastContainer]',\n exportAs: 'toastContainer',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\nclass ToastContainerModule {\n}\nToastContainerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastContainerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nToastContainerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastContainerModule, declarations: [ToastContainerDirective], exports: [ToastContainerDirective] });\nToastContainerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastContainerModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastContainerModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [ToastContainerDirective],\n exports: [ToastContainerDirective],\n }]\n }] });\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal {\n constructor(component, injector) {\n this.component = component;\n this.injector = injector;\n }\n /** Attach this portal to a host. */\n attach(host, newestOnTop) {\n this._attachedHost = host;\n return host.attach(this, newestOnTop);\n }\n /** Detach this portal from its host */\n detach() {\n const host = this._attachedHost;\n if (host) {\n this._attachedHost = undefined;\n return host.detach();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\n * the PortalHost when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * Partial implementation of PortalHost that only deals with attaching a\n * ComponentPortal\n */\nclass BasePortalHost {\n attach(portal, newestOnTop) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal, newestOnTop);\n }\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost();\n }\n this._attachedPortal = undefined;\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = undefined;\n }\n }\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n}\n\n/**\n * Everything a toast needs to launch\n */\nclass ToastPackage {\n constructor(toastId, config, message, title, toastType, toastRef) {\n this.toastId = toastId;\n this.config = config;\n this.message = message;\n this.title = title;\n this.toastType = toastType;\n this.toastRef = toastRef;\n this._onTap = new Subject();\n this._onAction = new Subject();\n this.toastRef.afterClosed().subscribe(() => {\n this._onAction.complete();\n this._onTap.complete();\n });\n }\n /** Fired on click */\n triggerTap() {\n this._onTap.next();\n if (this.config.tapToDismiss) {\n this._onTap.complete();\n }\n }\n onTap() {\n return this._onTap.asObservable();\n }\n /** available for use in custom toast */\n triggerAction(action) {\n this._onAction.next(action);\n }\n onAction() {\n return this._onAction.asObservable();\n }\n}\nconst DefaultNoComponentGlobalConfig = {\n maxOpened: 0,\n autoDismiss: false,\n newestOnTop: true,\n preventDuplicates: false,\n countDuplicates: false,\n resetTimeoutOnDuplicate: false,\n includeTitleDuplicates: false,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning',\n },\n // Individual\n closeButton: false,\n disableTimeOut: false,\n timeOut: 5000,\n extendedTimeOut: 1000,\n enableHtml: false,\n progressBar: false,\n toastClass: 'ngx-toastr',\n positionClass: 'toast-top-right',\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n easing: 'ease-in',\n easeTime: 300,\n tapToDismiss: true,\n onActivateTick: false,\n progressAnimation: 'decreasing',\n payload: null\n};\nconst TOAST_CONFIG = new InjectionToken('ToastConfig');\n\n/**\n * Reference to a toast opened via the Toastr service.\n */\nclass ToastRef {\n constructor(_overlayRef) {\n this._overlayRef = _overlayRef;\n /** Count of duplicates of this toast */\n this.duplicatesCount = 0;\n /** Subject for notifying the user that the toast has finished closing. */\n this._afterClosed = new Subject();\n /** triggered when toast is activated */\n this._activate = new Subject();\n /** notifies the toast that it should close before the timeout */\n this._manualClose = new Subject();\n /** notifies the toast that it should reset the timeouts */\n this._resetTimeout = new Subject();\n /** notifies the toast that it should count a duplicate toast */\n this._countDuplicate = new Subject();\n }\n manualClose() {\n this._manualClose.next();\n this._manualClose.complete();\n }\n manualClosed() {\n return this._manualClose.asObservable();\n }\n timeoutReset() {\n return this._resetTimeout.asObservable();\n }\n countDuplicate() {\n return this._countDuplicate.asObservable();\n }\n /**\n * Close the toast.\n */\n close() {\n this._overlayRef.detach();\n this._afterClosed.next();\n this._manualClose.next();\n this._afterClosed.complete();\n this._manualClose.complete();\n this._activate.complete();\n this._resetTimeout.complete();\n this._countDuplicate.complete();\n }\n /** Gets an observable that is notified when the toast is finished closing. */\n afterClosed() {\n return this._afterClosed.asObservable();\n }\n isInactive() {\n return this._activate.isStopped;\n }\n activate() {\n this._activate.next();\n this._activate.complete();\n }\n /** Gets an observable that is notified when the toast has started opening. */\n afterActivate() {\n return this._activate.asObservable();\n }\n /** Reset the toast timouts and count duplicates */\n onDuplicate(resetTimeout, countDuplicate) {\n if (resetTimeout) {\n this._resetTimeout.next();\n }\n if (countDuplicate) {\n this._countDuplicate.next(++this.duplicatesCount);\n }\n }\n}\n/** Custom injector type specifically for instantiating components with a toast. */\nclass ToastInjector {\n constructor(_toastPackage, _parentInjector) {\n this._toastPackage = _toastPackage;\n this._parentInjector = _parentInjector;\n }\n get(token, notFoundValue, flags) {\n if (token === ToastPackage) {\n return this._toastPackage;\n }\n return this._parentInjector.get(token, notFoundValue, flags);\n }\n}\n\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nclass DomPortalHost extends BasePortalHost {\n constructor(_hostDomElement, _componentFactoryResolver, _appRef) {\n super();\n this._hostDomElement = _hostDomElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n */\n attachComponentPortal(portal, newestOnTop) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the ChangeDetector for that component to the application (which\n // happens automatically when using a ViewContainer).\n componentRef = componentFactory.create(portal.injector);\n // When creating a component outside of a ViewContainer, we need to manually register\n // its ChangeDetector with the application. This API is unfortunately not yet published\n // in Angular core. The change detector must also be deregistered when the component\n // is destroyed to prevent memory leaks.\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n if (newestOnTop) {\n this._hostDomElement.insertBefore(this._getComponentRootNode(componentRef), this._hostDomElement.firstChild);\n }\n else {\n this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));\n }\n return componentRef;\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalHost) {\n this._portalHost = _portalHost;\n }\n attach(portal, newestOnTop = true) {\n return this._portalHost.attach(portal, newestOnTop);\n }\n /**\n * Detaches an overlay from a portal.\n * @returns Resolves when the overlay has been detached.\n */\n detach() {\n return this._portalHost.detach();\n }\n}\n\n/** Container inside which all toasts will render. */\nclass OverlayContainer {\n constructor(_document) {\n this._document = _document;\n }\n ngOnDestroy() {\n if (this._containerElement && this._containerElement.parentNode) {\n this._containerElement.parentNode.removeChild(this._containerElement);\n }\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n _createContainer() {\n const container = this._document.createElement('div');\n container.classList.add('overlay-container');\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n}\nOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: OverlayContainer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: OverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nclass Overlay {\n constructor(_overlayContainer, _componentFactoryResolver, _appRef, _document) {\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._document = _document;\n // Namespace panes by overlay container\n this._paneElements = new Map();\n }\n /**\n * Creates an overlay.\n * @returns A reference to the created overlay.\n */\n create(positionClass, overlayContainer) {\n // get existing pane if possible\n return this._createOverlayRef(this.getPaneElement(positionClass, overlayContainer));\n }\n getPaneElement(positionClass = '', overlayContainer) {\n if (!this._paneElements.get(overlayContainer)) {\n this._paneElements.set(overlayContainer, {});\n }\n if (!this._paneElements.get(overlayContainer)[positionClass]) {\n this._paneElements.get(overlayContainer)[positionClass] = this._createPaneElement(positionClass, overlayContainer);\n }\n return this._paneElements.get(overlayContainer)[positionClass];\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(positionClass, overlayContainer) {\n const pane = this._document.createElement('div');\n pane.id = 'toast-container';\n pane.classList.add(positionClass);\n pane.classList.add('toast-container');\n if (!overlayContainer) {\n this._overlayContainer.getContainerElement().appendChild(pane);\n }\n else {\n overlayContainer.getContainerElement().appendChild(pane);\n }\n return pane;\n }\n /**\n * Create a DomPortalHost into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal host.\n * @returns A portal host for the given DOM element.\n */\n _createPortalHost(pane) {\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef);\n }\n /**\n * Creates an OverlayRef for an overlay in the given DOM element.\n * @param pane DOM element for the overlay\n */\n _createOverlayRef(pane) {\n return new OverlayRef(this._createPortalHost(pane));\n }\n}\nOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: Overlay, deps: [{ token: OverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nOverlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: Overlay, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: Overlay, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: OverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }];\n } });\n\nclass ToastrService {\n constructor(token, overlay, _injector, sanitizer, ngZone) {\n this.overlay = overlay;\n this._injector = _injector;\n this.sanitizer = sanitizer;\n this.ngZone = ngZone;\n this.currentlyActive = 0;\n this.toasts = [];\n this.index = 0;\n this.toastrConfig = Object.assign(Object.assign({}, token.default), token.config);\n if (token.config.iconClasses) {\n this.toastrConfig.iconClasses = Object.assign(Object.assign({}, token.default.iconClasses), token.config.iconClasses);\n }\n }\n /** show toast */\n show(message, title, override = {}, type = '') {\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show successful toast */\n success(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.success || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show error toast */\n error(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.error || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show info toast */\n info(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.info || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show warning toast */\n warning(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.warning || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /**\n * Remove all or a single toast by id\n */\n clear(toastId) {\n // Call every toastRef manualClose function\n for (const toast of this.toasts) {\n if (toastId !== undefined) {\n if (toast.toastId === toastId) {\n toast.toastRef.manualClose();\n return;\n }\n }\n else {\n toast.toastRef.manualClose();\n }\n }\n }\n /**\n * Remove and destroy a single toast by id\n */\n remove(toastId) {\n const found = this._findToast(toastId);\n if (!found) {\n return false;\n }\n found.activeToast.toastRef.close();\n this.toasts.splice(found.index, 1);\n this.currentlyActive = this.currentlyActive - 1;\n if (!this.toastrConfig.maxOpened || !this.toasts.length) {\n return false;\n }\n if (this.currentlyActive < this.toastrConfig.maxOpened && this.toasts[this.currentlyActive]) {\n const p = this.toasts[this.currentlyActive].toastRef;\n if (!p.isInactive()) {\n this.currentlyActive = this.currentlyActive + 1;\n p.activate();\n }\n }\n return true;\n }\n /**\n * Determines if toast message is already shown\n */\n findDuplicate(title = '', message = '', resetOnDuplicate, countDuplicates) {\n const { includeTitleDuplicates } = this.toastrConfig;\n for (const toast of this.toasts) {\n const hasDuplicateTitle = includeTitleDuplicates && toast.title === title;\n if ((!includeTitleDuplicates || hasDuplicateTitle) && toast.message === message) {\n toast.toastRef.onDuplicate(resetOnDuplicate, countDuplicates);\n return toast;\n }\n }\n return null;\n }\n /** create a clone of global config and apply individual settings */\n applyConfig(override = {}) {\n return Object.assign(Object.assign({}, this.toastrConfig), override);\n }\n /**\n * Find toast object by id\n */\n _findToast(toastId) {\n for (let i = 0; i < this.toasts.length; i++) {\n if (this.toasts[i].toastId === toastId) {\n return { index: i, activeToast: this.toasts[i] };\n }\n }\n return null;\n }\n /**\n * Determines the need to run inside angular's zone then builds the toast\n */\n _preBuildNotification(toastType, message, title, config) {\n if (config.onActivateTick) {\n return this.ngZone.run(() => this._buildNotification(toastType, message, title, config));\n }\n return this._buildNotification(toastType, message, title, config);\n }\n /**\n * Creates and attaches toast data to component\n * returns the active toast, or in case preventDuplicates is enabled the original/non-duplicate active toast.\n */\n _buildNotification(toastType, message, title, config) {\n if (!config.toastComponent) {\n throw new Error('toastComponent required');\n }\n // max opened and auto dismiss = true\n // if timeout = 0 resetting it would result in setting this.hideTime = Date.now(). Hence, we only want to reset timeout if there is\n // a timeout at all\n const duplicate = this.findDuplicate(title, message, this.toastrConfig.resetTimeoutOnDuplicate && config.timeOut > 0, this.toastrConfig.countDuplicates);\n if (((this.toastrConfig.includeTitleDuplicates && title) || message) &&\n this.toastrConfig.preventDuplicates &&\n duplicate !== null) {\n return duplicate;\n }\n this.previousToastMessage = message;\n let keepInactive = false;\n if (this.toastrConfig.maxOpened && this.currentlyActive >= this.toastrConfig.maxOpened) {\n keepInactive = true;\n if (this.toastrConfig.autoDismiss) {\n this.clear(this.toasts[0].toastId);\n }\n }\n const overlayRef = this.overlay.create(config.positionClass, this.overlayContainer);\n this.index = this.index + 1;\n let sanitizedMessage = message;\n if (message && config.enableHtml) {\n sanitizedMessage = this.sanitizer.sanitize(SecurityContext.HTML, message);\n }\n const toastRef = new ToastRef(overlayRef);\n const toastPackage = new ToastPackage(this.index, config, sanitizedMessage, title, toastType, toastRef);\n const toastInjector = new ToastInjector(toastPackage, this._injector);\n const component = new ComponentPortal(config.toastComponent, toastInjector);\n const portal = overlayRef.attach(component, this.toastrConfig.newestOnTop);\n toastRef.componentInstance = portal.instance;\n const ins = {\n toastId: this.index,\n title: title || '',\n message: message || '',\n toastRef,\n onShown: toastRef.afterActivate(),\n onHidden: toastRef.afterClosed(),\n onTap: toastPackage.onTap(),\n onAction: toastPackage.onAction(),\n portal,\n };\n if (!keepInactive) {\n this.currentlyActive = this.currentlyActive + 1;\n setTimeout(() => {\n ins.toastRef.activate();\n });\n }\n this.toasts.push(ins);\n return ins;\n }\n}\nToastrService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrService, deps: [{ token: TOAST_CONFIG }, { token: Overlay }, { token: i0.Injector }, { token: i2.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nToastrService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () {\n return [{ type: undefined, decorators: [{\n type: Inject,\n args: [TOAST_CONFIG]\n }] }, { type: Overlay }, { type: i0.Injector }, { type: i2.DomSanitizer }, { type: i0.NgZone }];\n } });\n\nclass Toast {\n constructor(toastrService, toastPackage, ngZone) {\n this.toastrService = toastrService;\n this.toastPackage = toastPackage;\n this.ngZone = ngZone;\n /** width of progress bar */\n this.width = -1;\n /** a combination of toast type and options.toastClass */\n this.toastClasses = '';\n /** controls animation */\n this.state = {\n value: 'inactive',\n params: {\n easeTime: this.toastPackage.config.easeTime,\n easing: 'ease-in'\n }\n };\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${toastPackage.config.toastClass}`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n /** hides component when waiting to be displayed */\n get displayStyle() {\n if (this.state.value === 'inactive') {\n return 'none';\n }\n return;\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = Object.assign(Object.assign({}, this.state), { value: 'active' });\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.outsideTimeout(() => this.remove(), this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = (remaining / this.options.timeOut) * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = Object.assign(Object.assign({}, this.state), { value: 'active' });\n this.outsideTimeout(() => this.remove(), this.originalTimeout);\n this.options.timeOut = this.originalTimeout;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state.value === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = Object.assign(Object.assign({}, this.state), { value: 'removed' });\n this.outsideTimeout(() => this.toastrService.remove(this.toastPackage.toastId), +this.toastPackage.config.easeTime);\n }\n tapToast() {\n if (this.state.value === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n stickAround() {\n if (this.state.value === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n delayedHideToast() {\n if ((this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n this.options.extendedTimeOut === 0 ||\n this.state.value === 'removed') {\n return;\n }\n this.outsideTimeout(() => this.remove(), this.options.extendedTimeOut);\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n outsideTimeout(func, timeout) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(() => (this.timeout = setTimeout(() => this.runInsideAngular(func), timeout)));\n }\n else {\n this.timeout = setTimeout(() => func(), timeout);\n }\n }\n outsideInterval(func, timeout) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(() => (this.intervalId = setInterval(() => this.runInsideAngular(func), timeout)));\n }\n else {\n this.intervalId = setInterval(() => func(), timeout);\n }\n }\n runInsideAngular(func) {\n if (this.ngZone) {\n this.ngZone.run(() => func());\n }\n else {\n func();\n }\n }\n}\nToast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: Toast, deps: [{ token: ToastrService }, { token: ToastPackage }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.2\", type: Toast, selector: \"[toast-component]\", host: { listeners: { \"click\": \"tapToast()\", \"mouseenter\": \"stickAround()\", \"mouseleave\": \"delayedHideToast()\" }, properties: { \"class\": \"this.toastClasses\", \"@flyInOut\": \"this.state\", \"style.display\": \"this.displayStyle\" } }, ngImport: i0, template: `\n \n
    \n {{ title }} [{{ duplicatesCount + 1 }}]\n
    \n
    \n
    \n
    \n {{ message }}\n
    \n
    \n
    \n
    \n `, isInline: true, directives: [{ type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], animations: [\n trigger('flyInOut', [\n state('inactive', style({ opacity: 0 })),\n state('active', style({ opacity: 1 })),\n state('removed', style({ opacity: 0 })),\n transition('inactive => active', animate('{{ easeTime }}ms {{ easing }}')),\n transition('active => removed', animate('{{ easeTime }}ms {{ easing }}'))\n ])\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: Toast, decorators: [{\n type: Component,\n args: [{\n selector: '[toast-component]',\n template: `\n \n
    \n {{ title }} [{{ duplicatesCount + 1 }}]\n
    \n
    \n
    \n
    \n {{ message }}\n
    \n
    \n
    \n
    \n `,\n animations: [\n trigger('flyInOut', [\n state('inactive', style({ opacity: 0 })),\n state('active', style({ opacity: 1 })),\n state('removed', style({ opacity: 0 })),\n transition('inactive => active', animate('{{ easeTime }}ms {{ easing }}')),\n transition('active => removed', animate('{{ easeTime }}ms {{ easing }}'))\n ])\n ],\n preserveWhitespaces: false\n }]\n }], ctorParameters: function () { return [{ type: ToastrService }, { type: ToastPackage }, { type: i0.NgZone }]; }, propDecorators: { toastClasses: [{\n type: HostBinding,\n args: ['class']\n }], state: [{\n type: HostBinding,\n args: ['@flyInOut']\n }], displayStyle: [{\n type: HostBinding,\n args: ['style.display']\n }], tapToast: [{\n type: HostListener,\n args: ['click']\n }], stickAround: [{\n type: HostListener,\n args: ['mouseenter']\n }], delayedHideToast: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nconst DefaultGlobalConfig = Object.assign(Object.assign({}, DefaultNoComponentGlobalConfig), { toastComponent: Toast });\nclass ToastrModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastrModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\nToastrModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nToastrModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrModule, declarations: [Toast], imports: [CommonModule], exports: [Toast] });\nToastrModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [Toast],\n exports: [Toast],\n entryComponents: [Toast],\n }]\n }] });\nclass ToastrComponentlessModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastrModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoComponentGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\nToastrComponentlessModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrComponentlessModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nToastrComponentlessModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrComponentlessModule, imports: [CommonModule] });\nToastrComponentlessModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrComponentlessModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastrComponentlessModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n\nclass ToastNoAnimation {\n constructor(toastrService, toastPackage, appRef) {\n this.toastrService = toastrService;\n this.toastPackage = toastPackage;\n this.appRef = appRef;\n /** width of progress bar */\n this.width = -1;\n /** a combination of toast type and options.toastClass */\n this.toastClasses = '';\n /** controls animation */\n this.state = 'inactive';\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${toastPackage.config.toastClass}`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n /** hides component when waiting to be displayed */\n get displayStyle() {\n if (this.state === 'inactive') {\n return 'none';\n }\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = 'active';\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.timeout = setTimeout(() => {\n this.remove();\n }, this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n if (this.options.onActivateTick) {\n this.appRef.tick();\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = (remaining / this.options.timeOut) * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = 'active';\n this.options.timeOut = this.originalTimeout;\n this.timeout = setTimeout(() => this.remove(), this.originalTimeout);\n this.hideTime = new Date().getTime() + (this.originalTimeout || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = 'removed';\n this.timeout = setTimeout(() => this.toastrService.remove(this.toastPackage.toastId));\n }\n tapToast() {\n if (this.state === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n stickAround() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n delayedHideToast() {\n if ((this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n this.options.extendedTimeOut === 0 ||\n this.state === 'removed') {\n return;\n }\n this.timeout = setTimeout(() => this.remove(), this.options.extendedTimeOut);\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n}\nToastNoAnimation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastNoAnimation, deps: [{ token: ToastrService }, { token: ToastPackage }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });\nToastNoAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.2\", type: ToastNoAnimation, selector: \"[toast-component]\", host: { listeners: { \"click\": \"tapToast()\", \"mouseenter\": \"stickAround()\", \"mouseleave\": \"delayedHideToast()\" }, properties: { \"class\": \"this.toastClasses\", \"style.display\": \"this.displayStyle\" } }, ngImport: i0, template: `\n \n
    \n {{ title }} [{{ duplicatesCount + 1 }}]\n
    \n
    \n
    \n
    \n {{ message }}\n
    \n
    \n
    \n
    \n `, isInline: true, directives: [{ type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastNoAnimation, decorators: [{\n type: Component,\n args: [{\n selector: '[toast-component]',\n template: `\n \n
    \n {{ title }} [{{ duplicatesCount + 1 }}]\n
    \n
    \n
    \n
    \n {{ message }}\n
    \n
    \n
    \n
    \n `,\n }]\n }], ctorParameters: function () { return [{ type: ToastrService }, { type: ToastPackage }, { type: i0.ApplicationRef }]; }, propDecorators: { toastClasses: [{\n type: HostBinding,\n args: ['class']\n }], displayStyle: [{\n type: HostBinding,\n args: ['style.display']\n }], tapToast: [{\n type: HostListener,\n args: ['click']\n }], stickAround: [{\n type: HostListener,\n args: ['mouseenter']\n }], delayedHideToast: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\nconst DefaultNoAnimationsGlobalConfig = Object.assign(Object.assign({}, DefaultNoComponentGlobalConfig), { toastComponent: ToastNoAnimation });\nclass ToastNoAnimationModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastNoAnimationModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoAnimationsGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\nToastNoAnimationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastNoAnimationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nToastNoAnimationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastNoAnimationModule, declarations: [ToastNoAnimation], imports: [CommonModule], exports: [ToastNoAnimation] });\nToastNoAnimationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastNoAnimationModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.2\", ngImport: i0, type: ToastNoAnimationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [ToastNoAnimation],\n exports: [ToastNoAnimation],\n entryComponents: [ToastNoAnimation],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, ComponentPortal, DefaultGlobalConfig, DefaultNoAnimationsGlobalConfig, DefaultNoComponentGlobalConfig, Overlay, OverlayContainer, OverlayRef, TOAST_CONFIG, Toast, ToastContainerDirective, ToastContainerModule, ToastInjector, ToastNoAnimation, ToastNoAnimationModule, ToastPackage, ToastRef, ToastrComponentlessModule, ToastrModule, ToastrService };\n"],"names":["__awaiter","__generator","__assign","__spread","CryptoOps","UrlString","ThrottlingUtils","StringUtils","PromptValue","AccountEntity","AuthorityFactory","AuthorizationCodeClient","SilentFlowClient","RefreshTokenClient","AuthenticationScheme","ServerTelemetryManager","ProtocolUtils","ResponseMode","PersistentCacheKeys","IdToken","Constants","Logger","DEFAULT_CRYPTO_IMPLEMENTATION","ServerError","InteractionRequiredAuthError","DEFAULT_BROWSER_CACHE_MANAGER","BrowserCacheManager","buildConfiguration","InteractionType","TemporaryCacheKeys","ApiId","BrowserConstants","BrowserCacheLocation","BrowserUtils","BrowserProtocolUtils","RedirectHandler","PopupHandler","SilentHandler","BrowserAuthError","version","name","EventType","BrowserConfigurationAuthError","PopupUtils","ClientApplication","configuration","isBrowserEnvironment","window","config","activeLocalAccountId","eventCallbacks","Map","logger","system","loggerOptions","networkClient","navigationClient","redirectResponse","browserStorage","auth","clientId","browserCrypto","cache","prototype","handleRedirectPromise","hash","loggedInAccounts","redirectResponseKey","response","_this","_a","emitEvent","HANDLE_REDIRECT_START","Redirect","verbose","getAllAccounts","EMPTY_STRING","get","handleRedirectResponse","then","result","isLoggingIn","length","LOGIN_SUCCESS","ACQUIRE_TOKEN_SUCCESS","HANDLE_REDIRECT_END","catch","e","ACQUIRE_TOKEN_FAILURE","LOGIN_FAILURE","set","responseHash","state","loginRequestUrl","loginRequestUrlNormalized","currentUrlNormalized","handleHashResult","navigationOptions","processHashOnRedirect","homepage","label","interactionInProgress","info","getRedirectResponseHash","location","cleanRequestByInteractionType","validateAndExtractStateFromHash","clearHash","getTemporaryCache","ORIGIN_URI","removeHashFromUrl","href","navigateToLoginRequestUrl","handleHash","sent","indexOf","replaceHash","isInIframe","setTemporaryCache","URL_HASH","apiId","timeout","redirectNavigationTimeout","noHistory","getHomepage","warning","navigateInternal","isResponseHash","hashContainsKnownProperties","cachedHash","removeItem","generateCacheKey","interactionType","serverParams","getDeserializedHash","createHashDoesNotContainStateError","platformStateObj","extractBrowserRequestState","createUnableToParseStateError","createStateInteractionTypeMismatchError","cachedRequest","serverTelemetryManager","currentAuthority","authClient","interactionHandler","e_1","getCachedRequest","initializeServerTelemetryManager","correlationId","trys","push","getCachedAuthority","createNoCachedAuthorityError","createAuthCodeClient","handleCodeResponse","authority","cacheFailedRequest","acquireTokenRedirect","request","isLoggedIn","validRequest","authCodeRequest","navigateUrl","redirectStartPage","e_2","preflightBrowserEnvironmentCheck","ACQUIRE_TOKEN_START","LOGIN_START","preflightInteractiveRequest","initializeAuthorizationCodeRequest","getAuthCodeUrl","getRedirectStartPage","initiateAuthRequest","redirectTimeout","onRedirectNavigate","cleanRequestByState","acquireTokenPopup","Popup","Promise","reject","popupName","generatePopupName","asyncPopups","acquireTokenPopupAsync","popup","openSizedPopup","popupParameters","popupWindow","e_3","POPUP_OPENED","monitorPopupForHash","removeThrottle","scopes","close","ssoSilent","silentTokenResult","e_4","Silent","SSO_SILENT_START","acquireTokenByIframe","SSO_SILENT_SUCCESS","SSO_SILENT_FAILURE","silentRequest","e_5","isEmpty","loginHint","sid","account","username","createSilentSSOInsufficientInfoError","prompt","NONE","createSilentPromptValueError","initializeAuthorizationRequest","silentTokenHelper","acquireTokenByRefreshToken","refreshTokenClient","e_6","isServerError","isInteractionRequiredError","isInvalidGrantError","ACQUIRE_TOKEN_NETWORK_START","blockReloadInHiddenIframes","initializeBaseRequest","acquireTokenSilent_silentFlow","createRefreshTokenClient","errorCode","INVALID_GRANT_ERROR","acquireTokenSilent_authCode","silentHandler","msalFrame","navigateFrameWait","monitorIframeForHash","iframeHashTimeout","logout","logoutRequest","logoutRedirect","validLogoutRequest","logoutUri","navigate","e_7","initializeLogoutRequest","LOGOUT_START","getLogoutUri","accountInfoIsEqual","getActiveAccount","setActiveAccount","LOGOUT_SUCCESS","navigateExternal","LOGOUT_FAILURE","LOGOUT_END","logoutPopup","generateLogoutPopupName","mainWindowRedirectUri","logoutPopupAsync","requestAuthority","popupUtils","e_8","absoluteUrl","e_9","INTERACTION_STATUS_KEY","INTERACTION_IN_PROGRESS_VALUE","openPopup","monitorPopupForSameOrigin","cleanPopup","getAbsoluteUrl","getCurrentUri","verbosePii","getAccountByUsername","userName","allAccounts","filter","accountObj","toLowerCase","getAccountByHomeId","homeAccountId","getAccountByLocalId","localAccountId","getRedirectUri","requestRedirectUri","redirectUri","requestStartPage","getDiscoveredAuthority","authorityOptions","protocolMode","knownAuthorities","cloudDiscoveryMetadata","authorityMetadata","createDiscoveredInstance","authorityUrl","clientConfig","getClientConfiguration","createSilentFlowClient","discoveredAuthority","authOptions","clientCapabilities","systemOptions","tokenRenewalOffsetSeconds","loggerCallback","piiLoggingEnabled","cryptoInterface","networkInterface","storageInterface","libraryInfo","sku","MSAL_SKU","cpu","os","createInteractionInProgressError","blockNonBrowserEnvironment","blockRedirectInIframe","allowRedirectInIframe","blockAcquireTokenInPopups","cacheLocation","MemoryStorage","storeAuthStateInCookie","createInMemoryRedirectUnavailableError","createNewGuid","authenticationScheme","BEARER","validatedRequest","forceRefresh","telemetryPayload","wrapperSKU","wrapperVer","browserState","setRequestState","nonce","responseMode","FRAGMENT","adalIdTokenString","ADAL_ID_TOKEN","adalIdToken","claims","upn","updateCacheEntries","generatedPkceParams","generatePkceCodes","code","codeVerifier","verifier","codeChallenge","challenge","codeChallengeMethod","S256_CODE_CHALLENGE_METHOD","postLogoutRedirectUri","eventType","payload","error","message_1","timestamp","Date","now","forEach","callback","callbackId","apply","addEventCallback","removeEventCallback","delete","getLogger","setLogger","initializeWrapperLibrary","setNavigationClient","__extends","DEFAULT_REQUEST","PublicClientApplication","_super","call","loginRedirect","loginPopup","acquireTokenSilent","silentAuthClient","cachedToken","tokenRenewalResult","tokenRenewalError_1","createNoAccountError","acquireCachedToken","DEFAULT_SYSTEM_OPTIONS","StubbedNetworkModule","ProtocolMode","LogLevel","NavigationClient","DEFAULT_POPUP_TIMEOUT_MS","DEFAULT_IFRAME_TIMEOUT_MS","DEFAULT_REDIRECT_TIMEOUT_MS","userInputAuth","userInputCache","userInputSystem","DEFAULT_AUTH_OPTIONS","DEFAULT_AUTHORITY","AAD","DEFAULT_CACHE_OPTIONS","SessionStorage","secureCookies","DEFAULT_LOGGER_OPTIONS","logLevel","Info","DEFAULT_BROWSER_SYSTEM_OPTIONS","getBrowserNetworkClient","loadFrameTimeout","windowHashTimeout","detectIEOrEdge","overlayedConfig","HTTP_REQUEST_TYPE","XhrClient","sendGetRequestAsync","url","options","sendRequestAsync","GET","sendPostRequestAsync","POST","method","resolve","xhr","XMLHttpRequest","open","setXhrHeaders","onload","status","createPostRequestFailedError","createGetRequestFailedError","jsonResponse","JSON","parse","responseText","networkResponse","headers","getHeaderDict","body","createFailedToParseNetworkResponseError","onerror","navigator","onLine","createNoNetworkConnectivityError","send","createHttpMethodNotImplementedError","headers_1","Object","keys","key","setRequestHeader","headerString","getAllResponseHeaders","headerArr","trim","split","headerDict","value","parts","headerName","shift","headerVal","join","isLoader","define","amd","objectTypes","freeExports","exports","nodeType","root","freeGlobal","module","global","self","runInContext","context","Number","String","SyntaxError","TypeError","Math","nativeJSON","stringify","objectProto","getClass","toString","isProperty","hasOwnProperty","undefined","attempt","func","errorFunc","exception","isExtended","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","has","isSupported","serialized","stringifySupported","toJSON","parseSupported","functionClass","dateClass","numberClass","stringClass","arrayClass","booleanClass","charIndexBuggy","forOwn","object","size","Properties","dontEnums","property","valueOf","isFunction","hasProperty","constructor","isConstructor","Escapes","leadingZeroes","toPaddedString","width","slice","serializeDate","getData","year","month","date","time","hours","minutes","seconds","milliseconds","floor","Months","getDay","dateToJSON","nativeStringify","source","nativeToJSON","unicodePrefix","escapeChar","character","charCode","charCodeAt","escaped","reEscape","quote","lastIndex","test","replace","serialize","properties","whitespace","indentation","stack","type","className","results","element","index","prefix","pop","fromCharCode","Unescapes","Index","Source","abort","lex","begin","position","isSigned","charAt","temp","hasMembers","update","walk","previousJSON","JSON3","isRestored","noConflict","i0","Directive","Component","ViewEncapsulation","ViewChild","ContentChild","Input","NgModule","i1","CommonModule","_c0","_c1","_c2","NgxGauge_ng_content_3_Template","rf","ctx","ɵɵprojection","NgxGauge_ng_container_4_Template","ɵɵelementContainerStart","ɵɵtext","ɵɵelementContainerEnd","ctx_r2","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","prepend","NgxGauge_ng_content_6_Template","NgxGauge_ng_container_7_Template","ɵɵpipe","ctx_r4","ɵɵpipeBind1","NgxGauge_ng_content_9_Template","NgxGauge_ng_container_10_Template","ctx_r6","append","NgxGauge_ng_content_13_Template","NgxGauge_ng_container_14_Template","ctx_r9","_c3","_c4","clamp","min","max","coerceBooleanProperty","coerceNumberProperty","fallbackValue","isNaN","parseFloat","cssUnit","isNumber","NgxGaugeAppend","ɵfac","NgxGaugeAppend_Factory","t","ɵdir","ɵɵdefineDirective","selectors","exportAs","ngDevMode","ɵsetClassMetadata","args","selector","NgxGaugePrepend","NgxGaugePrepend_Factory","NgxGaugeValue","NgxGaugeValue_Factory","NgxGaugeLabel","NgxGaugeLabel_Factory","DEFAULTS","MIN","MAX","TYPE","THICK","FOREGROUND_COLOR","BACKGROUND_COLOR","CAP","SIZE","NgxGauge","_elementRef","_renderer","_size","_min","_max","_animate","_initialized","_animationRequestID","ariaLabel","ariaLabelledby","cap","thick","foregroundColor","backgroundColor","thresholds","create","_value","duration","animate","val","ngOnChanges","changes","isCanvasPropertyChanged","isDataChanged","nv","ov","currentValue","previousValue","_update","_destroy","_init","_updateSize","setStyle","nativeElement","_getWidth","_getCanvasHeight","_canvas","height","_label","_reading","ngAfterViewInit","ngOnDestroy","_getBounds","head","tail","PI","_drawShell","start","middle","color","center","_getCenter","radius","_getRadius","_clear","_context","beginPath","strokeStyle","arc","x","y","stroke","clearRect","_getHeight","getContext","_setupStyles","_create","cancelAnimationFrame","lineCap","lineWidth","_getForegroundColorByRange","match","item","sort","a","b","reverse","bounds","unit","displacement","startTime","getTime","runtime","progress","previousProgress","requestAnimationFrame","NgxGauge_Factory","ɵɵdirectiveInject","ElementRef","Renderer2","ɵcmp","ɵɵdefineComponent","contentQueries","NgxGauge_ContentQueries","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","_labelChild","first","_prependChild","_appendChild","_valueDisplayChild","viewQuery","NgxGauge_Query","ɵɵviewQuery","hostAttrs","hostVars","hostBindings","NgxGauge_HostBindings","ɵɵattribute","ɵɵclassProp","inputs","features","ɵɵNgOnChangesFeature","ngContentSelectors","decls","vars","consts","template","NgxGauge_Template","ɵɵprojectionDef","ɵɵelementStart","ɵɵtemplate","ɵɵelementEnd","ɵɵelement","ɵɵstyleProp","ɵɵproperty","directives","NgSwitch","NgSwitchCase","pipes","DecimalPipe","styles","encapsulation","templateUrl","styleUrls","host","None","static","NgxGaugeModule","NgxGaugeModule_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","declarations","__asyncValues","isArrayLike","isPromise","Observable","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","isIterable","isReadableStreamLike","readableStreamLikeToAsyncGenerator","reportUnhandledError","observable","Symbol_observable","innerFrom","input","fromInteropObservable","fromArrayLike","fromPromise","fromAsyncIterable","fromIterable","fromReadableStreamLike","obj","subscriber","obs","subscribe","array","i","closed","next","complete","promise","err","iterable","asyncIterable","process","readableStream","asyncIterable_1","asyncIterable_1_1","done","e_1_1","return","asyncScheduler","timer","interval","period","scheduler","async","isScheduler","isValidDate","dueTime","intervalOrScheduler","intervalDuration","due","n","schedule","audit","auditTime","operate","OperatorSubscriber","debounceTime","activeTask","lastValue","lastTime","emit","unsubscribe","emitWhenIdle","targetTime","add","delayWhen","delay","defaultThrottleConfig","throttle","throttleTime","duration$","executeSchedule","scheduleAsyncIterable","Error","iterator","Symbol","asyncIterator","AsyncAction","AsyncScheduler","__asyncGenerator","__await","arguments","readableStreamLikeToAsyncGenerator_1","reader","getReader","read","releaseLock","utils","require","random","browser","urlUtils","inherits","EventEmitter","debug","env","NODE_ENV","JsonpReceiver","polluteGlobalNamespace","id","string","urlWithId","addQuery","encodeURIComponent","WPrefix","_callback","bind","_createScript","timeoutId","setTimeout","_abort","scriptErrorTimeout","data","_cleanup","aborting","removeAllListeners","message","clearTimeout","script2","parentNode","removeChild","script","onreadystatechange","onclick","_scriptError","errorTimer","loadedOkay","document","createElement","src","charset","readyState","htmlFor","attachEvent","isOpera","event","text","getElementsByTagName","insertBefore","firstChild","ɵAnimationGroupPlayer","NoopAnimationPlayer","AUTO_STYLE","ɵPRE_STYLE","sequence","style","Injectable","isBrowser","isNode","optimizeGroupPlayer","players","normalizeKeyframes","driver","normalizer","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","offset","isSameOffset","normalizedKeyframe","prop","normalizedProp","normalizedValue","normalizePropertyName","normalizeStyleValue","LINE_START","listenOnPlayer","player","eventName","onStart","copyAnimationEvent","onDone","onDestroy","phaseName","totalTime","disabled","makeAnimationEvent","triggerName","fromState","toState","getOrSetAsInMap","map","defaultValue","parseTimelineCommand","command","separatorPos","substring","action","substr","_contains","elm1","elm2","_query","multi","_isNode","Element","contains","documentElement","elems","querySelectorAll","elm","querySelector","containsVendorPrefix","_CACHED_BODY","_IS_WEBKIT","validateStyleProperty","getBodyNode","camelProp","toUpperCase","containsElement","invokeQuery","hypenatePropsObject","newObj","newProp","NoopAnimationDriver","matchesElement","_element","_selector","query","computeStyle","easing","previousPlayers","scrubberAccessRequested","NoopAnimationDriver_Factory","ɵprov","ɵɵdefineInjectable","token","factory","AnimationDriver","NOOP","ONE_SECOND$1","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","matches","_convertTimeValueToMS","resolveTiming","timings","allowNegativeValues","parseTimeExpression","exp","regex","delayMatch","easingVal","containsErrors","startIndex","splice","copyObj","destination","normalizeStyles","normalizedStyles","Array","isArray","copyStyles","readPrototype","getStyleAttributeString","writeStyleAttribute","styleAttrValue","getPropertyValue","startsWith","dashKey","camelCaseToDashCase","setAttribute","setStyles","formerStyles","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","steps","validateStyleParams","params","extractStyleParams","varName","PARAM_REGEX","RegExp","exec","interpolateParams","original","str","_","localVal","iteratorToArray","arr","DASH_CASE_REGEXP","m","allowPreviousPlayerStylesMerge","balancePreviousStylesIntoKeyframes","previousStyles","previousStyleProps","startingKeyframe","missingStyleProps","visitDslNode","visitor","node","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","getComputedStyle","ANY_STATE","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","separator","makeLambdaFromStates","isFullAnyStateExpr","alias","TRUE_BOOLEAN_VALUES","Set","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN","SELF_TOKEN_REGEX","buildAnimationAst","metadata","AnimationAstBuilderVisitor","build","ROOT_SELECTOR","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","states","transitions","definitions","def","stateDef","transition","styleAst","astParams","containsDynamicStyles","missingSubs","isObject","stylesObj","sub","missingSubsArr","values","animation","matchers","expr","normalizeAnimationOptions","s","furthestTime","step","innerAst","timingAst","constructTimingAst","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","ast","_makeStyleAst","_validateStyleAst","styleTuple","collectedEasing","styleData","styleMap","endTime","tuple","collectedEntry","updateCollectedStyle","MAX_KEYFRAME_OFFSET","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","generatedOffset","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","optional","originalSelector","hasAmpersand","find","normalizeParams","currentTransition","makeTimingAst","strValue","isDynamic","some","v","dynamic","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","clear","ONE_FRAME_IN_MILLISECONDS","ENTER_TOKEN","ENTER_TOKEN_REGEX","LEAVE_TOKEN","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","timelines","timeline","containsAnimation","tl","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","delayNextStep","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","timingValue","incrementTime","getCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","abs","maxTime","staggerTransformer","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","target","fork","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","elements","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_localTimelineStyles","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","props","getFinalKeyframe","details0","details1","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","timeAtKeyframe","decimalPoints","mult","pow","round","allStyles","allProperties","Animation","errorMessage","_animationAst","buildTimelines","destinationStyles","dest","AnimationStyleNormalizer","NoopAnimationStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","WebAnimationsStyleNormalizer","strVal","DIMENSIONAL_PROP_MAP","valAndSuffixMatch","makeBooleanMap","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","buildStyles","stateName","backupStateStyler","stateStyler","backupStyles","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","assign","queriedElementsList","matchFns","fn","AnimationStateStyles","defaultParams","combinedParams","styleObj","buildTrigger","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","entry","f","matchStyles","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","register","_buildPlayer","autoStylesMap","inst","destroy","_getPlayer","listen","baseEvent","play","pause","reset","restart","finish","init","setPosition","QUEUED_CLASSNAME","QUEUED_SELECTOR","DISABLED_CLASSNAME","DISABLED_SELECTOR","STAR_CLASSNAME","STAR_SELECTOR","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","_triggers","_queue","_elementListeners","_hostClassName","addClass","phase","isTriggerEventValid","listeners","triggersWithStates","statesByElement","afterFlush","_getTrigger","trigger","defaultToFallback","TransitionAnimationPlayer","objEquals","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","removeClass","deregister","stateMap","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","listener","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","parent","triggers","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","destroyed","markedForDestroy","d0","d1","p","elementContainsData","containsData","TransitionAnimationEngine","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","onRemovalComplete","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","found","nextNamespace","registerTrigger","_fetchNamespace","nsId","isElementNode","details","markElementAsDisabled","isHostElement","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","classList","flush","cleanupFns","_flushAnimations","quietFns","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","from","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","nodeIsOrphaned","stringMap","setVal","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","allLeaveQueriedNodes","cloakAndComputeStyles","preStylesMap","post","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","parentPlayer","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","beforeDestroy","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","pp","wrappedPlayer","deleteOrUnsetInMap","_player","_containsRealPlayer","_queuedCallbacks","triggerCallback","_queueEvent","hasStarted","getPosition","currentValues","cloakElement","oldValue","display","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","NULL_NODE","nodeSet","localRootMap","getRoot","remove","finalPlayers","_flattenGroupPlayersRecur","k1","k2","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","cacheKey","onInsert","onRemove","disableAnimations","disable","eventPhase","concat","packageNonAnimatableStyles","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","_startStyles","_endStyles","_state","initialStyles","initialStylesByElement","_initialStyles","WeakMap","isNonAnimatableStyle","ELAPSED_TIME_MAX_DECIMAL_PLACES","ANIMATION_PROP","ANIMATIONEND_EVENT","ONE_SECOND","ElementAnimationStyleHandler","_name","_duration","_delay","_easing","_fillMode","_onDoneFn","_finished","_destroyed","_startTime","_position","_eventFn","_handleCallback","applyKeyframeAnimation","addRemoveAnimationEvent","playPauseAnimation","resume","findIndexForAnimation","setAnimationStyle","_ngTestManualTimestamp","elapsedTime","toFixed","animationName","removeKeyframeAnimation","anim","getAnimationStyle","countChars","tokens","findMatchingTokenIndex","newValue","searchToken","doRemove","removeEventListener","addEventListener","char","count","c","DEFAULT_FILL_MODE","DEFAULT_EASING","CssKeyframesPlayer","_finalStyles","_specialStyles","_onDoneFns","_onStartFns","_onDestroyFns","currentSnapshot","_buildStyler","_styler","_flushStartFns","_flushDoneFns","methods","finished","DirectStylePlayer","_startingStyles","__initialized","_styles","setProperty","removeProperty","KEYFRAMES_NAME_PREFIX","TAB_SPACE","CssKeyframesDriver","_count","buildKeyframeElement","keyframeStr","tab","kfElm","textContent","notifyFaultyScrubber","previousCssKeyframePlayers","flattenKeyframesIntoStyles","nodeToAppendKfElm","findNodeToAppendKeyframeElement","appendChild","specialStyles","removeElement","rootNode","getRootNode","ShadowRoot","flatKeyframes","kfs","warningIssued","console","warn","WebAnimationsPlayer","_started","_onFinish","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","_resetDomPlayerState","cancel","WebAnimationsDriver","_isNativeImpl","getElementAnimateFn","_cssKeyframesDriver","overrideWebAnimationsSupport","supported","useKeyframes","fill","playerOptions","previousWebAnimationPlayers","supportsWebAnimations","ɵAnimation","ɵAnimationEngine","ɵAnimationStyleNormalizer","ɵCssKeyframesDriver","ɵCssKeyframesPlayer","ɵNoopAnimationDriver","ɵNoopAnimationStyleNormalizer","ɵWebAnimationsDriver","ɵWebAnimationsPlayer","ɵWebAnimationsStyleNormalizer","ɵallowPreviousPlayerStylesMerge","ɵcontainsElement","ɵinvokeQuery","ɵsupportsWebAnimations","ɵvalidateStyleProperty","DOCUMENT","Inject","QueryList","InjectionToken","Optional","Output","_getFocusedElementPierceShadowDom","normalizePassiveListenerOptions","_getEventTarget","_getShadowRoot","Subject","Subscription","BehaviorSubject","of","hasModifierKey","A","Z","ZERO","NINE","END","HOME","LEFT_ARROW","RIGHT_ARROW","UP_ARROW","DOWN_ARROW","TAB","ALT","CONTROL","MAC_META","META","SHIFT","tap","take","skip","distinctUntilChanged","takeUntil","coerceElement","i1$1","ObserversModule","ID_DELIMITER","addAriaReferencedId","el","attr","ids","getAriaReferenceIds","existingId","removeAriaReferencedId","filteredIds","removeAttribute","getAttribute","MESSAGES_CONTAINER_ID","CDK_DESCRIBEDBY_ID_PREFIX","CDK_DESCRIBEDBY_HOST_ATTRIBUTE","nextId","AriaDescriber","_document","_platform","_messageRegistry","_messagesContainer","_id","describe","role","_canBeDescribed","getKey","setMessageId","messageElement","referenceCount","_createMessageElement","_isElementDescribedByMessage","_addMessageReference","removeDescription","_isElementNode","_removeMessageReference","registeredMessage","_deleteMessageElement","childNodes","describedElements","_removeCdkDescribedByReferenceIds","_createMessagesContainer","_b","containerClassName","serverContainers","messagesContainer","visibility","originalReferenceIds","referenceIds","messageId","trimmedMessage","ELEMENT_NODE","AriaDescriber_Factory","ɵɵinject","Platform","providedIn","decorators","ListKeyManager","_items","_activeItemIndex","_activeItem","_wrap","_letterKeyStream","_typeaheadSubscription","EMPTY","_vertical","_allowedModifierKeys","_homeAndEnd","_skipPredicateFn","_pressedLetters","tabOut","change","newItems","itemArray","toArray","newIndex","skipPredicate","predicate","withWrap","shouldWrap","withVerticalOrientation","enabled","withHorizontalOrientation","direction","_horizontal","withAllowedModifierKeys","withTypeAhead","debounceInterval","getLabel","pipe","letter","inputString","items","_getItemsArray","setActiveItem","withHomeAndEnd","previousActiveItem","updateActiveItem","onKeydown","keyCode","modifiers","isModifierAllowed","every","modifier","setNextItemActive","setPreviousItemActive","setFirstItemActive","setLastItemActive","toLocaleUpperCase","preventDefault","activeItemIndex","activeItem","isTyping","_setActiveItemByIndex","_setActiveItemByDelta","delta","_setActiveInWrapMode","_setActiveInDefaultMode","fallbackDelta","ActiveDescendantKeyManager","setInactiveStyles","setActiveStyles","FocusKeyManager","_origin","setFocusOrigin","origin","focus","IsFocusableConfig","ignoreVisibility","InteractivityChecker","isDisabled","hasAttribute","isVisible","hasGeometry","isTabbable","frameElement","getFrameElement","getWindow","getTabIndexValue","nodeName","tabIndexValue","WEBKIT","IOS","isPotentiallyTabbableIOS","FIREFOX","tabIndex","isFocusable","isPotentiallyFocusable","InteractivityChecker_Factory","offsetWidth","offsetHeight","getClientRects","isNativeFormElement","isHiddenInput","isInputElement","isAnchorWithHref","isAnchorElement","hasValidTabIndex","parseInt","inputType","ownerDocument","defaultView","FocusTrap","_checker","_ngZone","deferAnchors","_hasAttached","startAnchorListener","focusLastTabbableElement","endAnchorListener","focusFirstTabbableElement","_enabled","attachAnchors","_startAnchor","_endAnchor","_toggleAnchorTabIndex","startAnchor","endAnchor","runOutsideAngular","_createAnchor","nextSibling","focusInitialElementWhenReady","_executeOnStable","focusInitialElement","focusFirstTabbableElementWhenReady","focusLastTabbableElementWhenReady","_getRegionBoundary","bound","markers","_getFirstTabbableElement","_getLastTabbableElement","redirectToElement","focusableChild","hasAttached","children","tabbableChild","anchor","isEnabled","toggleAnchors","isStable","onStable","FocusTrapFactory","deferCaptureElements","FocusTrapFactory_Factory","NgZone","CdkTrapFocus","_focusTrapFactory","_previouslyFocusedElement","focusTrap","autoCapture","_autoCapture","ngAfterContentInit","_captureFocus","ngDoCheck","autoCaptureChange","firstChange","CdkTrapFocus_Factory","ConfigurableFocusTrap","_focusTrapManager","_inertStrategy","defer","_enable","preventFocus","_disable","allowFocus","FOCUS_TRAP_INERT_STRATEGY","EventListenerFocusTrapInertStrategy","_listener","_trapFocus","focusTrapRoot","closest","activeElement","FocusTrapManager","_focusTrapStack","ft","FocusTrapManager_Factory","ConfigurableFocusTrapFactory","configObject","ConfigurableFocusTrapFactory_Factory","isFakeMousedownFromScreenReader","buttons","offsetX","offsetY","isFakeTouchstartFromScreenReader","touch","touches","changedTouches","identifier","radiusX","radiusY","INPUT_MODALITY_DETECTOR_OPTIONS","INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS","ignoreKeys","TOUCH_BUFFER_MS","modalityEventListenerOptions","passive","capture","InputModalityDetector","ngZone","_mostRecentTarget","_modality","_lastTouchMs","_onKeydown","_options","_onMousedown","_onTouchstart","modalityDetected","modalityChanged","mostRecentModality","InputModalityDetector_Factory","Document","LIVE_ANNOUNCER_ELEMENT_TOKEN","LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY","LIVE_ANNOUNCER_DEFAULT_OPTIONS","LiveAnnouncer","elementToken","_defaultOptions","_liveElement","_createLiveElement","announce","defaultOptions","politeness","_previousTimeout","_currentPromise","_currentResolve","elementClass","previousElements","getElementsByClassName","liveEl","LiveAnnouncer_Factory","CdkAriaLive","_liveAnnouncer","_contentObserver","_politeness","_subscription","observe","elementText","_previousAnnouncedText","CdkAriaLive_Factory","ContentObserver","FOCUS_MONITOR_DEFAULT_OPTIONS","captureEventListenerOptions","FocusMonitor","_inputModalityDetector","_windowFocused","_originFromTouchInteraction","_elementInfo","_monitoredElementCount","_rootNodeFocusListenerCount","_windowFocusListener","_windowFocusTimeoutId","_stopInputModalityDetector","_rootNodeFocusAndBlurListener","handler","_onFocus","_onBlur","parentElement","_detectionMode","detectionMode","monitor","checkChildren","_getDocument","cachedInfo","subject","_registerGlobalListeners","stopMonitoring","elementInfo","_setClasses","_removeGlobalListeners","focusVia","focusedElement","_getClosestElementsInfo","currentElement","_originChanged","_setOrigin","_info","_getWindow","doc","_getFocusOrigin","focusEventTarget","_shouldBeAttributedToTouch","_lastFocusOrigin","toggle","isFromInteraction","_originTimeoutId","ms","relatedTarget","Node","_emitOrigin","run","rootNodeFocusListeners","modality","FocusMonitor_Factory","CdkMonitorFocus","_focusMonitor","cdkFocusChange","_monitorSubscription","CdkMonitorFocus_Factory","outputs","BLACK_ON_WHITE_CSS_CLASS","WHITE_ON_BLACK_CSS_CLASS","HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS","HighContrastModeDetector","getHighContrastMode","testElement","documentWindow","computedStyle","computedColor","_applyBodyHighContrastModeCssClasses","_hasCheckedHighContrastMode","bodyClasses","mode","HighContrastModeDetector_Factory","A11yModule","highContrastModeDetector","A11yModule_Factory","inject","DIR_DOCUMENT","DIR_DOCUMENT_FACTORY","RTL_LOCALE_PATTERN","_resolveDirectionality","rawValue","language","Directionality","bodyDir","dir","htmlDir","Directionality_Factory","Dir","_dir","_isInitialized","_rawDir","Dir_Factory","Dir_HostBindings","ɵɵProvidersFeature","provide","useExisting","providers","BidiModule","BidiModule_Factory","isObservable","DataSource","isDataSource","connect","ArrayDataSource","_data","disconnect","_DisposeViewRepeaterStrategy","applyChanges","viewContainerRef","itemContextFactory","itemValueResolver","itemViewChanged","forEachOperation","record","adjustedPreviousIndex","currentIndex","view","operation","previousIndex","insertContext","createEmbeddedView","templateRef","move","detach","_RecycleViewRepeaterStrategy","viewCacheSize","_viewCache","viewArgsFactory","_insertView","_detachAndCacheView","_moveView","cachedView","_insertViewFromCache","$implicit","viewArgs","detachedView","_maybeCacheView","insert","SelectionModel","_multiple","initiallySelectedValues","_emitChanges","_selection","_deselectedToEmit","_selectedToEmit","changed","_markSelected","selected","_selected","select","_verifyValueAssignment","_emitChangeEvent","deselect","_unmarkSelected","isSelected","_unmarkAll","hasValue","isMultipleSelection","added","removed","getMultipleValuesInSingleSelectionError","UniqueSelectionDispatcher","_listeners","notify","registered","UniqueSelectionDispatcher_Factory","_VIEW_REPEATER_STRATEGY","SkipSelf","Self","ContentChildren","coerceArray","animationFrameScheduler","merge","startWith","switchMap","CdkScrollableModule","i3","extendStyles","importantProperties","toggleNativeDragInteractions","enable","userSelect","toggleVisibility","top","opacity","left","combineTransforms","transform","initialTransform","parseCssTimeUnitsToMs","multiplier","getTransformTransitionDurationInMs","transitionedProperties","parseCssPropertyValue","propertyIndex","rawDurations","rawDelays","part","getMutableClientRect","clientRect","getBoundingClientRect","right","bottom","isInsideClientRect","adjustClientRect","isPointerNearClientRect","rect","threshold","pointerX","pointerY","xThreshold","yThreshold","ParentPositionTracker","positions","scrollPosition","getViewportScrollPosition","scrollTop","scrollLeft","handleScroll","cachedPosition","newTop","newLeft","viewportScrollPosition","topDifference","leftDifference","scrollY","scrollX","deepCloneNode","clone","cloneNode","descendantsWithId","transferCanvasData","transferInputData","transferData","descendantElements","cloneElements","cloneUniqueId","drawImage","passiveEventListenerOptions","activeEventListenerOptions","MOUSE_EVENT_IGNORE_TIME","dragImportantProperties","DragRef","_config","_viewportRuler","_dragDropRegistry","_passiveTransform","_activeTransform","_hasStartedDragging","_moveEvents","_pointerMoveSubscription","_pointerUpSubscription","_scrollSubscription","_resizeSubscription","_boundaryElement","_nativeInteractionsEnabled","_handles","_disabledHandles","_direction","dragStartDelay","_disabled","beforeStarted","started","released","ended","entered","exited","dropped","moved","_pointerDown","targetHandle","_getTargetHandle","_initializeDragSequence","_rootElement","_pointerMove","pointerPosition","_getPointerPositionOnPage","distanceX","_pickupPositionOnPage","distanceY","isOverThreshold","dragStartThreshold","isDelayElapsed","_dragStartTime","_getDragStartDelay","container","_dropContainer","_endDragSequence","isDragging","isReceiving","_startDragSequence","constrainedPointerPosition","_getConstrainedPointerPosition","_hasMoved","_lastKnownPointerPosition","_updatePointerDirectionDelta","_updateActiveDropContainer","activeTransform","_applyRootElementTransform","observers","distance","_getDragDistance","_pointerDirectionDelta","_pointerUp","_nativeDragStart","withRootElement","withParent","parentDragRef","_parentPositions","registerDragItem","_toggleNativeDragInteractions","handle","getPlaceholderElement","_placeholder","getRootElement","getVisibleElement","withHandles","handles","disabledHandles","withPreviewTemplate","_previewTemplate","withPlaceholderTemplate","_placeholderTemplate","_removeRootElementListeners","_initialTransform","SVGElement","_ownerSVGElement","ownerSVGElement","withBoundaryElement","boundaryElement","_containInsideBoundaryOnResize","_parentDragRef","dispose","_anchor","_destroyPreview","_destroyPlaceholder","removeDragItem","_removeSubscriptions","disableHandle","enableHandle","withDirection","_withDropContainer","getFreeDragPosition","setFreeDragPosition","withPreviewContainer","_previewContainer","_sortFromLastPointerPosition","_preview","_previewRef","_placeholderRef","stopDragging","webkitTapHighlightColor","_rootElementTapHighlight","_stopScrolling","_animatePreviewToPlaceholder","_cleanupDragArtifacts","_cleanupCachedDimensions","dropPoint","isTouchEvent","_lastTouchEventTime","dropContainer","placeholder","_createPlaceholderElement","createComment","shadowRoot","_createPreviewElement","replaceChild","_getPreviewInsertionPoint","_initialContainer","_initialIndex","getItemIndex","getScrollableParents","referenceElement","stopPropagation","isTouchSequence","isAuxiliaryMouseButton","button","isSyntheticEvent","isFakeEvent","draggable","rootStyles","pointerMove","pointerUp","scrolled","scrollEvent","_updateOnScroll","_boundaryRect","previewTemplate","_pickupPositionInElement","matchSize","_getPointerPositionInElement","_pointerPositionAtLastDirectionChange","startDragging","_previewRect","isPointerOverContainer","_isOverContainer","previousContainer","drop","rawX","rawY","newContainer","_getSiblingContainerFromPosition","exit","enter","sortingDisabled","_startScrollingIfNecessary","_sortItem","_applyPreviewTransform","previewConfig","previewClass","preview","rootRect","viewRef","viewContainer","detectChanges","matchElementSize","getTransform","zIndex","placeholderRect","placeholderConfig","placeholderTemplate","pointerEvents","elementRect","handleElement","referenceRect","point","targetTouches","_getViewportScrollPosition","pageX","pageY","svgMatrix","getScreenCTM","svgPoint","createSVGPoint","matrixTransform","inverse","dropContainerLock","lockAxis","constrainPosition","pickupX","pickupY","boundaryRect","previewWidth","previewHeight","_getPreviewRect","minY","maxY","minX","maxX","clamp$1","pointerPositionOnPage","positionSinceLastChange","changeX","changeY","pointerDirectionChangeThreshold","shouldEnable","currentPosition","pickupPosition","leftOverflow","rightOverflow","topOverflow","bottomOverflow","mouse","scrollDifference","_cachedShadowRoot","initialParent","previewContainer","documentRef","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","rootNodes","wrapper","sourceRect","moveItemInArray","fromIndex","toIndex","to","transferArrayItem","currentArray","targetArray","targetIndex","copyArrayItem","DROP_PROXIMITY_THRESHOLD","SCROLL_PROXIMITY_THRESHOLD","DropListRef","autoScrollDisabled","autoScrollStep","enterPredicate","sortPredicate","sorted","_isDragging","_itemPositions","_previousSwap","drag","overlaps","_draggables","_siblings","_orientation","_activeSiblings","_viewportScrollSubscription","_verticalScrollDirection","_horizontalScrollDirection","_stopScrollTimers","_startScrollInterval","_scrollNode","scrollStep","scrollBy","withScrollableParents","registerDropContainer","removeDropContainer","_draggingStarted","_notifyReceivingSiblings","_getItemIndexFromPointerPosition","activeDraggables","_activeDraggables","newPositionReference","_shouldEnterAsFirstChild","_cacheItemPositions","_cacheParentPositions","_reset","withItems","previousItems","draggedItems","_cacheItems","connectedTo","withOrientation","orientation","_scrollableElements","findIndex","currentItem","pointerDelta","_clientRect","siblings","isHorizontal","siblingAtNewPosition","newPosition","itemOffset","_getItemOffsetPx","siblingOffset","_getSiblingOffsetPx","oldOrder","sibling","isDraggedItem","elementToOffset","scrollNode","verticalScrollDirection","horizontalScrollDirection","getElementScrollDirections","getViewportSize","getVerticalScrollDirection","getHorizontalScrollDirection","_initialScrollSnap","msScrollSnapType","scrollSnapType","_listenToScrollEvents","elementToMeasure","current","_stopReceiving","immediateSibling","end","itemPositions","reversed","lastItemRect","firstItemRect","_canReceive","elementFromPoint","_startReceiving","activeSiblings","computedVertical","computedHorizontal","scrollHeight","clientHeight","scrollWidth","clientWidth","activeCapturingEventOptions","DragDropRegistry","_dropInstances","_dragInstances","_activeDragInstances","_globalListeners","_draggingPredicate","scroll","_preventDefaultWhileDragging","_persistentTouchmoveListener","_clearGlobalListeners","streams","observer","eventOptions","instance","DragDropRegistry_Factory","DEFAULT_CONFIG","DragDrop","createDrag","createDropList","DragDrop_Factory","ViewportRuler","CDK_DRAG_PARENT","CDK_DROP_LIST_GROUP","CdkDropListGroup","CdkDropListGroup_Factory","CDK_DRAG_CONFIG","assertElementNode","_uniqueIdCounter","CDK_DROP_LIST","CdkDropList","dragDrop","_changeDetectorRef","_scrollDispatcher","_group","_unsortedItems","_dropListRef","_assignDefaults","_setupInputSyncSubscription","_handleEvents","_dropLists","addItem","_syncItemsWithRef","getSortedItems","documentPosition","_dragRef","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","ref","correspondingDropList","list","_scrollableParentsResolved","scrollableParents","getAncestorScrollContainers","scrollable","getElementRef","markForCheck","draggingDisabled","listAutoScrollDisabled","listOrientation","CdkDropList_Factory","ChangeDetectorRef","ScrollDispatcher","CdkDropList_HostBindings","useValue","CDK_DRAG_HANDLE","CdkDragHandle","parentDrag","_stateChanges","_parentDrag","CdkDragHandle_Factory","CDK_DRAG_PLACEHOLDER","CdkDragPlaceholder","CdkDragPlaceholder_Factory","TemplateRef","CDK_DRAG_PREVIEW","CdkDragPreview","_matchSize","CdkDragPreview_Factory","DRAG_HOST_CLASS","CdkDrag","_viewContainerRef","_selfHandle","subscription","movedEvent","_syncInputs","_updateRootElement","_setupHandlesListener","freeDragPosition","rootSelectorChange","positionChange","rootElementSelector","_getBoundaryElement","boundary","childHandleElements","handleInstance","dragRef","CdkDrag_Factory","ViewContainerRef","CdkDrag_ContentQueries","CdkDrag_HostBindings","descendants","DragDropModule","DragDropModule_Factory","MutationObserverFactory","MutationObserver","MutationObserverFactory_Factory","_mutationObserverFactory","_observedElements","_cleanupObserver","elementOrRef","stream","_observeElement","_unobserveElement","mutations","characterData","childList","subtree","ContentObserver_Factory","CdkObserveContent","_currentSubscription","_unsubscribe","_subscribe","debounce","_debounce","CdkObserveContent_Factory","ObserversModule_Factory","PLATFORM_ID","isPlatformBrowser","hasV8BreakIterator","Intl","v8BreakIterator","_platformId","EDGE","userAgent","TRIDENT","BLINK","chrome","CSS","ANDROID","SAFARI","Platform_Factory","PlatformModule","PlatformModule_Factory","supportedInputTypes","candidateInputTypes","getSupportedInputTypes","featureTestInput","supportsPassiveEvents","supportsPassiveEventListeners","defineProperty","rtlScrollAxisType","scrollBehaviorSupported","supportsScrollBehavior","scrollToFunction","scrollTo","getRtlScrollAxisType","scrollContainer","containerStyle","overflow","content","contentStyle","shadowDomIsSupported","_supportsShadowDom","createShadowRoot","attachShadow","newActiveElement","composedPath","_isTestEnvironment","__karma__","jasmine","jest","Mocha","forwardRef","ChangeDetectionStrategy","fromEvent","asapScheduler","pairwise","shareReplay","i2","i2$1","VIRTUAL_SCROLL_STRATEGY","FixedSizeVirtualScrollStrategy","itemSize","minBufferPx","maxBufferPx","_scrolledIndexChange","scrolledIndexChange","_viewport","_itemSize","_minBufferPx","_maxBufferPx","attach","viewport","_updateTotalContentSize","_updateRenderedRange","updateItemAndBufferSize","onContentScrolled","onDataLengthChanged","onContentRendered","onRenderedOffsetChanged","scrollToIndex","behavior","scrollToOffset","setTotalContentSize","getDataLength","renderedRange","getRenderedRange","newRange","viewportSize","dataLength","scrollOffset","measureScrollOffset","firstVisibleIndex","maxVisibleItems","ceil","newVisibleIndex","startBuffer","expandStart","endBuffer","expandEnd","setRenderedRange","setRenderedContentOffset","_fixedSizeVirtualScrollStrategyFactory","fixedSizeDir","_scrollStrategy","CdkFixedSizeVirtualScroll","CdkFixedSizeVirtualScroll_Factory","useFactory","deps","DEFAULT_SCROLL_TIME","_scrolled","_globalSubscription","_scrolledCount","scrollContainers","elementScrolled","scrollableReference","auditTimeInMs","_addGlobalListener","_removeGlobalListener","ancestorScrolled","elementOrElementRef","ancestors","scrollingContainers","_scrollableContainsElement","scrollableElement","ScrollDispatcher_Factory","CdkScrollable","elementRef","scrollDispatcher","_elementScrolled","ngOnInit","isRtl","_applyScrollToOptions","LEFT","RIGHT","CdkScrollable_Factory","DEFAULT_RESIZE_TIME","_change","_changeListener","_viewportSize","_updateViewportSize","output","getViewportRect","documentRect","innerWidth","innerHeight","ViewportRuler_Factory","rangesEqual","r1","r2","SCROLL_SCHEDULER","CdkVirtualScrollViewport","viewportRuler","_detachedSubject","_renderedRangeSubject","_appendOnly","renderedRangeStream","_totalContentSize","_totalContentWidth","_totalContentHeight","_renderedRange","_dataLength","_renderedContentOffset","_renderedContentOffsetNeedsRewrite","_isChangeDetectionPending","_runAfterChangeDetection","_viewportChanges","checkViewportSize","_calculateSpacerSize","appendOnly","_measureViewportSize","_markChangeDetectionNeeded","forOf","_forOf","dataStream","newLength","_doChangeDetection","range","getOffsetToRenderedContentStart","axis","axisDirection","_renderedContentTransform","measureRenderedContentSize","contentEl","_contentWrapper","measureRangeSize","viewportEl","runAfter","runAfterChangeDetection","CdkVirtualScrollViewport_Factory","CdkVirtualScrollViewport_Query","CdkVirtualScrollViewport_HostBindings","ɵɵInheritDefinitionFeature","CdkVirtualScrollViewport_Template","changeDetection","OnPush","getOffset","CdkVirtualForOf","_template","_differs","_viewRepeater","viewChange","_dataSourceChanges","prev","cur","_changeDataSource","_differ","_needsUpdate","_onRenderedDataChange","cdkVirtualForOf","_cdkVirtualForOf","cdkVirtualForTrackBy","_cdkVirtualForTrackBy","cdkVirtualForTemplate","cdkVirtualForTemplateCacheSize","renderedStartIndex","rangeLen","firstNode","lastNode","diff","_renderedItems","_updateContext","_applyChanges","oldDs","newDs","_updateComputedContextProperties","_adjustedPreviousIndex","_getEmbeddedViewArgs","forEachIdentityChange","last","even","odd","CdkVirtualForOf_Factory","IterableDiffers","useClass","CdkScrollableModule_Factory","ScrollingModule","ScrollingModule_Factory","ɵfindLocaleData","ɵLocaleDataIndex","ɵgetLocaleCurrencyCode","ɵgetLocalePluralCase","LOCALE_ID","ɵregisterLocaleData","ɵisListLikeIterable","ɵstringify","NgModuleRef","ComponentFactoryResolver","Host","ɵRuntimeError","Attribute","ɵisPromise","ɵisSubscribable","Pipe","DEFAULT_CURRENCY_CODE","Version","_DOM","getDOM","setDOM","adapter","setRootDomAdapter","DomAdapter","PlatformLocation","historyGo","relativePosition","PlatformLocation_Factory","useBrowserPlatformLocation","BrowserPlatformLocation","LOCATION_INITIALIZED","_doc","_history","history","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","protocol","hostname","port","pathname","search","newPath","pushState","title","supportsState","replaceState","forward","back","go","getState","BrowserPlatformLocation_Factory","createBrowserPlatformLocation","joinWithSlash","slashes","endsWith","stripTrailingSlash","pathEndIdx","droppedSlashIdx","normalizeQueryParams","LocationStrategy","LocationStrategy_Factory","provideLocationStrategy","platformLocation","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","internal","path","includeHash","queryParams","externalUrl","PathLocationStrategy_Factory","HashLocationStrategy","HashLocationStrategy_Factory","Location","platformStrategy","_subject","_urlChangeListeners","_platformStrategy","browserBaseHref","_stripIndexHtml","ev","normalize","isCurrentPathEqualTo","_stripBaseHref","_notifyUrlChangeListeners","onUrlChange","_urlChangeSubscription","onNext","onThrow","onReturn","Location_Factory","createLocation","baseHref","CURRENCIES_EN","NumberFormatStyle","Plural","FormStyle","TranslationWidth","FormatWidth","NumberSymbol","WeekDay","getLocaleId","locale","LocaleId","getLocaleDayPeriods","formStyle","amPmData","DayPeriodsFormat","DayPeriodsStandalone","amPm","getLastDefinedValue","getLocaleDayNames","daysData","DaysFormat","DaysStandalone","days","getLocaleMonthNames","monthsData","MonthsFormat","MonthsStandalone","months","getLocaleEraNames","erasData","Eras","getLocaleFirstDayOfWeek","FirstDayOfWeek","getLocaleWeekEndRange","WeekendRange","getLocaleDateFormat","DateFormat","getLocaleTimeFormat","TimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","DateTimeFormat","getLocaleNumberSymbol","symbol","res","NumberSymbols","CurrencyDecimal","Decimal","CurrencyGroup","Group","getLocaleNumberFormat","NumberFormats","getLocaleCurrencySymbol","CurrencySymbol","getLocaleCurrencyName","CurrencyName","getLocaleCurrencyCode","getLocaleCurrencies","Currencies","getLocalePluralCase","checkFullData","ExtraData","getLocaleExtraDayPeriodRules","rules","rule","extractTime","getLocaleExtraDayPeriods","dayPeriodsData","dayPeriods","getLocaleDirection","h","getCurrencySymbol","format","currency","symbolNarrow","DEFAULT_NB_OF_CURRENCY_DIGITS","getNumberOfCurrencyDigits","digits","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","DateType","TranslationType","formatDate","timezone","toDate","namedFormat","getNamedFormat","dateTimezoneOffset","getTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","dateFormatter","getDateFormatter","createDate","newDate","setFullYear","setHours","localeId","formatValue","Short","Medium","Long","Full","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","num","minusSign","negWrap","neg","strNum","formatFractionalSeconds","strMs","dateGetter","getDatePart","Hours","FractionalSeconds","localeMinus","MinusSign","FullYear","getFullYear","Month","getMonth","getDate","getHours","Minutes","getMinutes","Seconds","getSeconds","getMilliseconds","Day","dateStrGetter","form","Format","extended","getDateTranslation","Days","DayPeriods","currentHours","currentMinutes","afterFrom","beforeTo","unexpected","timeZoneGetter","zone","ShortGMT","Extended","JANUARY","THURSDAY","getFirstThursdayOfYear","firstDayOfYear","getThursdayThisWeek","datetime","weekGetter","monthBased","nbDaysBefore1stDayOfMonth","today","thisThurs","firstThurs","weekNumberingYearGetter","weekNumberingYear","DATE_FORMATS","formatter","Abbreviated","Wide","Narrow","Standalone","fallback","requestedTimezoneOffset","addDateMinutes","setMinutes","reverseValue","timezoneOffset","isDate","d","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","setUTCFullYear","timeSetter","setUTCHours","NUMBER_FORMAT_REGEXP","MAX_DIGITS","DECIMAL_SEP","ZERO_CHAR","PATTERN_SEP","GROUP_SEP","DIGIT_CHAR","CURRENCY_CHAR","PERCENT_CHAR","formatNumberToLocaleString","pattern","groupSymbol","decimalSymbol","digitsInfo","isPercent","formattedText","isZero","isFinite","Infinity","parsedNumber","parseNumber","toPercent","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","parseIntAutoRadix","roundNumber","integerLen","exponent","decimals","unshift","groups","lgSize","gSize","Exponential","negPre","negSuf","posPre","posSuf","formatCurrency","currencyCode","Currency","parseNumberFormat","formatPercent","Percent","PercentSign","formatNumber","patternParts","positive","negative","positiveParts","lastIndexOf","integer","fraction","ch","trunkLen","pos","fractionLen","numStr","zeros","fractionSize","roundAt","digit","k","dropTrailingZeros","minLen","carry","reduceRight","NgLocalization","getPluralCategory","cases","ngLocalization","NgLocaleLocalization","plural","Zero","One","Two","Few","Many","NgLocaleLocalization_Factory","registerLocaleData","extraData","parseCookieValue","cookieStr","cookie","eqIndex","cookieName","cookieValue","decodeURIComponent","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","_iterableDiffer","_keyValueDiffer","_initialClasses","_rawClass","klass","_removeClasses","_applyClasses","ngClass","iterableChanges","_applyIterableChanges","keyValueChanges","_applyKeyValueChanges","forEachAddedItem","_toggleClass","forEachChangedItem","forEachRemovedItem","rawClassVal","NgClass_Factory","KeyValueDiffers","NgComponentOutlet","_componentRef","_moduleRef","ngComponentOutlet","elInjector","ngComponentOutletInjector","parentInjector","ngComponentOutletNgModuleFactory","parentModule","injector","componentFactoryResolver","componentFactory","resolveComponentFactory","createComponent","ngComponentOutletContent","NgComponentOutlet_Factory","NgForOfContext","ngForOf","NgForOf","_viewContainer","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","ngForTemplate","getTypeName","applyViewChange","ilen","ngTemplateContextGuard","NgForOf_Factory","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","condition","_updateView","ngIfThen","assertTemplate","ngIfElse","NgIf_Factory","isTemplateRefOrNull","SwitchView","_templateRef","_created","enforceState","created","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_defaultViews","_matchCase","matched","useDefault","NgSwitch_Factory","throwNgSwitchProviderNotFoundError","_view","ngSwitchCase","NgSwitchCase_Factory","NgSwitchDefault","NgSwitchDefault_Factory","attrName","directiveName","NgPlural","_localization","_caseViews","ngPlural","_switchValue","addCase","switchView","_clearViews","_activateView","_activeView","NgPlural_Factory","NgPluralCase","isANumber","NgPluralCase_Factory","ɵɵinjectAttribute","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","removeStyle","NgStyle_Factory","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","NgTemplateOutlet_Factory","COMMON_DIRECTIVES","invalidPipeArgumentError","SubscribableStrategy","createSubscription","updateLatestValue","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_ref","_latestValue","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","AsyncPipe_Factory","ɵpipe","ɵɵdefinePipe","pure","LowerCasePipe","LowerCasePipe_Factory","unicodeWordMatch","TitleCasePipe","txt","TitleCasePipe_Factory","UpperCasePipe","UpperCasePipe_Factory","DATE_PIPE_DEFAULT_TIMEZONE","DatePipe","defaultTimezone","DatePipe_Factory","_INTERPOLATION_REGEXP","I18nPluralPipe","pluralMap","I18nPluralPipe_Factory","I18nSelectPipe","mapping","I18nSelectPipe_Factory","JsonPipe","JsonPipe_Factory","makeKeyValuePair","KeyValuePipe","differs","keyValues","compareFn","defaultComparator","differ","differChanges","compareFnChanged","forEachItem","r","KeyValuePipe_Factory","keyValueA","keyValueB","aString","bString","_locale","isValue","strToNumber","DecimalPipe_Factory","PercentPipe","PercentPipe_Factory","CurrencyPipe","_defaultCurrencyCode","CurrencyPipe_Factory","SlicePipe","supports","SlicePipe_Factory","COMMON_PIPES","CommonModule_Factory","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","PLATFORM_WORKER_APP_ID","PLATFORM_WORKER_UI_ID","platformId","isPlatformServer","isPlatformWorkerApp","isPlatformWorkerUi","VERSION","ViewportScroller","BrowserViewportScroller","setOffset","getScrollPosition","supportsScrolling","pageXOffset","pageYOffset","scrollToPosition","scrollToAnchor","elSelected","findAnchorFromDocument","scrollToElement","attemptFocus","setHistoryScrollRestoration","scrollRestoration","supportScrollRestoration","focusTarget","scrollRestorationDescriptor","getScrollRestorationProperty","getPrototypeOf","writable","getOwnPropertyDescriptor","documentResult","getElementById","getElementsByName","createTreeWalker","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","nextNode","NullViewportScroller","XhrFactory","ɵBrowserPlatformLocation","ɵDomAdapter","ɵNullViewportScroller","ɵPLATFORM_BROWSER_ID","ɵPLATFORM_SERVER_ID","ɵPLATFORM_WORKER_APP_ID","ɵPLATFORM_WORKER_UI_ID","ɵgetDOM","ɵparseCookieValue","ɵsetRootDomAdapter","XhrFactory$1","concatMap","HttpHandler","HttpBackend","HttpHeaders","normalizedNames","lazyUpdate","lazyInit","line","maybeSetNormalizedName","getAll","op","lcName","copyFrom","applyUpdate","other","base","toDelete","existing","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","paramParser","rawParams","codec","param","eqIdx","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","HttpParams","updates","cloneFrom","encoder","fromString","fromObject","appendAll","eKey","idx","HttpContextToken","HttpContext","mightHaveBody","isArrayBuffer","ArrayBuffer","isBlob","Blob","isFormData","FormData","isUrlSearchParams","URLSearchParams","HttpRequest","third","fourth","reportProgress","withCredentials","responseType","urlWithParams","qIdx","sep","serializeBody","detectContentTypeHeader","setHeaders","reduce","setParams","HttpEventType","HttpResponseBase","defaultStatus","defaultStatusText","statusText","ok","HttpHeaderResponse","ResponseHeader","HttpResponse","Response","HttpErrorResponse","addBody","HttpClient","req","events$","res$","jsonp","callbackParam","patch","put","HttpClient_Factory","HttpInterceptorHandler","interceptor","intercept","HTTP_INTERCEPTORS","NoopInterceptor","NoopInterceptor_Factory","nextRequestId","JSONP_ERR_NO_CALLBACK","JSONP_ERR_WRONG_METHOD","JSONP_ERR_WRONG_RESPONSE_TYPE","JsonpCallbackContext","JsonpClientBackend","callbackMap","resolvedPromise","nextCallback","cancelled","cleanup","onLoad","onError","Sent","JsonpClientBackend_Factory","JsonpInterceptor","JsonpInterceptor_Factory","XSSI_PREFIX","getResponseUrl","responseURL","getResponseHeader","HttpXhrBackend","xhrFactory","detectedType","reqBody","headerResponse","partialFromXhr","originalBody","sentHeaders","onDownProgress","progressEvent","DownloadProgress","loaded","lengthComputable","total","partialText","onUpProgress","UploadProgress","upload","DONE","HttpXhrBackend_Factory","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","platform","lastCookieString","lastToken","parseCount","getToken","cookieString","HttpXsrfCookieExtractor_Factory","HttpXsrfInterceptor","tokenService","lcUrl","HttpXsrfInterceptor_Factory","HttpInterceptingHandler","backend","chain","interceptors","HttpInterceptingHandler_Factory","Injector","interceptingHandler","jsonpCallbackContext","HttpClientXsrfModule","ngModule","withOptions","HttpClientXsrfModule_Factory","HttpClientModule","HttpClientModule_Factory","HttpClientJsonpModule","HttpClientJsonpModule_Factory","ɵHttpInterceptingHandler","ɵisObservable","forkJoin","BaseControlValueAccessor","onChange","onTouched","registerOnTouched","registerOnChange","setDisabledState","BaseControlValueAccessor_Factory","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","BuiltInControlValueAccessor_Factory","ɵɵgetInheritedFactory","NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","writeValue","ɵCheckboxControlValueAccessor_BaseFactory","CheckboxControlValueAccessor_Factory","CheckboxControlValueAccessor_HostBindings","ɵɵlistener","CheckboxControlValueAccessor_change_HostBindingHandler","$event","checked","CheckboxControlValueAccessor_blur_HostBindingHandler","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","_isAndroid","getUserAgent","COMPOSITION_BUFFER_MODE","renderer","_compositionMode","_composing","_handleInput","_compositionStart","_compositionEnd","DefaultValueAccessor_Factory","DefaultValueAccessor_HostBindings","DefaultValueAccessor_input_HostBindingHandler","DefaultValueAccessor_blur_HostBindingHandler","DefaultValueAccessor_compositionstart_HostBindingHandler","DefaultValueAccessor_compositionend_HostBindingHandler","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","minValidator","maxValidator","required","control","requiredValidator","requiredTrue","requiredTrueValidator","email","emailValidator","minLength","minLengthValidator","maxLength","maxLengthValidator","patternValidator","nullValidator","compose","validators","composeAsync","regexStr","isPresent","o","toObservable","mergeErrors","arrayOfErrors","executeValidators","validator","isValidatorFn","validate","normalizeValidators","presentValidators","composeValidators","observables","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","includes","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","valid","invalid","pending","pristine","dirty","touched","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","hasError","getError","NgControl","_parent","valueAccessor","ControlContainer","formDirective","AbstractControlStatus","cd","_cd","is","_c","submitted","ngControlStatusHost","ngGroupStatusHost","NgControlStatus","NgControlStatus_Factory","NgControlStatus_HostBindings","NgControlStatusGroup","NgControlStatusGroup_Factory","NgControlStatusGroup_HostBindings","formControlNameExample","formGroupNameExample","formArrayNameExample","ngModelGroupExample","ngModelWithFormGroupExample","controlParentException","ngModelGroupException","missingFormException","groupParentException","arrayParentException","disabledAttrWarning","ngModelWarning","controlPath","setUpControl","_throwError","setUpValidators","setUpViewChangePipeline","setUpModelChangePipeline","setUpBlurPipeline","setUpDisabledChangeHandler","cleanUpControl","validateControlPresenceOnChange","noop","_noControlError","cleanUpValidators","_registerOnCollectionChange","registerOnValidatorChange","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","setValidators","asyncValidators","setAsyncValidators","onValidatorChange","updateValueAndValidity","isControlUpdated","updatedValidators","updatedAsyncValidators","_pendingValue","_pendingChange","_pendingDirty","updateOn","updateControl","_pendingTouched","markAsTouched","markAsDirty","setValue","emitModelToViewChange","viewToModelUpdate","emitModelEvent","_unregisterOnChange","setUpFormContainer","cleanUpFormContainer","messageEnd","isPropertyUpdated","viewModel","isFirstChange","isBuiltInAccessor","syncPendingControls","_syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","removeListItem","_ngModelWarning","warningConfig","_ngModelWarningSentOnce","_ngModelWarningSent","VALID","INVALID","PENDING","DISABLED","_find","delimiter","controlToFind","FormGroup","controls","FormArray","at","pickValidators","validatorOrOpts","isOptionsObj","coerceToValidator","pickAsyncValidators","coerceToAsyncValidator","AbstractControl","_hasOwnPendingAsyncValidator","_onCollectionChange","_onDisabledChange","validatorFn","asyncValidatorFn","_updateOn","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","opts","onlySelf","markAllAsTouched","_forEachChild","markAsUntouched","_updateTouched","markAsPristine","_updatePristine","markAsPending","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","setParent","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_isBoxedValue","formState","_setUpdateStrategy","parentDirty","FormControl","_onChange","_applyFormState","emitViewToModelChange","patchValue","cb","_setUpControls","registerControl","addControl","removeControl","setControl","controlName","_checkAllValuesPresent","_throwIfControlMissing","getRawValue","_reduceChildren","acc","subtreeUpdated","updated","child","_reduceValue","initValue","_registerControl","removeAt","formDirectiveProvider$1","NgForm","resolvedPromise$1","_directives","ngSubmit","_findContainer","getControl","addFormGroup","group","removeFormGroup","getFormGroup","updateModel","onSubmit","onReset","resetForm","NgForm_Factory","NgForm_HostBindings","NgForm_submit_HostBindingHandler","NgForm_reset_HostBindingHandler","AbstractFormGroupDirective","_checkParentType","ɵAbstractFormGroupDirective_BaseFactory","AbstractFormGroupDirective_Factory","modelParentException","formGroupNameException","missingNameException","modelGroupParentException","modelGroupProvider","NgModelGroup","NgModelGroup_Factory","formControlBinding$1","NgModel","_registered","_checkForErrors","_setUpControl","_updateDisabled","model","_isStandalone","_setUpStandalone","standalone","_checkName","disabledValue","NgModel_Factory","ɵNgNoValidate","ɵNgNoValidate_Factory","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","ɵNumberValueAccessor_BaseFactory","NumberValueAccessor_Factory","NumberValueAccessor_HostBindings","NumberValueAccessor_input_HostBindingHandler","NumberValueAccessor_blur_HostBindingHandler","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","throwNameError","RadioControlRegistryModule","RadioControlRegistryModule_Factory","RadioControlRegistry","_accessors","accessor","_isSameGroup","fireUncheck","controlPair","_control","RadioControlRegistry_Factory","_registry","_injector","_fn","formControlName","RadioControlValueAccessor_Factory","RadioControlValueAccessor_HostBindings","RadioControlValueAccessor_change_HostBindingHandler","RadioControlValueAccessor_blur_HostBindingHandler","RANGE_VALUE_ACCESSOR","RangeValueAccessor","ɵRangeValueAccessor_BaseFactory","RangeValueAccessor_Factory","RangeValueAccessor_HostBindings","RangeValueAccessor_change_HostBindingHandler","RangeValueAccessor_input_HostBindingHandler","RangeValueAccessor_blur_HostBindingHandler","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningConfig","_isControlChanged","previousForm","FormControlDirective_Factory","formDirectiveProvider","FormGroupDirective","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","FormGroupDirective_Factory","FormGroupDirective_HostBindings","FormGroupDirective_submit_HostBindingHandler","FormGroupDirective_reset_HostBindingHandler","formGroupNameProvider","FormGroupName","_hasInvalidParent","FormGroupName_Factory","formArrayNameProvider","FormArrayName","FormArrayName_Factory","controlNameBinding","FormControlName","_added","FormControlName_Factory","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_buildValueString$1","_extractId$1","valueString","_optionMap","_idCounter","_compareWith","compareWith","_getOptionId","_getOptionValue","_registerOption","ɵSelectControlValueAccessor_BaseFactory","SelectControlValueAccessor_Factory","SelectControlValueAccessor_HostBindings","SelectControlValueAccessor_change_HostBindingHandler","SelectControlValueAccessor_blur_HostBindingHandler","NgSelectOption","_select","ngValue","_setElementValue","NgSelectOption_Factory","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","_extractId","HTMLCollection","optionSelectedStateSetter","opt","_setSelected","selectedOptions","ɵSelectMultipleControlValueAccessor_BaseFactory","SelectMultipleControlValueAccessor_Factory","SelectMultipleControlValueAccessor_HostBindings","SelectMultipleControlValueAccessor_change_HostBindingHandler","SelectMultipleControlValueAccessor_blur_HostBindingHandler","ɵNgSelectMultipleOption","ɵNgSelectMultipleOption_Factory","toInteger","toFloat","AbstractValidatorDirective","_validator","inputName","normalizeInput","createValidator","inputValue","AbstractValidatorDirective_Factory","MAX_VALIDATOR","MaxValidator","ɵMaxValidator_BaseFactory","MaxValidator_Factory","MaxValidator_HostBindings","MIN_VALIDATOR","MinValidator","ɵMinValidator_BaseFactory","MinValidator_Factory","MinValidator_HostBindings","REQUIRED_VALIDATOR","RequiredValidator","CHECKBOX_REQUIRED_VALIDATOR","CheckboxRequiredValidator","_required","RequiredValidator_Factory","RequiredValidator_HostBindings","ɵCheckboxRequiredValidator_BaseFactory","CheckboxRequiredValidator_Factory","CheckboxRequiredValidator_HostBindings","EMAIL_VALIDATOR","EmailValidator","EmailValidator_Factory","MIN_LENGTH_VALIDATOR","MinLengthValidator","minlength","ɵMinLengthValidator_BaseFactory","MinLengthValidator_Factory","MinLengthValidator_HostBindings","MAX_LENGTH_VALIDATOR","MaxLengthValidator","maxlength","ɵMaxLengthValidator_BaseFactory","MaxLengthValidator_Factory","MaxLengthValidator_HostBindings","PATTERN_VALIDATOR","PatternValidator","_createValidator","PatternValidator_Factory","PatternValidator_HostBindings","SHARED_FORM_DIRECTIVES","TEMPLATE_DRIVEN_DIRECTIVES","REACTIVE_DRIVEN_DIRECTIVES","ɵInternalFormsSharedModule","ɵInternalFormsSharedModule_Factory","FormsModule","FormsModule_Factory","ReactiveFormsModule","withConfig","warnOnNgModelWithFormControl","ReactiveFormsModule_Factory","isAbstractControlOptions","FormBuilder","controlsConfig","_reduceControls","_createControl","controlConfig","FormBuilder_Factory","RendererFactory2","ɵDomRendererFactory2","BrowserModule","AnimationBuilder","AnimationFactory","BrowserAnimationBuilder","rootRenderer","_nextAnimationId","typeData","createRenderer","issueAnimationCommand","BrowserAnimationFactory","BrowserAnimationBuilder_Factory","RendererAnimationPlayer","_command","_listen","ANIMATION_PREFIX","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","delegate","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","EMPTY_NAMESPACE_ID","BaseAnimationRenderer","animationTriggers","AnimationRenderer","_scheduleCountTask","scheduleListenerCallback","AnimationRendererFactory_Factory","destroyNode","namespace","createText","newChild","refChild","isMove","oldChild","selectRootElement","selectorOrNode","preserveContent","flags","resolveElementFromTarget","parseTriggerCallbackName","countId","dotIndex","InjectableAnimationEngine","InjectableAnimationEngine_Factory","instantiateSupportedAnimationDriver","instantiateDefaultStyleNormalizer","instantiateRendererFactory","ANIMATION_MODULE_TYPE","SHARED_ANIMATION_PROVIDERS","BROWSER_ANIMATIONS_PROVIDERS","BROWSER_NOOP_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","BrowserAnimationsModule_Factory","NoopAnimationsModule","NoopAnimationsModule_Factory","ɵAnimationRenderer","ɵAnimationRendererFactory","ɵBrowserAnimationBuilder","ɵBrowserAnimationFactory","ɵInjectableAnimationEngine","ApplicationInitStatus","APP_INITIALIZER","setTestabilityGetter","ɵglobal","APP_ID","RendererStyleFlags2","ErrorHandler","ɵsetDocument","PLATFORM_INITIALIZER","createPlatformFactory","platformCore","ɵINJECTOR_SCOPE","Testability","ApplicationModule","ApplicationRef","ɵConsole","SecurityContext","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵgetSanitizationBypassType","ɵ_sanitizeUrl","ɵ_sanitizeHtml","ɵbypassSanitizationTrustHtml","ɵbypassSanitizationTrustStyle","ɵbypassSanitizationTrustScript","ɵbypassSanitizationTrustUrl","ɵbypassSanitizationTrustResourceUrl","GenericBrowserDomAdapter","supportsDOMEvents","BrowserDomAdapter","makeCurrent","onAndCancel","evt","dispatchEvent","tagName","getDefaultDocument","createHtmlDocument","implementation","createHTMLDocument","isShadowRoot","DocumentFragment","getBaseElementHref","relativePath","resetBaseElement","baseElement","getCookie","urlParsingNode","pathName","TRANSITION_ID","appInitializerFactory","transitionId","donePromise","dom","SERVER_TRANSITION_PROVIDERS","BrowserGetTestability","addToWindow","registry","elem","findInAncestors","testability","findTestabilityInTree","getAllTestabilities","getAllRootElements","whenAllStable","testabilities","didWork","decrement","didWork_","whenStable","getTestability","BrowserXhr","BrowserXhr_Factory","EVENT_MANAGER_PLUGINS","EventManager","plugins","_eventNameToPlugin","manager","_plugins","plugin","_findPluginFor","addGlobalEventListener","getZone","EventManager_Factory","EventManagerPlugin","SharedStylesHost","_stylesSet","addStyles","additions","onStylesAdded","getAllStyles","SharedStylesHost_Factory","DomSharedStylesHost","_hostNodes","_addStylesToHost","styleNodes","styleEl","addHost","hostNode","removeHost","DomSharedStylesHost_Factory","styleNode","NAMESPACE_URIS","COMPONENT_REGEX","NG_DEV_MODE","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","shimContentAttribute","componentShortId","shimHostAttribute","compId","decoratePreventDefault","eventHandler","allowDefaultBehavior","returnValue","hasLoggedNativeEncapsulationWarning","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","DefaultDomRenderer2","Emulated","EmulatedEncapsulationDomRenderer2","applyToHost","ShadowDom","ShadowDomRenderer","DomRendererFactory2_Factory","createElementNS","createTextNode","namespaceUri","setAttributeNS","removeAttributeNS","DashCase","Important","checkNoSyntheticProp","nodeValue","AT_CHARCODE","nameKind","component","contentAttr","hostAttr","hostEl","nodeOrShadowRoot","DomEventsPlugin","DomEventsPlugin_Factory","MODIFIER_KEYS","DOM_KEY_LOCATION_NUMPAD","_keyMap","_chromeNumKeyPadMap","MODIFIER_KEY_GETTERS","altKey","ctrlKey","metaKey","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","domEventName","_normalizeKey","fullKey","modifierName","getEventFullKey","getEventKey","modifierGetter","runGuarded","keyName","KeyEventsPlugin_Factory","keyIdentifier","initDomAdapter","errorHandler","INTERNAL_BROWSER_PLATFORM_PROVIDERS","platformBrowser","BROWSER_MODULE_PROVIDERS","withServerTransition","BrowserModule_Factory","createMeta","Meta","_dom","addTag","tag","forceCreation","_getOrCreateElement","addTags","tags","getTag","attrSelector","getTags","updateTag","_parseSelector","meta","_setMetaElementAttributes","removeTag","removeTagElement","_containsAttributes","_getMetaKeyMap","META_KEYS_MAP","Meta_Factory","httpEquiv","createTitle","Title","getTitle","setTitle","newTitle","Title_Factory","CAMEL_CASE_REGEXP","exportNgVar","COMPILED","ng","win","ChangeDetectionPerfRecord","msPerTick","numTicks","AngularProfiler","appRef","timeChangeDetection","profileName","isProfilerAvailable","profile","performanceNow","tick","profileEnd","log","performance","PROFILER_GLOBAL_NAME","enableDebugTools","disableDebugTools","escapeHtml","escapedText","unescapeHtml","unescapedText","makeStateKey","TransferState","store","onSerializeCallbacks","initState","transferState","hasKey","onSerialize","toJson","TransferState_Factory","initTransferState","initialState","BrowserTransferStateModule","BrowserTransferStateModule_Factory","By","all","css","debugElement","elementMatches","directive","debugNode","providerTokens","msMatchesSelector","webkitMatchesSelector","EVENT_NAMES","HAMMER_GESTURE_CONFIG","HAMMER_LOADER","HammerGestureConfig","events","overrides","buildHammer","mc","Hammer","HammerGestureConfig_Factory","HammerGesturesPlugin","loader","_loaderPromise","isCustomEvent","cancelRegistration","eventObj","on","off","HammerGesturesPlugin_Factory","HammerModule","HammerModule_Factory","DomSanitizer","DomSanitizer_Factory","DomSanitizerImpl","domSanitizerImplFactory","sanitize","HTML","STYLE","SCRIPT","URL","RESOURCE_URL","bypassSecurityTrustHtml","bypassSecurityTrustStyle","bypassSecurityTrustScript","bypassSecurityTrustUrl","bypassSecurityTrustResourceUrl","DomSanitizerImpl_Factory","ɵBrowserDomAdapter","ɵBrowserGetTestability","ɵDomEventsPlugin","ɵDomSanitizerImpl","ɵDomSharedStylesHost","ɵHammerGesturesPlugin","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS","ɵKeyEventsPlugin","ɵNAMESPACE_URIS","ɵSharedStylesHost","ɵTRANSITION_ID","ɵescapeHtml","ɵflattenStyles","ɵinitDomAdapter","ɵshimContentAttribute","ɵshimHostAttribute","InjectFlags","NgModuleFactory","HostListener","HostBinding","Compiler","NgProbeToken","ANALYZE_FOR_ENTRY_COMPONENTS","APP_BOOTSTRAP_LISTENER","combineLatest","EmptyError","ConnectableObservable","scan","catchError","last$1","mergeMap","takeLast","refCount","finalize","mergeAll","RouterEvent","NavigationStart","navigationTrigger","restoredState","NavigationEnd","urlAfterRedirects","NavigationCancel","reason","NavigationError","RoutesRecognized","GuardsCheckStart","GuardsCheckEnd","shouldActivate","ResolveStart","ResolveEnd","RouteConfigLoadStart","route","RouteConfigLoadEnd","ChildActivationStart","snapshot","routeConfig","ChildActivationEnd","ActivationStart","ActivationEnd","Scroll","routerEvent","PRIMARY_OUTLET","ParamsAsMap","convertToParamMap","NAVIGATION_CANCELING_ERROR","navigationCancelingError","isNavigationCancelingError","defaultUrlMatcher","segments","segmentGroup","pathMatch","hasChildren","posParams","segment","isParameter","consumed","shallowEqualArrays","shallowEqual","equalArraysOrString","aSorted","bSorted","flatten","and","bools","wrapIntoObservable","createEmptyUrlTree","UrlTree","UrlSegmentGroup","pathCompareMap","equalSegmentGroups","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","containee","paths","matrixParams","fragment","equalPath","matrixParamsMatch","numberOfChildren","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","parameters","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","equalSegments","as","bs","mapChildrenIntoArray","childOutlet","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","serializeQueryParams","encodeUriFragment","primary","encodeUriString","encodeUriQuery","encodeURI","encodeUriSegment","decode","decodeQuery","serializeMatrixParams","strParams","SEGMENT_RE","matchSegments","QUERY_PARAM_RE","matchQueryParams","QUERY_PARAM_VALUE_RE","matchUrlQueryParamValue","remaining","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","valueMatch","decodedKey","decodedVal","currentVal","allowPrimary","outletName","Tree","_root","pathFromRoot","findNode","findPath","cc","TreeNode","nodeChildrenAsMap","outlet","RouterState","setRouterState","createEmptyState","urlTree","rootComponent","createEmptyStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","activated","ActivatedRoute","ActivatedRouteSnapshot","RouterStateSnapshot","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","inheritedParamsDataResolve","paramsInheritanceStrategy","inheritingStartingFrom","flattenInherited","curr","_resolvedData","urlSegment","lastPathIndex","_urlSegment","_lastPathIndex","_resolve","serializeNode","advanceActivatedRoute","nextSnapshot","equalParamsAndUrlSegments","equalUrlParams","parentsMismatch","createRouterState","routeReuseStrategy","prevState","createNode","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","createUrlTree","commands","nav","computeNavigation","toRoot","startingPosition","findStartingPosition","processChildren","updateSegmentGroupChildren","updateSegmentGroup","isMatrixParams","outlets","segmentPath","isCommandWithOutlets","oldSegmentGroup","newSegmentGroup","qp","replaceSegment","oldSegment","newSegment","Navigation","isAbsolute","numberOfDoubleDots","cmdWithOutlet","cmd","cmdIdx","urlPart","partIndex","Position","createPositionApplyingDoubleDots","g","ci","dd","getOutlets","prefixedWith","slicedCommands","commandIndex","pathIndex","createNewSegmentGroup","currentCommandIndex","currentPathIndex","noMatch","compare","createNewSegmentChildren","activateRoutes","rootContexts","forwardEvent","ActivateRoutes","targetRouterState","currentRouterState","activate","futureState","currState","parentContexts","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","contexts","futureChild","childOutletName","deactivateRoutes","childName","deactivateRouteAndItsChildren","future","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","componentRef","onOutletDeactivated","deactivate","attachRef","resolver","getOrCreateContext","stored","onOutletReAttached","parentLoadedConfig","cmpFactoryResolver","activateWith","_loadedConfig","LoadedRouterConfig","routes","isBoolean","isUrlTree","isCanLoad","guard","canLoad","isCanActivate","canActivate","isCanActivateChild","canActivateChild","isCanDeactivate","canDeactivate","INITIAL_VALUE","prioritizedGuardValue","isPending","innerAcc","OutletContext","ChildrenOutletContexts","onChildOutletCreated","onChildOutletDestroyed","RouterOutlet","changeDetector","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","isActivated","activatedRoute","activatedRouteData","cmp","hostView","childContexts","OutletInjector","RouterOutlet_Factory","notFoundValue","ɵEmptyOutletComponent","ɵEmptyOutletComponent_Factory","ɵEmptyOutletComponent_Template","validateConfig","parentPath","fullPath","getFullPath","validateNode","loadChildren","redirectTo","matcher","currentRoute","standardizeConfig","getOutlet","sortByMatchingOutlets","sortedConfig","noMatch$1","consumedSegments","lastChild","positionalParamSegments","slicedSegments","relativeLinkResolution","containsEmptyPathMatchesWithNamedOutlets","createChildrenForEmptyPaths","_sourceSegment","_segmentIndexShift","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","emptyPathMatch","primarySegment","isImmediateMatch","rawSegment","noLeftoversInUrl","NoMatch$1","AbsoluteRedirect","absoluteRedirect","newTree","namedOutletsRedirect","canLoadFails","applyRedirects$1","moduleInjector","configLoader","urlSerializer","ApplyRedirects","allowRedirects","splitGroup","rootSegmentGroup","expanded$","expandSegmentGroup","urlTrees$","squashSegmentGroup","noMatchError","mapped$","rootCandidate","expandChildren","expandSegment","childOutlets","sortedRoutes","expandedChild","expandSegmentAgainstRoute","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","applyRedirectCommands","lineralizeSegments","newSegments","rawSegmentGroup","loaded$","load","cfg","rawSlicedSegments","childConfig$","getChildConfig","routerConfig","childModule","childConfig","splitSegmentGroup","matchedOnOutlet","cs","runCanLoadGuards","shouldLoadResult","canLoadObservables","injectionToken","guardVal","applyRedirectCreatreUrlTree","newRoot","createSegmentGroup","createQueryParams","redirectToParams","actualParams","copySourceValue","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","mergeTrivialChildren","newChildren","childCandidate","applyRedirects","extractedUrl","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getCanActivateChild","guards","getClosestLoadedConfig","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","checkGuards","targetSnapshot","guardsResult","runCanDeactivateChecks","runCanActivateChecks","futureRSS","currRSS","check","runCanDeactivate","fireChildActivationStart","fireActivationStart","runCanActivateChild","runCanActivate","futureARS","canActivateObservables","canActivateChildGuards","canActivateChildGuardsMapped","guardsMapped","currARS","canDeactivateObservables","NoMatch","newObservableError","recognize$1","rootComponentType","Recognizer","recognize","processSegmentGroup","freeze","routeState","inheritParamsAndData","routeNode","processSegment","outletChildren","mergedChildren","mergeEmptyPathMatches","checkOutletNameUniqueness","sortActivatedRouteSnapshots","processSegmentAgainstRoute","getSourceSegmentGroup","getPathIndexShift","getResolve","localeCompare","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","names","routeWithSameOutletName","serializer","resolveData","canActivateChecksResolved","runResolve","resolveNode","resolvedData","getResolver","switchTap","nextResult","RouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","DefaultRouteReuseStrategy","ROUTES","RouterConfigLoader","compiler","onLoadStartListener","onLoadEndListener","_loader$","moduleFactory$","loadModuleFactory","loadRunner","compileModuleAsync","UrlHandlingStrategy","DefaultUrlHandlingStrategy","shouldProcessUrl","extract","newUrlPart","wholeUrl","defaultErrorHandler","defaultMalformedUriErrorHandler","defaultRouterHook","runExtras","exactMatchOptions","subsetMatchOptions","Router","lastSuccessfulNavigation","currentNavigation","disposed","navigationId","currentPageId","isNgZoneEnabled","malformedUriErrorHandler","navigated","lastSuccessfulId","hooks","beforePreactivation","afterPreactivation","urlHandlingStrategy","onSameUrlNavigation","urlUpdateStrategy","canceledNavigationResolution","onLoadStart","triggerEvent","onLoadEnd","isInAngularZone","resetConfig","currentUrlTree","rawUrlTree","browserUrlTree","routerState","targetPageId","currentRawUrl","rawUrl","extras","navigations","setupNavigations","processNavigations","browserPageId","ɵrouterPageId","eventsSubject","completed","errored","initialUrl","previousNavigation","urlTransition","processCurrentUrl","isBrowserTriggeredNavigation","getValue","serializeUrl","finalUrl","skipLocationChange","setBrowserUrl","routesRecognized","processPreviousUrl","navStart","replaceUrl","appliedUrlTree","guardsStart","guardsEnd","restoreHistory","cancelNavigationTransition","resolveStart","dataResolved","resolveEnd","cancelationReason","redirecting","navCancel","mergedTree","scheduleNavigation","navError","ee","resetRootComponentType","setTransition","initialNavigation","setUpLocationChangeListener","navigateByUrl","locationSubscription","stateCopy","parseUrl","getCurrentNavigation","navigationExtras","relativeTo","queryParamsHandling","preserveFragment","q","removeEmptyProps","validateCommands","isActive","matchOptions","priorPromise","lastNavigation","browserNavPrecededByRouterNav","navToSameUrl","lastNavigationInProgress","isDuplicateNav","rej","isInitialPage","generateNgRouterState","restoringFromCaughtError","targetPagePosition","browserUrlUpdateOccurred","resetState","resetUrlToCurrentUrlTree","routerPageId","Router_Factory","ɵɵinvalidFactory","Type","RouterLink","router","tabIndexAttribute","onChanges","setTabIndexIfNotOnNativeEl","newTabIndex","routerLink","onClick","attrBoolValue","RouterLink_Factory","RouterLink_HostBindings","RouterLink_click_HostBindingHandler","RouterLinkWithHref","locationStrategy","updateTargetUrlAndHref","RouterLinkWithHref_Factory","RouterLinkWithHref_HostBindings","RouterLinkWithHref_click_HostBindingHandler","ɵɵsanitizeUrl","RouterLinkActive","cdr","link","linkWithHref","classes","routerLinkActiveOptions","exact","isActiveChange","routerEventsSubscription","links","linksWithHrefs","subscribeToEachLinkOnChanges","linkInputChangesSubscription","allLinkChanges","isLinkActive","routerLinkActive","hasActiveLinks","isActiveMatchOptions","isActiveCheckFn","RouterLinkActive_Factory","RouterLinkActive_ContentQueries","PreloadingStrategy","PreloadAllModules","preload","NoPreloading","RouterPreloader","preloadingStrategy","onStartLoad","onEndLoad","setUpPreloading","processRoutes","preloadConfig","RouterPreloader_Factory","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","RouterScroller_Factory","ROUTER_DIRECTIVES","ROUTER_CONFIGURATION","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","setupRouter","rootRoute","enableTracing","routerNgProbeToken","RouterModule","forRoot","provideRoutes","provideForRootGuard","createRouterScroller","provideRouterInitializer","forChild","RouterModule_Factory","entryComponents","platformLocationStrategy","useHash","assignExtraOptionsToRouter","groupEnd","RouterInitializer","initNavigation","resultOfPreactivationDone","appInitializer","bootstrapListener","bootstrappedComponentRef","preloader","routerScroller","components","componentTypes","RouterInitializer_Factory","getAppInitializer","getBootstrapListener","ROUTER_INITIALIZER","ɵROUTER_PROVIDERS","ɵassignExtraOptionsToRouter","ɵflatten","ViewChildren","race","NEVER","zip","endWith","withLatestFrom","share","NgbAccordion_ng_template_0_ng_template_2_Template","NgbAccordion_ng_template_0_Template","panel_r3","ɵɵtextInterpolate1","titleTpl","NgbAccordion_ng_template_2_ng_template_2_Template","NgbAccordion_ng_template_2_div_3_ng_template_2_Template","NgbAccordion_ng_template_2_div_3_Template","panel_r5","ɵɵpropertyInterpolate","contentTpl","a0","a1","opened","NgbAccordion_ng_template_2_Template","_r0","ɵɵreference","ɵɵclassMap","cardClass","ɵɵpropertyInterpolate1","headerTpl","ɵɵpureFunction2","isOpen","destroyOnHide","transitionRunning","NgbAlert_button_1_Template","_r2","ɵɵgetCurrentView","NgbAlert_button_1_Template_button_click_0_listener","ɵɵrestoreView","ctx_r1","NgbCarousel_li_1_Template","_r6","NgbCarousel_li_1_Template_li_click_0_listener","restoredCtx","slide_r4","ctx_r5","NgbSlideEventSource","INDICATOR","ctx_r0","activeId","NgbCarousel_div_3_ng_template_3_Template","NgbCarousel_div_3_Template","ɵɵi18n","slide_r7","i_r8","c_r9","ɵɵi18nExp","ɵɵi18nApply","tplRef","NgbCarousel_a_4_Template","_r12","NgbCarousel_a_4_Template_a_click_0_listener","ctx_r11","arrowLeft","NgbCarousel_a_5_Template","_r14","NgbCarousel_a_5_Template_a_click_0_listener","ctx_r13","arrowRight","_c10","_c11","_c12","NgbDatepickerNavigationSelect_option_2_Template","m_r4","i18n","getMonthFullName","getMonthShortName","NgbDatepickerNavigationSelect_option_5_Template","y_r5","ctx_r3","getYearNumerals","NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template","_r3","NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template_ngb_datepicker_navigation_select_select_0_listener","selectBoxes","years","NgbDatepickerNavigation_4_ng_template_0_div_0_Template","NgbDatepickerNavigation_4_ng_template_0_div_3_Template","NgbDatepickerNavigation_4_ng_template_0_Template","month_r5","i_r6","getMonthLabel","firstDate","NgbDatepickerNavigation_4_Template","_c29","_c30","NgbDatepicker_ng_template_0_Template","date_r8","currentMonth_r9","currentMonth","selected_r10","disabled_r11","focused_r12","focused","NgbDatepicker_ng_template_2_div_0_div_1_Template","month_r14","ctx_r16","NgbDatepicker_ng_template_2_div_0_Template","navigation","displayMonths","NgbDatepicker_ng_template_2_Template","NgbDatepicker_ngb_datepicker_navigation_5_Template","_r19","NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_navigate_0_listener","ctx_r18","onNavigateEvent","NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_select_0_listener","ctx_r20","onNavigateDateSelect","prevDisabled","nextDisabled","NgbDatepicker_ng_template_8_Template","NgbDatepicker_ng_template_9_Template","NgbDatepickerMonth_div_0_div_1_Template","getWeekLabel","NgbDatepickerMonth_div_0_div_2_Template","weekday_r4","NgbDatepickerMonth_div_0_Template","datepicker","showWeekNumbers","weekdays","NgbDatepickerMonth_ng_template_1_div_0_div_1_Template","week_r5","ctx_r7","getWeekNumerals","number","NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template","NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_Template","day_r10","dayTemplate","NgbDatepickerMonth_ng_template_1_div_0_div_2_Template","_r15","NgbDatepickerMonth_ng_template_1_div_0_div_2_Template_div_click_0_listener","ctx_r14","doSelect","hidden","tabindex","NgbDatepickerMonth_ng_template_1_div_0_Template","NgbDatepickerMonth_ng_template_1_Template","collapsed","_c31","_c32","NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template","_c33","NgbNavOutlet_ng_template_0_div_0_Template","item_r1","paneRole","ɵɵpureFunction1","active","isPanelTransitioning","NgbNavOutlet_ng_template_0_Template","isPanelInDom","NgbPagination_ng_template_0_Template","NgbPagination_ng_template_2_Template","NgbPagination_ng_template_4_Template","NgbPagination_ng_template_6_Template","NgbPagination_ng_template_8_Template","NgbPagination_ng_template_10_span_1_Template","NgbPagination_ng_template_10_Template","page_r19","currentPage_r20","currentPage","NgbPagination_ng_template_12_li_0_a_1_ng_template_1_Template","_c42","NgbPagination_ng_template_12_li_0_a_1_Template","page_r22","ctx_r27","_r8","tplEllipsis","NgbPagination_ng_template_12_li_0_a_2_ng_template_1_Template","_c43","a2","NgbPagination_ng_template_12_li_0_a_2_Template","_r34","NgbPagination_ng_template_12_li_0_a_2_Template_a_click_0_listener","pageNumber_r26","ctx_r32","selectPage","ctx_r35","disabled_r24","ctx_r28","_r10","tplNumber","ɵɵpureFunction3","NgbPagination_ng_template_12_li_0_Template","ctx_r37","ctx_r25","isEllipsis","NgbPagination_ng_template_12_Template","pages_r23","pages","NgbPagination_li_15_ng_template_2_Template","_c46","NgbPagination_li_15_Template","_r40","NgbPagination_li_15_Template_a_click_1_listener","ctx_r39","previousDisabled","tplFirst","page","NgbPagination_li_16_ng_template_2_Template","_c49","NgbPagination_li_16_Template","_r43","NgbPagination_li_16_Template_a_click_1_listener","ctx_r42","ctx_r15","tplPrevious","NgbPagination_ng_template_17_Template","NgbPagination_li_18_ng_template_2_Template","NgbPagination_li_18_Template","_r46","NgbPagination_li_18_Template_a_click_1_listener","ctx_r45","ctx_r17","_r4","tplNext","NgbPagination_li_19_ng_template_2_Template","NgbPagination_li_19_Template","_r49","NgbPagination_li_19_Template_a_click_1_listener","ctx_r48","pageCount","tplLast","_c54","NgbPopoverWindow_h3_1_ng_template_1_Template","NgbPopoverWindow_h3_1_ng_template_3_Template","NgbPopoverWindow_h3_1_Template","ɵɵtemplateRefExtractor","_r1","isTitleTemplate","NgbProgressbar_span_1_Template","NgbRating_ng_template_0_Template","fill_r3","NgbRating_ng_template_2_ng_template_3_Template","NgbRating_ng_template_2_Template","_r7","NgbRating_ng_template_2_Template_span_mouseenter_2_listener","index_r4","NgbRating_ng_template_2_Template_span_click_2_listener","ctx_r8","handleClick","nextRate","isInteractive","starTemplate","starTemplateFromContent","NgbTimepicker_button_3_Template","_r9","NgbTimepicker_button_3_Template_button_click_0_listener","changeHour","hourStep","isSmallSize","isLargeSize","NgbTimepicker_button_5_Template","_r11","NgbTimepicker_button_5_Template_button_click_0_listener","ctx_r10","NgbTimepicker_button_9_Template","_r13","NgbTimepicker_button_9_Template_button_click_0_listener","ctx_r12","changeMinute","minuteStep","NgbTimepicker_button_11_Template","NgbTimepicker_button_11_Template_button_click_0_listener","NgbTimepicker_div_12_Template","NgbTimepicker_div_13_button_1_Template","NgbTimepicker_div_13_button_1_Template_button_click_0_listener","changeSecond","secondStep","NgbTimepicker_div_13_button_3_Template","_r21","NgbTimepicker_div_13_button_3_Template_button_click_0_listener","NgbTimepicker_div_13_Template","_r23","NgbTimepicker_div_13_Template_input_change_2_listener","ctx_r22","updateSecond","NgbTimepicker_div_13_Template_input_blur_2_listener","ctx_r24","handleBlur","NgbTimepicker_div_13_Template_input_input_2_listener","formatInput","NgbTimepicker_div_13_Template_input_keydown_ArrowUp_2_listener","ctx_r26","NgbTimepicker_div_13_Template_input_keydown_ArrowDown_2_listener","spinners","formatMinSec","second","readonlyInputs","NgbTimepicker_div_14_Template","NgbTimepicker_div_15_ng_container_2_Template","getAfternoonPeriod","NgbTimepicker_div_15_ng_template_3_Template","ctx_r30","getMorningPeriod","NgbTimepicker_div_15_Template","_r32","NgbTimepicker_div_15_Template_button_click_1_listener","ctx_r31","toggleMeridian","_r29","hour","NgbToast_ng_template_0_Template","header","NgbToast_ng_template_2_ng_template_1_Template","NgbToast_ng_template_2_Template","_r5","NgbToast_ng_template_2_Template_button_click_2_listener","hide","contentHeaderTpl","NgbHighlight_ng_template_0_span_0_Template","part_r1","highlightClass","NgbHighlight_ng_template_0_ng_template_1_Template","NgbHighlight_ng_template_0_Template","isOdd_r2","NgbTypeaheadWindow_ng_template_0_Template","result_r3","term_r4","term","formatter_r5","NgbTypeaheadWindow_ng_template_2_ng_template_1_Template","_c87","NgbTypeaheadWindow_ng_template_2_Template","NgbTypeaheadWindow_ng_template_2_Template_button_mouseenter_0_listener","idx_r7","markActive","NgbTypeaheadWindow_ng_template_2_Template_button_click_0_listener","result_r6","activeIdx","resultTemplate","getValueInRange","isString","isInteger","isDefined","regExpEscape","hasClassName","reflow","runInZone","removeAccents","getTransitionDurationMs","transitionDelay","transitionDuration","transitionDelaySec","transitionDurationSec","environment","transitionTimerDelayMs","noopFn","runningTransitions","ngbRunTransition","startFn","running","runningTransition","transition$","endFn","transitionProperty","finishTransition$","stop$","transitionDurationMs","transitionEnd$","timer$","asObservable","ngbCompleteTransition","measureCollapsingElementHeightPx","hasShownClass","ngbCollapsingTransition","maxHeight","setInitialClasses","NgbConfig","NgbConfig_Factory","NgbAccordionConfig","_ngbConfig","closeOthers","_animation","NgbAccordionConfig_Factory","nextId$4","NgbPanelHeader","NgbPanelHeader_Factory","NgbPanelTitle","NgbPanelTitle_Factory","NgbPanelContent","NgbPanelContent_Factory","NgbPanel","initClassDone","shown","ngAfterContentChecked","titleTpls","headerTpls","contentTpls","NgbPanel_Factory","NgbPanel_ContentQueries","NgbAccordion","_changeDetector","activeIds","panelChange","closeOtherPanels","isExpanded","panelId","expand","_changeOpenState","_findPanelById","expandAll","panels","panel","collapse","collapseAll","_closeOthers","_updateActiveIds","panelElement","_getPanelElement","defaultPrevented","_runTransitions","enableTransition","NgbAccordion_Factory","NgbAccordion_ContentQueries","NgbAccordion_HostBindings","NgbAccordion_Template","NgbPanelToggle","accordion","ngbPanelToggle","NgbPanelToggle_Factory","NgbPanelToggle_HostBindings","NgbPanelToggle_click_HostBindingHandler","ɵɵhostProperty","NGB_ACCORDION_DIRECTIVES","NgbAccordionModule","NgbAccordionModule_Factory","ngbAlertFadingTransition","NgbAlertConfig","dismissible","NgbAlertConfig_Factory","NgbAlert","typeChange","NgbAlert_Factory","NgbAlert_HostBindings","i18n_1","ngI18nClosureMode","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_2","goog.getMsg","$localize","NgbAlert_Template","NgbAlertModule","NgbAlertModule_Factory","NgbButtonLabel","NgbButtonLabel_Factory","NgbButtonLabel_HostBindings","NgbCheckBox","valueChecked","valueUnChecked","isFocused","onInputChange","modelToPropagate","NgbCheckBox_Factory","NgbCheckBox_HostBindings","NgbCheckBox_change_HostBindingHandler","NgbCheckBox_focus_HostBindingHandler","NgbCheckBox_blur_HostBindingHandler","nextId$3","NgbRadioGroup","_radios","onRadioChange","radio","onRadioValueUpdate","_updateRadiosValue","_updateRadiosDisabled","unregister","updateValue","updateDisabled","NgbRadioGroup_Factory","NgbRadio","stringValue","_checked","nameAttr","NgbRadio_Factory","NgbRadio_HostBindings","NgbRadio_change_HostBindingHandler","NgbRadio_focus_HostBindingHandler","NgbRadio_blur_HostBindingHandler","NGB_BUTTON_DIRECTIVES","NgbButtonsModule","NgbButtonsModule_Factory","NgbSlideEventDirection","isBeingAnimated","removeDirectionClasses","removeClasses","ngbCarouselTransitionIn","ngbCarouselTransitionOut","NgbCarouselConfig","wrap","keyboard","pauseOnHover","pauseOnFocus","showNavigationArrows","showNavigationIndicators","NgbCarouselConfig_Factory","nextId$2","NgbSlide","slid","NgbSlide_Factory","NgbCarousel","_container","_destroy$","_interval$","_mouseHover$","_focused$","_pauseOnHover$","_pauseOnFocus$","_pause$","_wrap$","slide","_transitionIds","mouseHover","ARROW_LEFT","ARROW_RIGHT","hasNextSlide$","slideEvent","slides","currentSlideId","slideArr","currentSlideIdx","_getSlideIdxById","hasNextSlide","TIMER","_getSlideElement","activeSlide","_getSlideById","slideId","_cycleToSelected","_getSlideEventDirection","_getPrevSlide","_getNextSlide","cycle","slideIdx","transitionIds","selectedSlide","paused","activeSlideTransition","isShown","previousId","nextSlide","currentActiveSlideId","nextActiveSlideId","currentActiveSlideIdx","nextActiveSlideIdx","isLastSlide","isFirstSlide","NgbCarousel_Factory","NgbCarousel_ContentQueries","NgbCarousel_HostBindings","NgbCarousel_keydown_arrowLeft_HostBindingHandler","NgbCarousel_keydown_arrowRight_HostBindingHandler","NgbCarousel_mouseenter_HostBindingHandler","NgbCarousel_mouseleave_HostBindingHandler","NgbCarousel_focusin_HostBindingHandler","NgbCarousel_focusout_HostBindingHandler","i18n_4","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__5","i18n_6","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__7","i18n_8","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__9","NgbCarousel_Template","NGB_CAROUSEL_DIRECTIVES","NgbCarouselModule","NgbCarouselModule_Factory","NgbCollapseConfig","NgbCollapseConfig_Factory","NgbCollapse","ngbCollapseChange","_runTransition","_runTransitionWithEvents","NgbCollapse_Factory","NgbCollapseModule","NgbCollapseModule_Factory","NgbDate","day","equals","before","after","isChangedDate","dateComparator","isChangedMonth","checkMinBeforeMax","minDate","maxDate","checkDateInRange","isDateSelectable","markDisabled","generateSelectBoxMonths","calendar","getMonths","generateSelectBoxYears","numbers","nextMonthDisabled","nextDate","getNext","prevMonthDisabled","prevDate","getPrev","buildMonths","force","monthsToReuse","firstDates","reusedIndex","buildMonth","dayTemplateData","firstDayOfWeek","outsideDays","weekdayWidth","weekdaysVisible","calendarToday","getToday","lastDate","weeks","getFirstViewDate","week","getWeeksPerMonth","weekObject","getDaysPerWeek","getWeekdayLabel","getWeekday","getDayAriaLabel","contextUserData","dayObject","currentYear","getWeekNumber","daysPerWeek","firstMonthDate","dayOfWeek","fromJSDate","jsDate","toJSDate","NGB_DATEPICKER_CALENDAR_FACTORY","NgbCalendarGregorian","NgbCalendar","NgbCalendar_Factory","checkMonth","expectedMonth","setMonth","setDate","thursdayIndex","isValid","ɵNgbCalendarGregorian_BaseFactory","NgbCalendarGregorian_Factory","NGB_DATEPICKER_18N_FACTORY","NgbDatepickerI18nDefault","NgbDatepickerI18n","getDayNumerals","weekNumber","NgbDatepickerI18n_Factory","_monthsShort","_monthsFull","weekday","weekdaysStartingOnSunday","NgbDatepickerI18nDefault_Factory","NgbDatepickerService","_calendar","_i18n","_VALIDATORS","focusVisible","toValidDate","_model$","_dateSelect$","focusDate","selectedDate","model$","dateSelect$","_nextState","focusedDate","focusSelect","ngbDate","struct","newState","_updateState","_patchContexts","startDate","forceRebuild","yearChanged","monthChanged","NgbDatepickerService_Factory","NavigationEvent","NgbDatepickerConfig","NgbDatepickerConfig_Factory","NGB_DATEPICKER_DATE_ADAPTER_FACTORY","NgbDateStructAdapter","NgbDateAdapter","NgbDateAdapter_Factory","fromModel","toModel","ɵNgbDateStructAdapter_BaseFactory","NgbDateStructAdapter_Factory","NgbDatepickerDayView","isMuted","NgbDatepickerDayView_Factory","NgbDatepickerDayView_HostBindings","attrs","NgbDatepickerDayView_Template","NgbDatepickerNavigationSelect","_month","_year","changeMonth","changeYear","ngAfterViewChecked","monthSelect","yearSelect","NgbDatepickerNavigationSelect_Factory","NgbDatepickerNavigationSelect_Query","i18n_13","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_14","i18n_15","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_16","i18n_17","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_18","i18n_19","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_20","NgbDatepickerNavigationSelect_Template","NgbDatepickerNavigationSelect_Template_select_change_0_listener","NgbDatepickerNavigationSelect_Template_select_change_3_listener","NgbDatepickerNavigation","onClickPrev","currentTarget","PREV","onClickNext","NEXT","NgbDatepickerNavigation_Factory","showSelect","i18n_21","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_22","i18n_23","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_24","i18n_25","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_26","i18n_27","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_28","NgbDatepickerNavigation_Template","NgbDatepickerNavigation_Template_button_click_1_listener","NgbDatepickerNavigation_Template_button_click_6_listener","Key","NgbDatepickerKeyboardService","processKey","which","PageUp","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Enter","Space","NgbDatepickerKeyboardService_Factory","NgbDatepickerContent","NgbDatepickerContent_Factory","NgbDatepicker","_service","_ngbDateAdapter","_controlValue","_destroyed$","_publicState","dateSelect","oldDate","navigationPrevented","newSelectedDate","newFocusedDate","oldFocusedDate","elementToFocus","navigateTo","focusIns$","_contentEl","focusOuts$","_defaultDayTemplate","onDateSelect","NgbDatepicker_Factory","NgbDatepicker_ContentQueries","contentTemplate","NgbDatepicker_Query","footerTemplate","NgbDatepicker_Template","NgbDatepickerMonth","_keyboardService","onKeyDown","NgbDatepickerMonth_Factory","NgbDatepickerMonth_HostBindings","NgbDatepickerMonth_keydown_HostBindingHandler","NgbDatepickerMonth_Template","isContainedIn","matchesSelectorIfAny","isMobile","isIOS","maxTouchPoints","isAndroid","wrapAsyncForMobile","ngbAutoClose","closed$","insideElements","ignoreElements","insideSelector","shouldCloseOnClick","escapes$","Escape","mouseDowns$","closeableClicks$","shouldClose","FOCUSABLE_ELEMENTS_SELECTOR","getFocusableBoundaryElements","ngbFocusTrap","stopFocusTrap$","refocusOnClick","lastFocusedElement$","Tab","tabEvent","lastFocusedElement","Positioning","getStyle","isStaticPositioned","offsetParent","offsetParentEl","elPosition","parentOffset","clientTop","clientLeft","elBcr","viewportOffset","elOffset","positionElements","targetElement","placement","appendToBody","placementPrimary","placementSecondary","hostElPosition","targetElStyles","marginTop","marginBottom","marginLeft","marginRight","topPosition","leftPosition","targetElBCR","html","windowHeight","windowWidth","placementSeparator","positionService","baseClass","placementVals","allowedPlacements","addClassesToTarget","targetPlacement","secondary","classname","placementToRemove","hasAuto","testPlacement","isInViewport","addedClasses","NgbInputDatepickerConfig","autoClose","restoreFocus","ɵNgbInputDatepickerConfig_BaseFactory","NgbInputDatepickerConfig_Factory","NGB_DATEPICKER_PARSER_FORMATTER_FACTORY","NgbDateISOParserFormatter","NgbDateParserFormatter","NgbDateParserFormatter_Factory","dateParts","ɵNgbDateISOParserFormatter_BaseFactory","NgbDateISOParserFormatter_Factory","NgbInputDatepicker","_parserFormatter","_elRef","_vcRef","_dateAdapter","_cRef","_elWithFocus","_model","_onTouched","_validatorChange","_zoneSubscription","_updatePopupPosition","_fromDateStruct","actual","_writeModelValue","manualDateChange","updateView","inputValueChanged","_inputValue","_applyPopupStyling","_applyDatepickerInputs","_subscribeForDatepickerOutputs","changeDetectorRef","onBlur","onFocus","_applyPopupClass","datepickerInstance","optionName","newClass","oldClass","popupEl","datepickerClass","navigateEvent","positionTarget","HTMLElement","NgbInputDatepicker_Factory","NgbInputDatepicker_HostBindings","NgbInputDatepicker_input_HostBindingHandler","NgbInputDatepicker_change_HostBindingHandler","NgbInputDatepicker_focus_HostBindingHandler","NgbInputDatepicker_blur_HostBindingHandler","NgbCalendarHijri","_setYear","_setMonth","_setDay","toGregorian","MuhDate","fromGregorian","mDays","getDaysPerMonth","ɵNgbCalendarHijri_BaseFactory","NgbCalendarHijri_Factory","isIslamicLeapYear","hYear","isGregorianLeapYear$1","gDate","getIslamicMonthStart","hMonth","getIslamicYearStart","mod$1","GREGORIAN_EPOCH$1","ISLAMIC_EPOCH","NgbCalendarIslamicCivil","gYear","gMonth","gDay","julianDay","hDay","hDate","wjd","depoch","quadricent","dqc","cent","dcent","quad","dquad","yindex","gYearStart","yearday","tjd","leapadj","tjd2","ɵNgbCalendarIslamicCivil_BaseFactory","NgbCalendarIslamicCivil_Factory","GREGORIAN_FIRST_DATE","GREGORIAN_LAST_DATE","HIJRI_BEGIN","HIJRI_END","ONE_DAY","MONTH_LENGTH","getDaysDiff","date1","date2","time1","UTC","time2","NgbCalendarIslamicUmalqura","daysDiff","numOfDays","dayDiff","ɵNgbCalendarIslamicUmalqura_BaseFactory","NgbCalendarIslamicUmalqura_Factory","toGregorian$2","jalaliDate","jdn","jalaliToJulian","julianToGregorian","fromGregorian$2","gdate","g2d","gregorianToJulian","julianToJalali","setJalaliYear","yearValue","setJalaliMonth","setJalaliDay","mod","div","trunc","jalCal","jalaliYear","breaks","breaksLength","leapJ","jp","jump","jm","leapG","march","leap","gy","julianDayNumber","gm","gd","gregorianDay","jalaliDay","jalaliMonth","numberOfDays","jYear","jMonth","jDay","NgbCalendarPersian","ɵNgbCalendarPersian_BaseFactory","NgbCalendarPersian_Factory","PARTS_PER_HOUR","PARTS_PER_DAY","PARTS_FRACTIONAL_MONTH","PARTS_PER_MONTH","BAHARAD","HEBREW_DAY_ON_JAN_1_1970","GREGORIAN_EPOCH","isGregorianLeapYear","numberOfFirstDayInYear","monthsBeforeYear","fractionalMonthsBeforeYear","dayNumber","timeOfDay","isHebrewLeapYear","getDaysInGregorianMonth","getHebrewMonths","getDaysInHebrewYear","getDaysInHebrewMonth","yearLength","yearType","leapYear","daysInMonth","getDayNumberInHebrewYear","numberOfDay","setHebrewMonth","setHebrewDay","fromGregorian$1","daysSinceHebEpoch","monthsSinceHebEpoch","firstDayOfThisYear","dayOfYear","toGregorian$1","hebrewDate","diffDays","hebrewNumerals","numerals","hArray0_9","hArray10_19","hArray20_90","hArray100_900","hArray1000_9000","geresh","gershaim","mem","NgbCalendarHebrew","ɵNgbCalendarHebrew_BaseFactory","NgbCalendarHebrew_Factory","WEEKDAYS","MONTHS","MONTHS_LEAP","NgbDatepickerI18nHebrew","ɵNgbDatepickerI18nHebrew_BaseFactory","NgbDatepickerI18nHebrew_Factory","NgbCalendarBuddhist","ɵNgbCalendarBuddhist_BaseFactory","NgbCalendarBuddhist_Factory","NgbDateNativeAdapter","_fromNativeDate","_toNativeDate","ɵNgbDateNativeAdapter_BaseFactory","NgbDateNativeAdapter_Factory","NgbDateNativeUTCAdapter","ɵNgbDateNativeUTCAdapter_BaseFactory","NgbDateNativeUTCAdapter_Factory","NgbDatepickerModule","NgbDatepickerModule_Factory","NgbDropdownConfig","NgbDropdownConfig_Factory","NgbNavbar","NgbNavbar_Factory","NgbDropdownItem","NgbDropdownItem_Factory","NgbDropdownItem_HostBindings","NgbDropdownMenu","dropdown","NgbDropdownMenu_Factory","NgbDropdown","NgbDropdownMenu_ContentQueries","menuItems","NgbDropdownMenu_HostBindings","NgbDropdownMenu_keydown_ArrowUp_HostBindingHandler","NgbDropdownMenu_keydown_ArrowDown_HostBindingHandler","NgbDropdownMenu_keydown_Home_HostBindingHandler","NgbDropdownMenu_keydown_End_HostBindingHandler","NgbDropdownMenu_keydown_Enter_HostBindingHandler","NgbDropdownMenu_keydown_Space_HostBindingHandler","NgbDropdownMenu_keydown_Tab_HostBindingHandler","NgbDropdownMenu_keydown_Shift_Tab_HostBindingHandler","NgbDropdownAnchor","NgbDropdownAnchor_Factory","NgbDropdownAnchor_HostBindings","NgbDropdownToggle","NgbDropdownToggle_Factory","NgbDropdownToggle_HostBindings","NgbDropdownToggle_click_HostBindingHandler","NgbDropdownToggle_keydown_ArrowUp_HostBindingHandler","NgbDropdownToggle_keydown_ArrowDown_HostBindingHandler","NgbDropdownToggle_keydown_Home_HostBindingHandler","NgbDropdownToggle_keydown_End_HostBindingHandler","NgbDropdownToggle_keydown_Tab_HostBindingHandler","NgbDropdownToggle_keydown_Shift_Tab_HostBindingHandler","ngbNavbar","_closed$","_bodyContainer","_open","openChange","_positionMenu","_applyPlacementClasses","_setCloseHandlers","_applyContainer","dropdownClass","_applyCustomDropdownClass","_menu","_resetContainer","itemElements","_getMenuElements","itemElement","isEventFromToggle","_isEventFromToggle","focusableElements","_isDropup","menu","_getFirstPlacement","dropdownElement","dropdownMenuElement","bodyContainer","NgbDropdown_Factory","NgbDropdown_ContentQueries","NgbDropdown_HostBindings","NGB_DROPDOWN_DIRECTIVES","NgbDropdownModule","NgbDropdownModule_Factory","ContentRef","PopupService","_type","_applicationRef","_windowRef","_contentRef","_getContentRef","projectableNodes","windowRef","detachView","attachView","NgbModalBackdrop","_el","NgbModalBackdrop_Factory","NgbModalBackdrop_HostBindings","backdropClass","NgbModalBackdrop_Template","NgbActiveModal","dismiss","NgbModalRef","_windowCmptRef","_backdropCmptRef","_beforeDismiss","_closed","_dismissed","_hidden","dismissEvent","_reject","componentInstance","dismissed","_removeModalElements","_dismiss","windowTransition$","backdropTransition$","ModalDismissReasons","NgbModalWindow","backdrop","_show","_disableEventHandling","dialogTransition$","_dialogEl","transitions$","_restoreFocus","_enableEventHandling","_setFocus","ESC","_bumpBackdrop","preventClose","BACKDROP_CLICK","autoFocusable","firstFocusable","elWithFocus","NgbModalWindow_Factory","NgbModalWindow_Query","NgbModalWindow_HostBindings","ariaLabelledBy","ariaDescribedBy","windowClass","centered","modalDialogClass","NgbModalWindow_Template","ScrollBar","compensate","_isPresent","_adjustBody","scrollbarWidth","userSetPaddingStyle","paddingRight","actualPadding","bodyToViewportGap","uncertainty","measurer","ScrollBar_Factory","NgbModalStack","_scrollBar","_rendererFactory","_activeWindowCmptHasChanged","_ariaHiddenValues","_backdropAttributes","_modalRefs","_windowAttributes","_windowCmpts","_activeInstances","activeWindowCmpt","_revertAriaHidden","_setAriaHidden","moduleCFR","contentInjector","containerEl","revertPaddingForScrollBar","removeBodyClass","activeModal","contentRef","backdropCmptRef","_attachBackdrop","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","_applyWindowOptions","_applyBackdropOptions","activeInstances","dismissAll","hasOpenModals","backdropFactory","windowFactory","windowInstance","backdropInstance","_createFromTemplateRef","_createFromString","_createFromComponent","contentCmptFactory","modalContentInjector","componentNativeEl","unregisterModalRef","ngbWindowCmpt","NgbModalStack_Factory","NgbModalConfig","NgbModalConfig_Factory","NgbModal","_moduleCFR","_modalStack","combinedOptions","NgbModal_Factory","NgbModalModule","NgbModalModule_Factory","NgbNavConfig","roles","NgbNavConfig_Factory","isValidNavId","navCounter","NgbNavContent","NgbNavContent_Factory","NgbNavItem","_nav","domId","panelDomId","NgbNavItem_Factory","NgbNav","NgbNavItem_ContentQueries","NgbNavItem_HostBindings","activeIdChange","destroy$","navItemChange$","navChange","click","_updateActiveId","enabledLinks","navItem","elRef","_notifyItemChanged","emitNavChange","nextItemId","_getItemById","itemId","NgbNav_Factory","NgbNav_ContentQueries","NgbNavLink","NgbNav_HostBindings","NgbNav_keydown_arrowLeft_HostBindingHandler","NgbNav_keydown_arrowRight_HostBindingHandler","NgbNav_keydown_arrowDown_HostBindingHandler","NgbNav_keydown_arrowUp_HostBindingHandler","NgbNav_keydown_Home_HostBindingHandler","NgbNav_keydown_End_HostBindingHandler","hasNavItemClass","COMMENT_NODE","NgbNavLink_Factory","NgbNavLink_HostBindings","NgbNavLink_click_HostBindingHandler","ngbNavFadeOutTransition","ngbNavFadeInTransition","NgbNavPane","NgbNavPane_Factory","NgbNavPane_HostBindings","NgbNavOutlet","_activePane","_updateActivePane","nextItem","_getPaneForItem","_getActivePane","_panes","pane","NgbNavOutlet_Factory","NgbNavOutlet_Query","NgbNavOutlet_HostBindings","NgbNavOutlet_Template","NGB_NAV_DIRECTIVES","NgbNavModule","NgbNavModule_Factory","NgbPaginationConfig","boundaryLinks","directionLinks","ellipses","maxSize","pageSize","rotate","NgbPaginationConfig_Factory","NgbPaginationEllipsis","NgbPaginationEllipsis_Factory","NgbPaginationFirst","NgbPaginationFirst_Factory","NgbPaginationLast","NgbPaginationLast_Factory","NgbPaginationNext","NgbPaginationNext_Factory","NgbPaginationNumber","NgbPaginationNumber_Factory","NgbPaginationPrevious","NgbPaginationPrevious_Factory","NgbPaginationPages","NgbPaginationPages_Factory","NgbPagination","pageChange","hasPrevious","hasNext","pageNumber","_updatePages","_applyEllipses","_applyRotation","leftOffset","rightOffset","_applyPagination","_setPageInRange","newPageNo","prevPageNo","collectionSize","newPage","NgbPagination_Factory","NgbPagination_ContentQueries","tplPages","i18n_34","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__35","i18n_36","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__37","i18n_38","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__39","i18n_40","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__41","i18n_44","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__45","i18n_47","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__48","i18n_50","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__51","i18n_52","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__53","NgbPagination_Template","DIRECTIVES","NgbPaginationModule","NgbPaginationModule_Factory","Trigger","isManual","DEFAULT_ALIASES","parseTriggers","aliases","trimmedTriggers","parsedTriggers","triggerPair","manualTriggers","observeTriggers","isOpenedFn","openFn","closeFn","toggleFn","unsubscribeFn","delayOrNoop","triggerDelay","openDelay","closeDelay","input$","filteredInput$","currentlyOpen","delayedOpen$","delayedClose$","listenToTriggers","NgbPopoverConfig","disablePopover","NgbPopoverConfig_Factory","nextId$1","NgbPopoverWindow","NgbPopoverWindow_Factory","NgbPopoverWindow_HostBindings","popoverClass","NgbPopoverWindow_Template","NgbPopover","applicationRef","_ngbPopoverWindowId","_popupService","_isDisabled","ngbPopover","popoverTitle","_unregisterListenersFn","NgbPopover_Factory","NgbPopoverModule","NgbPopoverModule_Factory","NgbProgressbarConfig","animated","striped","showValue","NgbProgressbarConfig_Factory","NgbProgressbar","textType","getPercentValue","NgbProgressbar_Factory","NgbProgressbar_HostBindings","i18n_55","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__56","NgbProgressbar_Template","ɵɵclassMapInterpolate4","class","NgbProgressbarModule","NgbProgressbarModule_Factory","NgbRatingConfig","readonly","resettable","NgbRatingConfig_Factory","NgbRating","hover","leave","rateChange","ariaValueText","rate","handleKeyDown","internalChange","newRate","nextValue","NgbRating_Factory","NgbRating_ContentQueries","NgbRating_HostBindings","NgbRating_blur_HostBindingHandler","NgbRating_keydown_HostBindingHandler","NgbRating_mouseleave_HostBindingHandler","NgbRating_Template","NgbRatingModule","NgbRatingModule_Factory","NgbTime","minute","updateHour","NaN","updateMinute","checkSecs","NgbTimepickerConfig","meridian","NgbTimepickerConfig_Factory","NGB_DATEPICKER_TIME_ADAPTER_FACTORY","NgbTimeStructAdapter","NgbTimeAdapter","NgbTimeAdapter_Factory","ɵNgbTimeStructAdapter_BaseFactory","NgbTimeStructAdapter_Factory","NGB_TIMEPICKER_I18N_FACTORY","NgbTimepickerI18nDefault","NgbTimepickerI18n","NgbTimepickerI18n_Factory","_periods","NgbTimepickerI18nDefault_Factory","FILTER_REGEX","NgbTimepicker","_ngbTimeAdapter","_hourStep","_minuteStep","_secondStep","structValue","propagateModelChange","newVal","isPM","enteredHour","formatHour","NgbTimepicker_Factory","i18n_57","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_58","i18n_59","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_60","i18n_61","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_62","i18n_63","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS_64","i18n_65","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__66","i18n_67","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__68","i18n_69","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__70","i18n_71","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__72","i18n_73","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__74","i18n_75","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__76","i18n_77","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS___78","i18n_79","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS___80","i18n_81","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS___82","i18n_83","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS___84","NgbTimepicker_Template","NgbTimepicker_Template_input_change_4_listener","NgbTimepicker_Template_input_blur_4_listener","NgbTimepicker_Template_input_input_4_listener","NgbTimepicker_Template_input_keydown_ArrowUp_4_listener","NgbTimepicker_Template_input_keydown_ArrowDown_4_listener","NgbTimepicker_Template_input_change_10_listener","NgbTimepicker_Template_input_blur_10_listener","NgbTimepicker_Template_input_input_10_listener","NgbTimepicker_Template_input_keydown_ArrowUp_10_listener","NgbTimepicker_Template_input_keydown_ArrowDown_10_listener","NgbTimepickerModule","NgbTimepickerModule_Factory","ngbToastFadeInTransition","ngbToastFadeOutTransition","NgbToastConfig","autohide","ariaLive","NgbToastConfig_Factory","NgbToastHeader","NgbToastHeader_Factory","NgbToast","show","_clearTimeout","_timeoutID","NgbToast_Factory","NgbToast_ContentQueries","NgbToast_HostBindings","i18n_85","MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2015_NG_BOOTSTRAP_MJS__86","NgbToast_Template","NgbToastModule","NgbToastModule_Factory","NgbTooltipConfig","disableTooltip","NgbTooltipConfig_Factory","NgbTooltipWindow","NgbTooltipWindow_Factory","NgbTooltipWindow_HostBindings","tooltipClass","NgbTooltipWindow_Template","NgbTooltip","_ngbTooltipWindowId","ngbTooltip","_ngbTooltip","NgbTooltip_Factory","NgbTooltipModule","NgbTooltipModule_Factory","NgbHighlight","accentSensitive","terms","prepareTerm","escapedTerms","toSplit","NgbHighlight_Factory","NgbHighlight_Template","NgbTypeaheadWindow","focusFirst","selectEvent","activeChangeEvent","hasActive","getActive","_activeChanged","resetActive","NgbTypeaheadWindow_Factory","NgbTypeaheadWindow_HostBindings","NgbTypeaheadWindow_mousedown_HostBindingHandler","popupClass","NgbTypeaheadWindow_Template","NgbTypeaheadConfig","editable","showHint","NgbTypeaheadConfig_Factory","ARIA_LIVE_DELAY","ARIA_LIVE_DELAY_FACTORY","getLiveElement","lazyCreate","Live","say","setText","Live_Factory","nextWindowId","NgbTypeahead","_live","_inputValueBackup","autocomplete","selectItem","activeDescendant","popupId","_valueChanges","_resubscribeTypeahead","isPopupOpen","_subscribeToUserInput","ngbTypeahead","_unsubscribeFromUserInput","_closePopup","_writeInputValue","_formatItemForInput","dismissPopup","_showHint","_selectResult","_openPopup","_selectResultClosePopup","userInputLowerCase","formattedVal","inputFormatter","results$","resultFormatter","NgbTypeahead_Factory","NgbTypeahead_HostBindings","NgbTypeahead_blur_HostBindingHandler","NgbTypeahead_keydown_HostBindingHandler","NgbTypeaheadModule","NgbTypeaheadModule_Factory","NGB_MODULES","NgbModule","NgbModule_Factory","requireNonNull","coerceCssSizeBinding","CONFIG_NOT_FOUND","MATOMO_CONFIGURATION","INTERNAL_MATOMO_CONFIGURATION","enableLinkTracking","trackAppInitialLoad","requireConsent","MatomoConsentMode","enableJSErrorTracking","runOutsideAngularZone","MatomoInitializationMode","isAutoConfigurationMode","AUTO","hasMainTrackerConfiguration","siteId","trackerUrl","isEmbeddedTrackerConfiguration","scriptUrl","isExplicitTrackerConfiguration","isMultiTrackerConfiguration","trackers","getTrackersConfiguration","trackerUrlSuffix","initializeMatomoHolder","_paq","trimTrailingUndefinedElements","trimmed","isECommerceCategoryView","productCategory","isECommerceItemView","createMatomoTracker","NoopMatomoTracker","StandardMatomoTracker","MatomoTracker","trackPageView","customTitle","trackEvent","category","trackSiteSearch","keyword","resultsCount","trackGoal","idGoal","customRevenue","trackLink","linkType","trackAllContentImpressions","trackVisibleContentImpressions","checkOnScroll","timeInterval","trackContentImpressionsWithinNode","trackContentInteractionNode","contentInteraction","trackContentImpression","contentName","contentPiece","contentTarget","trackContentInteraction","logAllContentBlocksOnPage","ping","enableHeartBeatTimer","usePseudoClickHandler","disablePerformanceTracking","enableCrossDomainLinking","setCrossDomainLinkingTimeout","getCrossDomainLinkingUrlParameter","setDocumentTitle","setDomains","domains","setCustomUrl","setReferrerUrl","setSiteId","setApiUrl","setTrackerUrl","addTracker","getMatomoUrl","getCurrentUrl","setDownloadClasses","setDownloadExtensions","extensions","addDownloadExtensions","removeDownloadExtensions","setIgnoreClasses","setLinkClasses","setLinkTrackingTimer","getLinkTrackingTimer","discardHashTag","setGenerationTimeMs","generationTime","setPagePerformanceTiming","networkTimeInMsOrTimings","serverTimeInMs","transferTimeInMs","domProcessingTimeInMs","domCompletionTimeInMs","onloadTimeInMs","networkTimeInMs","appendToTrackingUrl","appendToUrl","setDoNotTrack","doNotTrack","killFrame","redirectFile","setHeartBeatTimer","minimumVisitLength","heartBeatDelay","getVisitorId","setVisitorId","visitorId","getVisitorInfo","getAttributionInfo","getAttributionCampaignName","getAttributionCampaignKeyword","getAttributionReferrerTimestamp","getAttributionReferrerUrl","getUserId","setUserId","userId","resetUserId","setCustomVariable","scope","deleteCustomVariable","deleteCustomVariables","getCustomVariable","pushFn","matomo","storeCustomVariablesInCookie","setCustomDimension","customDimensionId","customDimensionValue","deleteCustomDimension","getCustomDimension","setCampaignNameKey","setCampaignKeywordKey","setConversionAttributionFirstReferrer","conversionToFirstReferrer","setEcommerceView","productOrSKU","productName","price","productSKU","addEcommerceItem","quantity","removeEcommerceItem","clearEcommerceCart","getEcommerceItems","trackEcommerceCartUpdate","grandTotal","trackEcommerceOrder","orderId","subTotal","tax","shipping","discount","setConsentGiven","rememberConsentGiven","hoursToExpire","forgetConsentGiven","hasRememberedConsent","getRememberedConsent","isConsentRequired","requireCookieConsent","setCookieConsentGiven","rememberCookieConsentGiven","forgetCookieConsentGiven","areCookiesEnabled","optUserOut","forgetUserOptOut","isUserOptedOut","disableCookies","deleteCookies","hasCookies","setCookieNamePrefix","setCookieDomain","domain","setCookiePath","setSecureCookie","secure","setCookieSameSite","sameSite","setVisitorCookieTimeout","setReferralCookieTimeout","setSessionCookieTimeout","addListener","setRequestMethod","setCustomRequestProcessing","setRequestContentType","contentType","disableQueueRequest","setRequestQueueInterval","disableAlwaysUseSendBeacon","alwaysUseSendBeacon","getter","MatomoTracker_Factory","DEFAULT_BORDER","DEFAULT_WIDTH","DEFAULT_HEIGHT","URL_PATTERN","missingServerUrlError","MatomoOptOutFormComponent","sanitizer","_border","_width","_height","_iframeSrc","fontSize","fontFamily","_defaultServerUrl","serverUrl","_serverUrlOverride","iframeSrc","border","updateUrl","MatomoOptOutFormComponent_Factory","MatomoOptOutFormComponent_Template","ɵɵsanitizeResourceUrl","MatomoTrackClickDirective","tracker","matomoClickCategory","matomoClickAction","matomoClickName","matomoClickValue","MatomoTrackClickDirective_Factory","MatomoTrackClickDirective_HostBindings","MatomoTrackClickDirective_click_HostBindingHandler","coerceEventNames","MatomoTrackerDirective","matomoTracker","eventNames","handlers","arg1","arg2","_d","matomoCategory","matomoAction","matomoName","matomoValue","MatomoTrackerDirective_Factory","createDefaultMatomoScriptElement","MATOMO_SCRIPT_FACTORY","ALREADY_INJECTED_ERROR","ALREADY_INITIALIZED_ERROR","coerceSiteId","appendTrailingSlash","buildTrackerUrl","suffix","DEFAULT_TRACKER_SUFFIX","DEFAULT_SCRIPT_SUFFIX","createMatomoInitializer","scriptFactory","NoopMatomoInitializer","MatomoInitializerService","initialize","initializeTracker","initialized","injected","runPreInitTasks","injectMatomoScript","customScriptUrl","mainTracker","additionalTrackers","registerMainTracker","registerAdditionalTrackers","injectDOMScript","mainTrackerUrl","mainTrackerSiteId","additionalTrackerUrl","additionalTrackerSiteId","scriptElement","selfScript","acceptDoNotTrack","COOKIE","TRACKING","MatomoInitializerService_Factory","NgxMatomoTrackerModule","initializer","NgxMatomoTrackerModule_Factory","baseGetTag","asyncTag","funcTag","genTag","proxyTag","Chart","Tooltip","Filler","Legend","LineController","LineElement","PointElement","LinearScale","CategoryScale","BarController","BarElement","DoughnutController","ArcElement","RadarController","RadialLinearScale","PieController","PolarAreaController","BubbleController","ScatterController","TimeSeriesScale","defaults","ThemeService","colorschemesOptions","setColorschemesOptions","pColorschemesOptions","getColorschemesOptions","ThemeService_Factory","BaseChartDirective","themeService","chartClick","chartHover","subs","themeChanged","requireRender","propertyNames","getOwnPropertyNames","render","getChartConfiguration","chart","hideDataset","getDatasetMeta","isDatasetHidden","toBase64Image","themeOverrides","getChartOptions","onHover","observed","legend","getChartData","labels","datasets","BaseChartDirective_Factory","baseColors","builtInDefaults","rgba","generateColor","datasetIndex","borderColor","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","bar","hoverBackgroundColor","hoverBorderColor","radar","doughnut","dataIndex","pie","polarArea","bubble","scatter","area","colour","alpha","getRandomInt","getRandomColor","NgChartsConfiguration","NgChartsConfiguration_Factory","NgChartsModule","ngChartsDefaults","NgChartsModule_Factory","CookieService","documentIsAccessible","getCookieRegExp","escapedName","safeDecodeURIComponent","encodedURIComponent","regExp","cookies","currentCookie","expiresOrOptions","optionsBody","expires","dateExpires","toUTCString","expiresDate","deleteAll","CookieService_Factory","Toast_button_0_Template","Toast_button_0_Template_button_click_0_listener","Toast_div_1_ng_container_2_Template","duplicatesCount","Toast_div_1_Template","titleClass","Toast_div_2_Template","messageClass","ɵɵsanitizeHtml","Toast_div_3_Template","Toast_div_4_Template","ToastNoAnimation_button_0_Template","ToastNoAnimation_button_0_Template_button_click_0_listener","ToastNoAnimation_div_1_ng_container_2_Template","ToastNoAnimation_div_1_Template","ToastNoAnimation_div_2_Template","ToastNoAnimation_div_3_Template","ToastNoAnimation_div_4_Template","ToastContainerDirective","getContainerElement","ToastContainerDirective_Factory","ToastContainerModule","ToastContainerModule_Factory","ComponentPortal","newestOnTop","_attachedHost","isAttached","setAttachedHost","BasePortalHost","portal","_attachedPortal","attachComponentPortal","_disposeFn","setDisposeFn","ToastPackage","toastId","toastType","toastRef","_onTap","_onAction","afterClosed","triggerTap","tapToDismiss","onTap","triggerAction","onAction","DefaultNoComponentGlobalConfig","maxOpened","autoDismiss","preventDuplicates","countDuplicates","resetTimeoutOnDuplicate","includeTitleDuplicates","iconClasses","success","closeButton","disableTimeOut","timeOut","extendedTimeOut","enableHtml","progressBar","toastClass","positionClass","easeTime","onActivateTick","progressAnimation","TOAST_CONFIG","ToastRef","_overlayRef","_afterClosed","_activate","_manualClose","_resetTimeout","_countDuplicate","manualClose","manualClosed","timeoutReset","countDuplicate","isInactive","isStopped","afterActivate","onDuplicate","resetTimeout","ToastInjector","_toastPackage","_parentInjector","DomPortalHost","_hostDomElement","_componentFactoryResolver","_appRef","_getComponentRootNode","OverlayRef","_portalHost","OverlayContainer","_containerElement","_createContainer","OverlayContainer_Factory","Overlay","_overlayContainer","_paneElements","overlayContainer","_createOverlayRef","getPaneElement","_createPaneElement","_createPortalHost","Overlay_Factory","ToastrService","overlay","currentlyActive","toasts","toastrConfig","default","override","_preBuildNotification","applyConfig","toast","_findToast","activeToast","findDuplicate","resetOnDuplicate","hasDuplicateTitle","_buildNotification","toastComponent","duplicate","previousToastMessage","keepInactive","overlayRef","sanitizedMessage","toastPackage","toastInjector","ins","onShown","onHidden","ToastrService_Factory","Toast","toastrService","toastClasses","originalTimeout","activateToast","sub1","sub2","sub3","displayStyle","clearInterval","intervalId","outsideTimeout","hideTime","outsideInterval","updateProgress","tapToast","stickAround","delayedHideToast","runInsideAngular","setInterval","Toast_Factory","Toast_HostBindings","Toast_click_HostBindingHandler","Toast_mouseenter_HostBindingHandler","Toast_mouseleave_HostBindingHandler","ɵɵsyntheticHostProperty","Toast_Template","animations","preserveWhitespaces","DefaultGlobalConfig","ToastrModule","ToastrModule_Factory","ToastrComponentlessModule","ToastrComponentlessModule_Factory","ToastNoAnimation","ToastNoAnimation_Factory","ToastNoAnimation_HostBindings","ToastNoAnimation_click_HostBindingHandler","ToastNoAnimation_mouseenter_HostBindingHandler","ToastNoAnimation_mouseleave_HostBindingHandler","ToastNoAnimation_Template","DefaultNoAnimationsGlobalConfig","ToastNoAnimationModule","ToastNoAnimationModule_Factory"],"sourceRoot":"webpack:///"}